Use new fancy stars also on Status page

This commit is contained in:
loh.tar 2024-03-24 20:15:46 +01:00
parent 19cfcfe9b6
commit 5928dc3da6
5 changed files with 168 additions and 172 deletions

37
src/helper.cpp Normal file
View file

@ -0,0 +1,37 @@
/*
* wpaCute - A graphical wpa_supplicant front end
* Copyright (C) 2018, 2022, 2024 loh.tar@googlemail.com
*
* Collection of Helper Functions
* Copyright (C) 2024 loh.tar@googlemail.com
*
* This software may be distributed under the terms of the BSD license.
* See COPYING for more details.
*/
#include "helper.h"
QString Helper::signalToHumanText(const QString& signal) {
const int s = signal.toInt();
if (s < -87) {
return signal + "dBm ☆☆☆☆☆";
} else if (s < -80) {
return signal + "dBm ★☆☆☆☆";
} else if (s < -73) {
return signal + "dBm ★★☆☆☆";
} else if (s < -65) {
return signal + "dBm ★★★☆☆";
} else if (s < -58) {
return signal + "dBm ★★★★☆";
} else {
return signal + "dBm ★★★★★";
}
}
QString Helper::signalToHumanText(int signal) {
return signalToHumanText(QString::number(signal));
}

View file

@ -9,24 +9,16 @@
* See COPYING for more details. * See COPYING for more details.
*/ */
#ifndef HELPER_H
#define HELPER_H
#include <QString> #include <QString>
namespace Helper { namespace Helper {
QString signalToHumanText(const QString& signal) { QString signalToHumanText(const QString& signal);
const int s = signal.toInt(); QString signalToHumanText(int signal);
if (s < -87) {
return signal + "dBm ☆☆☆☆☆";
} else if (s < -80) {
return signal + "dBm ★☆☆☆☆";
} else if (s < -73) {
return signal + "dBm ★★☆☆☆";
} else if (s < -65) {
return signal + "dBm ★★★☆☆";
} else if (s < -58) {
return signal + "dBm ★★★★☆";
} else {
return signal + "dBm ★★★★★";
}
};
} }
#endif /* HELPER_H */

View file

@ -61,6 +61,7 @@ SOURCES += main.cpp \
addinterface.cpp \ addinterface.cpp \
peers.cpp \ peers.cpp \
stringquery.cpp \ stringquery.cpp \
helper.cpp \
about.cpp \ about.cpp \
../wpa_supplicant/src/common/wpa_ctrl.c ../wpa_supplicant/src/common/wpa_ctrl.c

View file

@ -31,6 +31,7 @@
#include "about.h" #include "about.h"
#include "eventhistory.h" #include "eventhistory.h"
#include "helper.h"
#include "networkconfig.h" #include "networkconfig.h"
#include "peers.h" #include "peers.h"
#include "scanresults.h" #include "scanresults.h"
@ -760,7 +761,7 @@ void WpaGui::setState(const WpaStateType state) {
networkMenu->setEnabled(false); networkMenu->setEnabled(false);
wpaguiTab->setTabEnabled(wpaguiTab->indexOf(networksTab), false); wpaguiTab->setTabEnabled(wpaguiTab->indexOf(networksTab), false);
wpaguiTab->setCurrentWidget(eventTab); wpaguiTab->setCurrentWidget(eventTab);
rssiBar->hide(); textRssi->hide();
letTheDogOut(); letTheDogOut();
break; break;
case WpaUnknown: // TC case WpaUnknown: // TC
@ -768,7 +769,7 @@ void WpaGui::setState(const WpaStateType state) {
// icon = ; // icon = ;
stateText = tr("Unknown"); stateText = tr("Unknown");
tally.insert(NetworkNeedsUpdate); tally.insert(NetworkNeedsUpdate);
rssiBar->hide(); textRssi->hide();
break; break;
case WpaObscure: // TC case WpaObscure: // TC
wpaState = WpaObscure; wpaState = WpaObscure;
@ -803,7 +804,7 @@ void WpaGui::setState(const WpaStateType state) {
closeDialog(peersWindow); closeDialog(peersWindow);
tally.insert(NetworkNeedsUpdate); tally.insert(NetworkNeedsUpdate);
if (ctrl_conn) { wpa_ctrl_close(ctrl_conn); ctrl_conn = NULL; } if (ctrl_conn) { wpa_ctrl_close(ctrl_conn); ctrl_conn = NULL; }
rssiBar->hide(); textRssi->hide();
// Now, polling is mandatory // Now, polling is mandatory
letTheDogOut(); letTheDogOut();
break; break;
@ -832,7 +833,7 @@ void WpaGui::setState(const WpaStateType state) {
scanAction->setEnabled(false); scanAction->setEnabled(false);
peersAction->setEnabled(false); peersAction->setEnabled(false);
tally.insert(NetworkNeedsUpdate); tally.insert(NetworkNeedsUpdate);
rssiBar->hide(); textRssi->hide();
// Now, polling is mandatory // Now, polling is mandatory
letTheDogOut(); letTheDogOut();
break; break;
@ -873,7 +874,7 @@ void WpaGui::setState(const WpaStateType state) {
disconReconAction->setStatusTip(StpWpsActTTTxt); disconReconAction->setStatusTip(StpWpsActTTTxt);
disconReconAction->setEnabled(true); disconReconAction->setEnabled(true);
tally.insert(WpsRunning); tally.insert(WpsRunning);
rssiBar->hide(); textRssi->hide();
break; break;
case WpaInactive: // FR case WpaInactive: // FR
wpaState = WpaInactive; wpaState = WpaInactive;
@ -883,7 +884,7 @@ void WpaGui::setState(const WpaStateType state) {
disconReconAction->setStatusTip(DiscActTTTxt); disconReconAction->setStatusTip(DiscActTTTxt);
disconReconAction->setEnabled(true); disconReconAction->setEnabled(true);
tally.insert(NetworkNeedsUpdate); tally.insert(NetworkNeedsUpdate);
rssiBar->hide(); textRssi->hide();
// The wpa_supplicant doesn't report the change // The wpa_supplicant doesn't report the change
// inactive -> disconnected, so we need a work around, // inactive -> disconnected, so we need a work around,
letTheDogOut(); letTheDogOut();
@ -898,7 +899,7 @@ void WpaGui::setState(const WpaStateType state) {
wpsAction->setEnabled(tally.contains(WpsIsSupported)); wpsAction->setEnabled(tally.contains(WpsIsSupported));
scanAction->setEnabled(true); scanAction->setEnabled(true);
peersAction->setEnabled(true); peersAction->setEnabled(true);
rssiBar->hide(); textRssi->hide();
// The wpa_supplicant doesn't report the change // The wpa_supplicant doesn't report the change
// scanning -> disconnected, so we need a work around // scanning -> disconnected, so we need a work around
letTheDogOut(BorderCollie); // No PomDog, the scan need some time letTheDogOut(BorderCollie); // No PomDog, the scan need some time
@ -911,7 +912,7 @@ void WpaGui::setState(const WpaStateType state) {
disconReconAction->setStatusTip(RecActTTTxt); disconReconAction->setStatusTip(RecActTTTxt);
disconReconAction->setEnabled(true); disconReconAction->setEnabled(true);
tally.insert(NetworkNeedsUpdate); tally.insert(NetworkNeedsUpdate);
rssiBar->hide(); textRssi->hide();
// The wpa_supplicant doesn't report the change // The wpa_supplicant doesn't report the change
// disconnected -> inactive, so we need a work around because that // disconnected -> inactive, so we need a work around because that
// happens when you disable your connected network with no alternatives left // happens when you disable your connected network with no alternatives left
@ -925,7 +926,7 @@ void WpaGui::setState(const WpaStateType state) {
wpaState = WpaLostSignal; wpaState = WpaLostSignal;
icon = TrayIconSignalNone; icon = TrayIconSignalNone;
stateText = tr("Lost signal"); stateText = tr("Lost signal");
rssiBar->hide(); textRssi->hide();
trayMessage(stateText trayMessage(stateText
+ tr(" from %1 - %2").arg(textSsid->text()).arg(textBssid->text()) + tr(" from %1 - %2").arg(textSsid->text()).arg(textBssid->text())
, LogThis, QSystemTrayIcon::Warning); , LogThis, QSystemTrayIcon::Warning);
@ -938,7 +939,7 @@ void WpaGui::setState(const WpaStateType state) {
disconReconAction->setStatusTip(DiscActTTTxt); disconReconAction->setStatusTip(DiscActTTTxt);
disconReconAction->setEnabled(true); disconReconAction->setEnabled(true);
tally.insert(NetworkNeedsUpdate); tally.insert(NetworkNeedsUpdate);
rssiBar->show(); textRssi->show();
trayMessage(stateText trayMessage(stateText
+ tr(" to %1 - %2").arg(textSsid->text()).arg(textBssid->text()) + tr(" to %1 - %2").arg(textSsid->text()).arg(textBssid->text())
, LogThis); , LogThis);
@ -1439,7 +1440,7 @@ void WpaGui::updateSignalMeter() {
} }
debug("RSSI value: %d", rssi_value); debug("RSSI value: %d", rssi_value);
rssiBar->setValue(rssi_value); textRssi->setText(Helper::signalToHumanText(rssi_value));
/* /*
* NOTE: The code below assumes, that the unit of the value returned * NOTE: The code below assumes, that the unit of the value returned
@ -2199,7 +2200,7 @@ void WpaGui::showTrayStatus() {
msg.append(mask.arg(ssidLabel->text(), lw) msg.append(mask.arg(ssidLabel->text(), lw)
.arg(textSsid->text(), tw)); .arg(textSsid->text(), tw));
msg.append(mask.arg(rssiLabel->text(), lw) msg.append(mask.arg(rssiLabel->text(), lw)
.arg(rssiBar->text(), tw)); .arg(textRssi->text(), tw));
msg.append(mask.arg(bssidLabel->text(), lw) msg.append(mask.arg(bssidLabel->text(), lw)
.arg(textBssid->text(), tw)); .arg(textBssid->text(), tw));
msg.append(mask.arg(authenticationLabel->text(), lw) msg.append(mask.arg(authenticationLabel->text(), lw)

View file

@ -145,156 +145,121 @@
<property name="frameShadow"> <property name="frameShadow">
<enum>QFrame::Plain</enum> <enum>QFrame::Plain</enum>
</property> </property>
<layout class="QGridLayout" name="gridLayout_3"> <layout class="QHBoxLayout" name="horizontalLayout_3">
<item row="0" column="1" rowspan="7"> <item>
<spacer name="horizontalSpacer_5"> <layout class="QVBoxLayout" name="verticalLayout_5">
<property name="orientation"> <item>
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>9</width>
<height>218</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0">
<widget class="QLabel" name="statusLabel"> <widget class="QLabel" name="statusLabel">
<property name="text"> <property name="text">
<string>Status:</string> <string>Status:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="2"> <item>
<widget class="QProgressBar" name="rssiBar">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="minimum">
<number>-95</number>
</property>
<property name="maximum">
<number>-35</number>
</property>
<property name="value">
<number>-68</number>
</property>
<property name="invertedAppearance">
<bool>true</bool>
</property>
<property name="textDirection">
<enum>QProgressBar::TopToBottom</enum>
</property>
<property name="format">
<string>%vdBm</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="bssidLabel">
<property name="text">
<string>BSSID:</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QLabel" name="textBssid">
<property name="text">
<string>&lt;bssid&gt;</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="ssidLabel"> <widget class="QLabel" name="ssidLabel">
<property name="text"> <property name="text">
<string>SSID:</string> <string>SSID:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item>
<widget class="QLabel" name="rssiLabel"> <widget class="QLabel" name="rssiLabel">
<property name="text"> <property name="text">
<string>Signal:</string> <string>Signal:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="0"> <item>
<widget class="QLabel" name="bssidLabel">
<property name="text">
<string>BSSID:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="authenticationLabel"> <widget class="QLabel" name="authenticationLabel">
<property name="text"> <property name="text">
<string>Authentication:</string> <string>Authentication:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="2"> <item>
<widget class="QLabel" name="textAuthentication">
<property name="text">
<string>&lt;auth&gt;</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="encryptionLabel"> <widget class="QLabel" name="encryptionLabel">
<property name="text"> <property name="text">
<string>Encryption:</string> <string>Encryption:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="2"> <item>
<widget class="QLabel" name="textStatus">
<property name="text">
<string>&lt;status&gt;</string>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QLabel" name="textEncryption">
<property name="text">
<string>&lt;encryp&gt;</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="ipAddressLabel"> <widget class="QLabel" name="ipAddressLabel">
<property name="text"> <property name="text">
<string>IP address:</string> <string>IP address:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="6" column="2"> </layout>
<widget class="QLabel" name="textIpAddress"> </item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<widget class="QLabel" name="textStatus">
<property name="text"> <property name="text">
<string>&lt;ip-addr&gt;</string> <string>&lt;status&gt;</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="2"> <item>
<widget class="QLabel" name="textSsid"> <widget class="QLabel" name="textSsid">
<property name="text"> <property name="text">
<string>&lt;ssid&gt;</string> <string>&lt;ssid&gt;</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="3"> <item>
<spacer name="horizontalSpacer_6"> <widget class="QLabel" name="textRssi">
<property name="text">
<string>&lt;rssi&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="textBssid">
<property name="text">
<string>&lt;bssid&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="textAuthentication">
<property name="text">
<string>&lt;auth&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="textEncryption">
<property name="text">
<string>&lt;encryp&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="textIpAddress">
<property name="text">
<string>&lt;ip-addr&gt;</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>2</width> <width>282</width>
<height>20</height> <height>20</height>
</size> </size>
</property> </property>