diff options
author | Ken Moore <ken@ixsystems.com> | 2018-04-27 10:01:23 -0400 |
---|---|---|
committer | Ken Moore <ken@ixsystems.com> | 2018-04-27 10:02:29 -0400 |
commit | 6c41b741d4c25ee1a9439d4b3779bccbb9f3fff3 (patch) | |
tree | 860e3b5155cdd177193c4cabdec15d7dd79c83b6 /src-qt5/core/lumina-desktop/panel-plugins | |
parent | Commit a bunch more work on the Lumina 2 screen reservations. (diff) | |
download | lumina-6c41b741d4c25ee1a9439d4b3779bccbb9f3fff3.tar.gz lumina-6c41b741d4c25ee1a9439d4b3779bccbb9f3fff3.tar.bz2 lumina-6c41b741d4c25ee1a9439d4b3779bccbb9f3fff3.zip |
Cleanup the icon loading routines for battery status.
This should make it generic enough to support all XDG icon themes.
Diffstat (limited to 'src-qt5/core/lumina-desktop/panel-plugins')
3 files changed, 23 insertions, 70 deletions
diff --git a/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.cpp b/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.cpp index 1870eefb..10ac2507 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.cpp +++ b/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.cpp @@ -30,72 +30,31 @@ LBattery::~LBattery(){ void LBattery::updateBattery(bool force){ // Get current state of charge - //QStringList result = LUtils::getCmdOutput("/usr/sbin/apm", QStringList() << "-al"); - int charge = LOS::batteryCharge(); //result.at(1).toInt(); -//qDebug() << "1: " << result.at(0).toInt() << " 2: " << result.at(1).toInt(); - int icon = -1; - if (charge > 90) { icon = 4; } - else if (charge > 70) { icon = 3; } - else if (charge > 20) { icon = 2; } - else if (charge > 5) { icon = 1; } - else if (charge > 0 ) { icon = 0; } - if(LOS::batteryIsCharging()){ icon = icon+10; } - //icon = icon + result.at(0).toInt() * 10; - if (icon != iconOld || force) { - switch (icon) { - case 0: - label->setPixmap( LXDG::findIcon("battery-20","battery-caution").pixmap(label->size()) ); - break; - case 1: - label->setPixmap( LXDG::findIcon("battery-40", "battery-040").pixmap(label->size()) ); - break; - case 2: - label->setPixmap( LXDG::findIcon("battery-60", "battery-060").pixmap(label->size()) ); - break; - case 3: - label->setPixmap( LXDG::findIcon("battery-80", "battery-080").pixmap(label->size()) ); - break; - case 4: - label->setPixmap( LXDG::findIcon("battery-100", "battery").pixmap(label->size()) ); - break; - case 10: - label->setPixmap( LXDG::findIcon("battery-charging-20", "battery-charging-caution").pixmap(label->size()) ); - break; - case 11: - label->setPixmap( LXDG::findIcon("battery-charging-40", "battery-charging-040").pixmap(label->size()) ); - break; - case 12: - label->setPixmap( LXDG::findIcon("battery-charging-60", "battery-charging-060").pixmap(label->size()) ); - break; - case 13: - label->setPixmap( LXDG::findIcon("battery-charging-80", "battery-charging-080").pixmap(label->size()) ); - break; - case 14: - label->setPixmap( LXDG::findIcon("battery-charging-100", "battery-charging").pixmap(label->size()) ); - break; - default: - label->setPixmap( LXDG::findIcon("battery-unknown", "battery-missing").pixmap(label->size()) ); - break; - } - } - if(icon<iconOld && icon==0){ - //Play some audio warning chime when - bool playaudio = sessionsettings->value("PlayBatteryLowAudio",true).toBool(); - if( playaudio ){ - QString sfile = LSession::handle()->sessionSettings()->value("audiofiles/batterylow", LOS::LuminaShare()+"low-battery.ogg").toString(); - LSession::handle()->playAudioFile(sfile); + int charge = LOS::batteryCharge(); + bool charging = LOS::batteryIsCharging(); + QString batt_icon = LSession::batteryIconName(charge, charging); + if(iconOld != batt_icon){ + label->setPixmap( QIcon::fromTheme(batt_icon).pixmap(label->size()) ); + if(charge <= 5 && !charging){ + //Play some audio warning chime when + bool playaudio = sessionsettings->value("PlayBatteryLowAudio",true).toBool(); + if( playaudio ){ + QString sfile = LSession::handle()->sessionSettings()->value("audiofiles/batterylow", "").toString(); + if(sfile.isEmpty()){ sfile = LOS::LuminaShare()+"low-battery.ogg"; } + LSession::handle()->playAudioFile(sfile); + } } + iconOld = batt_icon; //save for later } - if(icon==0){ label->setStyleSheet("QLabel{ background: red;}"); } - else if(icon==14 && charge>98){ label->setStyleSheet("QLabel{ background: green;}"); } + if(charge<=5 && !charging){ label->setStyleSheet("QLabel{ background: red;}"); } + else if(charge>98 && charging){ label->setStyleSheet("QLabel{ background: green;}"); } else{ label->setStyleSheet("QLabel{ background: transparent;}"); } - iconOld = icon; //Now update the display QString tt; //Make sure the tooltip can be properly translated as necessary (Ken Moore 5/9/14) - if(icon > 9 && icon < 15){ tt = QString(tr("%1 % (Charging)")).arg(QString::number(charge)); } + if(charging){ tt = QString(tr("%1 % (Charging)")).arg(QString::number(charge)); } else{ tt = QString( tr("%1 % (%2 Remaining)") ).arg(QString::number(charge), getRemainingTime() ); } label->setToolTip(tt); } diff --git a/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.h b/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.h index 3c23be1c..e2fa411d 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.h +++ b/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.h @@ -29,7 +29,7 @@ public: private: QTimer *timer; QLabel *label; - int iconOld; + QString iconOld; QSettings *sessionsettings; private slots: diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp index ee3e0f80..e0ac6639 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp +++ b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp @@ -465,24 +465,18 @@ void StartMenu::on_stackedWidget_currentChanged(int val){ if(!ui->label_status_battery->whatsThis().isEmpty()){ //Battery available - update the status button int charge = LOS::batteryCharge(); - QString TT, ICON; - if(charge<=5){ ICON="-20"; } - else if(charge<=20){ ICON="-40"; } - else if(charge<=70){ ICON="-60"; } - else if(charge<=90){ ICON="-80"; } - else{ ICON="-100"; } - if(LOS::batteryIsCharging()){ - if(charge>=80){ ICON.clear(); } //for charging, there is no suffix to the icon name over 80% - ICON.prepend("battery-charging"); + bool charging = LOS::batteryIsCharging(); + QString batt_icon = LSession::batteryIconName(charge, charging); + QString TT; + if(charging){ TT = QString(tr("%1% (Plugged In)")).arg(QString::number(charge)); }else{ - ICON.prepend("battery"); int secs = LOS::batterySecondsLeft(); if(secs>1){ TT = QString(tr("%1% (%2 Estimated)")).arg(QString::number(charge), LUtils::SecondsToDisplay(secs)); } else{ TT = QString(tr("%1% Remaining")).arg(QString::number(charge)); } } //qDebug() << " Battery Icon:" << ICON << val << TT - ui->label_status_battery->setPixmap( LXDG::findIcon(ICON,"").pixmap(ui->tool_goto_apps->iconSize()/2) ); + ui->label_status_battery->setPixmap( QIcon::fromTheme(batt_icon).pixmap(ui->tool_goto_apps->iconSize()/2) ); ui->label_status_battery->setToolTip(TT); } //Network Status |