Merged the hostap_2.6 updates, and the Leap of Faith work, from the hostap_update...
[mech_eap.git] / libeap / wpa_supplicant / wpa_gui-qt4 / signalbar.cpp
diff --git a/libeap/wpa_supplicant/wpa_gui-qt4/signalbar.cpp b/libeap/wpa_supplicant/wpa_gui-qt4/signalbar.cpp
new file mode 100644 (file)
index 0000000..2bba582
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * 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);
+}