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 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 }
     59