wpa-cute-freebsd/src/signalbar.cpp
2024-03-07 19:41:31 +01:00

59 lines
1.3 KiB
C++

/*
* wpaCute - A graphical wpa_supplicant front end
* Copyright (C) 2018, 2022, 2024 loh.tar@googlemail.com
*
* 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 COPYING 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() != 2) {
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);
}