Home | History | Annotate | Download | only in wpa_gui-qt4
      1 /*
      2  * wpa_gui - SignalBar class
      3  * Copyright (c) 2011, Kel Modderman <kel (at) otaku42.de>
      4  *
      5  * This program is free software; you can redistribute it and/or modify
      6  * it under the terms of the GNU General Public License version 2 as
      7  * published by the Free Software Foundation.
      8  *
      9  * Alternatively, this software may be distributed under the terms of BSD
     10  * license.
     11  *
     12  * See README and COPYING for more details.
     13  */
     14 
     15 #include <cstdio>
     16 #include <qapplication.h>
     17 
     18 #include "signalbar.h"
     19 
     20 
     21 SignalBar::SignalBar(QObject *parent)
     22 	: QStyledItemDelegate(parent)
     23 {
     24 }
     25 
     26 
     27 SignalBar::~SignalBar()
     28 {
     29 }
     30 
     31 
     32 void SignalBar::paint(QPainter *painter,
     33 		      const QStyleOptionViewItem &option,
     34 		      const QModelIndex &index) const
     35 {
     36 	QStyleOptionProgressBar opts;
     37 	int signal;
     38 
     39 	if (index.column() != 3) {
     40 		QStyledItemDelegate::paint(painter, option, index);
     41 		return;
     42 	}
     43 
     44 	if (index.data().toInt() > 0)
     45 		signal = 0 - (256 - index.data().toInt());
     46 	else
     47 		signal = index.data().toInt();
     48 
     49 	opts.minimum = -95;
     50 	opts.maximum = -35;
     51 	if (signal < opts.minimum)
     52 		opts.progress = opts.minimum;
     53 	else if (signal > opts.maximum)
     54 		opts.progress = opts.maximum;
     55 	else
     56 		opts.progress = signal;
     57 
     58 	opts.text = QString::number(signal) + " dBm";
     59 	opts.textVisible = true;
     60 	opts.rect = option.rect;
     61 
     62 	QApplication::style()->drawControl(QStyle::CE_ProgressBar,
     63 					   &opts, painter);
     64 }
     65