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
15SignalBar::SignalBar(QObject *parent)
16	: QStyledItemDelegate(parent)
17{
18}
19
20
21SignalBar::~SignalBar()
22{
23}
24
25
26void 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}
59