Fix panel icon forcing

This commit is contained in:
Ilya Fedin 2020-03-17 23:13:11 +04:00 committed by John Preston
parent e5ad35125c
commit d2291f5b17
2 changed files with 13 additions and 9 deletions

View File

@ -78,7 +78,8 @@ QString GetTrayIconName(int counter, bool muted) {
const auto iconName = GetIconName();
const auto panelIconName = GetPanelIconName(counter, muted);
if (QIcon::hasThemeIcon(panelIconName)) {
if (QIcon::hasThemeIcon(panelIconName)
|| qEnvironmentVariableIsSet(kForcePanelIcon.utf8())) {
return panelIconName;
} else if (QIcon::hasThemeIcon(iconName)) {
return iconName;
@ -158,7 +159,7 @@ QIcon TrayIconGen(int counter, bool muted) {
|| iconThemeName != TrayIconThemeName
|| iconName != TrayIconName) {
if (!iconName.isEmpty()) {
if(systemIcon.isNull()) {
if (systemIcon.isNull()) {
systemIcon = QIcon::fromTheme(iconName);
}
@ -467,11 +468,12 @@ void MainWindow::psTrayMenuUpdated() {
}
#ifndef TDESKTOP_DISABLE_DBUS_INTEGRATION
void MainWindow::setSNITrayIcon(int counter, bool muted, bool firstShow) {
void MainWindow::setSNITrayIcon(int counter, bool muted) {
const auto iconName = GetTrayIconName(counter, muted);
if (qEnvironmentVariableIsSet(kDisableTrayCounter.utf8())
&& ((!iconName.isEmpty() && !InSnap())
&& !iconName.isEmpty()
&& (!InSnap()
|| qEnvironmentVariableIsSet(kForcePanelIcon.utf8()))) {
if (_sniTrayIcon->iconName() == iconName) {
return;
@ -480,7 +482,8 @@ void MainWindow::setSNITrayIcon(int counter, bool muted, bool firstShow) {
_sniTrayIcon->setIconByName(iconName);
_sniTrayIcon->setToolTipIconByName(iconName);
} else if (IsIndicatorApplication()) {
if(!IsIconRegenerationNeeded(counter, muted) && !firstShow) {
if (!IsIconRegenerationNeeded(counter, muted)
&& !_sniTrayIcon->iconName().isEmpty()) {
return;
}
@ -492,7 +495,8 @@ void MainWindow::setSNITrayIcon(int counter, bool muted, bool firstShow) {
_sniTrayIcon->setIconByName(_trayIconFile->fileName());
}
} else {
if(!IsIconRegenerationNeeded(counter, muted) && !firstShow) {
if (!IsIconRegenerationNeeded(counter, muted)
&& !_sniTrayIcon->iconPixmap().isEmpty()) {
return;
}
@ -554,7 +558,7 @@ void MainWindow::onSNIOwnerChanged(
cSetSupportTray(trayAvailable);
if(cSupportTray()) {
if (cSupportTray()) {
psSetupTrayIcon();
} else {
LOG(("System tray is not available."));
@ -575,7 +579,7 @@ void MainWindow::psSetupTrayIcon() {
this);
_sniTrayIcon->setTitle(AppName.utf16());
setSNITrayIcon(counter, muted, true);
setSNITrayIcon(counter, muted);
attachToSNITrayIcon();
}

View File

@ -123,7 +123,7 @@ private:
QAction *psMonospace = nullptr;
QAction *psClearFormat = nullptr;
void setSNITrayIcon(int counter, bool muted, bool firstShow = false);
void setSNITrayIcon(int counter, bool muted);
void attachToSNITrayIcon();
#endif // !TDESKTOP_DISABLE_DBUS_INTEGRATION