12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /*
- * wpa_gui - SignalBar class
- * Copyright (c) 2011, Kel Modderman <kel@otaku42.de>
- *
- * This software may be distributed under the terms of the BSD license.
- * See README for more details.
- */
- #include <cstdio>
- #include <qapplication.h>
- #include "signalbar.h"
- SignalBar::SignalBar(QObject *parent)
- : QStyledItemDelegate(parent)
- {
- }
- SignalBar::~SignalBar()
- {
- }
- void SignalBar::paint(QPainter *painter,
- const QStyleOptionViewItem &option,
- const QModelIndex &index) const
- {
- QStyleOptionProgressBar opts;
- int signal;
- if (index.column() != 3) {
- QStyledItemDelegate::paint(painter, option, index);
- return;
- }
- if (index.data().toInt() > 0)
- signal = 0 - (256 - index.data().toInt());
- else
- signal = index.data().toInt();
- opts.minimum = -95;
- opts.maximum = -35;
- if (signal < opts.minimum)
- opts.progress = opts.minimum;
- else if (signal > opts.maximum)
- opts.progress = opts.maximum;
- else
- opts.progress = signal;
- opts.text = QString::number(signal) + " dBm";
- opts.textVisible = true;
- opts.rect = option.rect;
- QApplication::style()->drawControl(QStyle::CE_ProgressBar,
- &opts, painter);
- }
|