systray: add dynamic icon support for connectivity action
This commit is contained in:
parent
9e0741c7a7
commit
de02b9b50e
1 changed files with 57 additions and 0 deletions
|
@ -31,6 +31,63 @@ void ConnectivityAction::update()
|
|||
} else {
|
||||
setText(i18nc("Display the cellular connection type and an approximate percentage of signal strength","%1 | ~%2%", m_cellularNetworkType, m_cellularNetworkStrength * 25));
|
||||
}
|
||||
|
||||
// set icon name
|
||||
|
||||
QString iconName = QStringLiteral("network-mobile");
|
||||
|
||||
if (m_cellularNetworkStrength < 0) {
|
||||
iconName += QStringLiteral("-off");
|
||||
} else {
|
||||
int signalStrength;
|
||||
switch (m_cellularNetworkStrength)
|
||||
{
|
||||
case 0 : signalStrength = 0; break;
|
||||
case 1 : signalStrength = 20; break;
|
||||
case 2 : signalStrength = 60; break;
|
||||
case 3 : signalStrength = 80; break;
|
||||
default : signalStrength = 100; break;
|
||||
}
|
||||
iconName += QStringLiteral("-") + QString::number(signalStrength);
|
||||
}
|
||||
|
||||
if (m_cellularNetworkType == QStringLiteral("5G")) {
|
||||
// No icon for this case!
|
||||
iconName += QStringLiteral("-");
|
||||
} else if (m_cellularNetworkType == QStringLiteral("LTE")) {
|
||||
iconName += QStringLiteral("-lte");
|
||||
} else if (m_cellularNetworkType == QStringLiteral("HSPA")) {
|
||||
iconName += QStringLiteral("-hspa");
|
||||
} else if (m_cellularNetworkType == QStringLiteral("UMTS")) {
|
||||
iconName += QStringLiteral("-umts");
|
||||
} else if (m_cellularNetworkType == QStringLiteral("CDMA2000")) {
|
||||
// GSconnect just uses the 3g icon
|
||||
// No icon for this case!
|
||||
iconName += QStringLiteral("");
|
||||
} else if (m_cellularNetworkType == QStringLiteral("EDGE")) {
|
||||
iconName += QStringLiteral("-edge");
|
||||
} else if (m_cellularNetworkType == QStringLiteral("GPRS")) {
|
||||
iconName += QStringLiteral("-gprs");
|
||||
} else if (m_cellularNetworkType == QStringLiteral("GSM")) {
|
||||
// GSconnect just uses the 2g icon
|
||||
// No icon for this case!
|
||||
iconName += QStringLiteral("");
|
||||
} else if (m_cellularNetworkType == QStringLiteral("CDMA")) {
|
||||
// GSconnect just uses the 2g icon
|
||||
// No icon for this case!
|
||||
iconName += QStringLiteral("");
|
||||
} else if (m_cellularNetworkType == QStringLiteral("iDEN")) {
|
||||
// GSconnect just uses the 2g icon
|
||||
// No icon for this case!
|
||||
iconName += QStringLiteral("");
|
||||
} else {
|
||||
// We didn't recognize the network type. Don't append anything.
|
||||
iconName += QStringLiteral("");
|
||||
}
|
||||
qDebug() << "iconName ="<< iconName;
|
||||
|
||||
setIcon(QIcon::fromTheme(iconName));
|
||||
|
||||
}
|
||||
|
||||
void ConnectivityAction::setCellularNetworkStrength(int cellularNetworkStrength)
|
||||
|
|
Loading…
Reference in a new issue