/* * 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); }