Updated through tag hostap_2_5 from git://w1.fi/hostap.git
[mech_eap.git] / libeap / wpa_supplicant / wpa_gui-qt4 / signalbar.cpp
1 /*
2  * wpa_gui - SignalBar class
3  * Copyright (c) 2011, Kel Modderman <kel@otaku42.de>
4  *
5  * This software may be distributed under the terms of the BSD license.
6  * See README for more details.
7  */
8
9 #include <cstdio>
10 #include <qapplication.h>
11
12 #include "signalbar.h"
13
14
15 SignalBar::SignalBar(QObject *parent)
16         : QStyledItemDelegate(parent)
17 {
18 }
19
20
21 SignalBar::~SignalBar()
22 {
23 }
24
25
26 void SignalBar::paint(QPainter *painter,
27                       const QStyleOptionViewItem &option,
28                       const QModelIndex &index) const
29 {
30         QStyleOptionProgressBar opts;
31         int signal;
32
33         if (index.column() != 3) {
34                 QStyledItemDelegate::paint(painter, option, index);
35                 return;
36         }
37
38         if (index.data().toInt() > 0)
39                 signal = 0 - (256 - index.data().toInt());
40         else
41                 signal = index.data().toInt();
42
43         opts.minimum = -95;
44         opts.maximum = -35;
45         if (signal < opts.minimum)
46                 opts.progress = opts.minimum;
47         else if (signal > opts.maximum)
48                 opts.progress = opts.maximum;
49         else
50                 opts.progress = signal;
51
52         opts.text = QString::number(signal) + " dBm";
53         opts.textVisible = true;
54         opts.rect = option.rect;
55
56         QApplication::style()->drawControl(QStyle::CE_ProgressBar,
57                                            &opts, painter);
58 }