diff --git a/img/taskbar/taskbar_busy.png b/img/taskbar/dark/taskbar_busy.png similarity index 100% rename from img/taskbar/taskbar_busy.png rename to img/taskbar/dark/taskbar_busy.png diff --git a/img/taskbar/taskbar_busy_2x.png b/img/taskbar/dark/taskbar_busy_2x.png similarity index 100% rename from img/taskbar/taskbar_busy_2x.png rename to img/taskbar/dark/taskbar_busy_2x.png diff --git a/img/taskbar/taskbar_idle.png b/img/taskbar/dark/taskbar_idle.png similarity index 100% rename from img/taskbar/taskbar_idle.png rename to img/taskbar/dark/taskbar_idle.png diff --git a/img/taskbar/taskbar_idle_2x.png b/img/taskbar/dark/taskbar_idle_2x.png similarity index 100% rename from img/taskbar/taskbar_idle_2x.png rename to img/taskbar/dark/taskbar_idle_2x.png diff --git a/img/taskbar/taskbar_invisible.png b/img/taskbar/dark/taskbar_invisible.png similarity index 100% rename from img/taskbar/taskbar_invisible.png rename to img/taskbar/dark/taskbar_invisible.png diff --git a/img/taskbar/taskbar_invisible_2x.png b/img/taskbar/dark/taskbar_invisible_2x.png similarity index 100% rename from img/taskbar/taskbar_invisible_2x.png rename to img/taskbar/dark/taskbar_invisible_2x.png diff --git a/img/taskbar/taskbar_offline.png b/img/taskbar/dark/taskbar_offline.png similarity index 100% rename from img/taskbar/taskbar_offline.png rename to img/taskbar/dark/taskbar_offline.png diff --git a/img/taskbar/taskbar_offline_2x.png b/img/taskbar/dark/taskbar_offline_2x.png similarity index 100% rename from img/taskbar/taskbar_offline_2x.png rename to img/taskbar/dark/taskbar_offline_2x.png diff --git a/img/taskbar/taskbar_online.png b/img/taskbar/dark/taskbar_online.png similarity index 100% rename from img/taskbar/taskbar_online.png rename to img/taskbar/dark/taskbar_online.png diff --git a/img/taskbar/taskbar_online_2x.png b/img/taskbar/dark/taskbar_online_2x.png similarity index 100% rename from img/taskbar/taskbar_online_2x.png rename to img/taskbar/dark/taskbar_online_2x.png diff --git a/img/taskbar/light/taskbar_busy.png b/img/taskbar/light/taskbar_busy.png new file mode 100644 index 000000000..6408db92a Binary files /dev/null and b/img/taskbar/light/taskbar_busy.png differ diff --git a/img/taskbar/light/taskbar_busy_2x.png b/img/taskbar/light/taskbar_busy_2x.png new file mode 100644 index 000000000..248e05860 Binary files /dev/null and b/img/taskbar/light/taskbar_busy_2x.png differ diff --git a/img/taskbar/light/taskbar_idle.png b/img/taskbar/light/taskbar_idle.png new file mode 100644 index 000000000..fae60333e Binary files /dev/null and b/img/taskbar/light/taskbar_idle.png differ diff --git a/img/taskbar/light/taskbar_idle_2x.png b/img/taskbar/light/taskbar_idle_2x.png new file mode 100644 index 000000000..93b33eba4 Binary files /dev/null and b/img/taskbar/light/taskbar_idle_2x.png differ diff --git a/img/taskbar/light/taskbar_invisible.png b/img/taskbar/light/taskbar_invisible.png new file mode 100644 index 000000000..cc45ab1f4 Binary files /dev/null and b/img/taskbar/light/taskbar_invisible.png differ diff --git a/img/taskbar/light/taskbar_invisible_2x.png b/img/taskbar/light/taskbar_invisible_2x.png new file mode 100644 index 000000000..19a736b3b Binary files /dev/null and b/img/taskbar/light/taskbar_invisible_2x.png differ diff --git a/img/taskbar/light/taskbar_offline.png b/img/taskbar/light/taskbar_offline.png new file mode 100644 index 000000000..61c18265e Binary files /dev/null and b/img/taskbar/light/taskbar_offline.png differ diff --git a/img/taskbar/light/taskbar_offline_2x.png b/img/taskbar/light/taskbar_offline_2x.png new file mode 100644 index 000000000..db79070bb Binary files /dev/null and b/img/taskbar/light/taskbar_offline_2x.png differ diff --git a/img/taskbar/light/taskbar_online.png b/img/taskbar/light/taskbar_online.png new file mode 100644 index 000000000..007f0d1c9 Binary files /dev/null and b/img/taskbar/light/taskbar_online.png differ diff --git a/img/taskbar/light/taskbar_online_2x.png b/img/taskbar/light/taskbar_online_2x.png new file mode 100644 index 000000000..247e2b217 Binary files /dev/null and b/img/taskbar/light/taskbar_online_2x.png differ diff --git a/res.qrc b/res.qrc index 40b6d28f2..5db98f01e 100644 --- a/res.qrc +++ b/res.qrc @@ -37,10 +37,14 @@ img/status/dot_online.png img/status/dot_online_2x.png img/status/dot_online_notification.png - img/taskbar/taskbar_online_2x.png - img/taskbar/taskbar_idle_2x.png - img/taskbar/taskbar_busy_2x.png - img/taskbar/taskbar_offline_2x.png + img/taskbar/dark/taskbar_online_2x.png + img/taskbar/dark/taskbar_idle_2x.png + img/taskbar/dark/taskbar_busy_2x.png + img/taskbar/dark/taskbar_offline_2x.png + img/taskbar/light/taskbar_online_2x.png + img/taskbar/light/taskbar_idle_2x.png + img/taskbar/light/taskbar_busy_2x.png + img/taskbar/light/taskbar_offline_2x.png img/transfer.png smileys/cylgom/angel.png smileys/cylgom/angry.png diff --git a/src/misc/settings.cpp b/src/misc/settings.cpp index e04dc7f49..b14fe2e34 100644 --- a/src/misc/settings.cpp +++ b/src/misc/settings.cpp @@ -167,6 +167,7 @@ void Settings::load() timestampFormat = s.value("timestampFormat", "hh:mm").toString(); minimizeOnClose = s.value("minimizeOnClose", false).toBool(); minimizeToTray = s.value("minimizeToTray", false).toBool(); + lightTrayIcon = s.value("lightTrayIcon", false).toBool(); useNativeStyle = s.value("nativeStyle", false).toBool(); useEmoticons = s.value("useEmoticons", true).toBool(); statusChangeNotificationEnabled = s.value("statusChangeNotificationEnabled", false).toBool(); @@ -315,6 +316,7 @@ void Settings::save(QString path, bool writeFriends) s.setValue("timestampFormat", timestampFormat); s.setValue("minimizeOnClose", minimizeOnClose); s.setValue("minimizeToTray", minimizeToTray); + s.setValue("lightTrayIcon", lightTrayIcon); s.setValue("nativeStyle", useNativeStyle); s.setValue("useEmoticons", useEmoticons); s.setValue("themeColor", themeColor); @@ -530,6 +532,16 @@ void Settings::setMinimizeToTray(bool newValue) minimizeToTray = newValue; } +bool Settings::getLightTrayIcon() const +{ + return lightTrayIcon; +} + +void Settings::setLightTrayIcon(bool newValue) +{ + lightTrayIcon = newValue; +} + bool Settings::getStatusChangeNotificationEnabled() const { return statusChangeNotificationEnabled; diff --git a/src/misc/settings.h b/src/misc/settings.h index 7ebe39f66..848ade407 100644 --- a/src/misc/settings.h +++ b/src/misc/settings.h @@ -61,6 +61,9 @@ public: bool getMinimizeToTray() const; void setMinimizeToTray(bool newValue); + + bool getLightTrayIcon() const; + void setLightTrayIcon(bool newValue); QString getStyle() const; void setStyle(const QString& newValue); @@ -244,6 +247,7 @@ private: bool autostartInTray; bool closeToTray; bool minimizeToTray; + bool lightTrayIcon; bool useEmoticons; bool checkUpdates; bool showInFront; diff --git a/src/widget/form/settings/generalform.cpp b/src/widget/form/settings/generalform.cpp index 0f3ab819d..64efcbdf5 100644 --- a/src/widget/form/settings/generalform.cpp +++ b/src/widget/form/settings/generalform.cpp @@ -62,6 +62,8 @@ GeneralForm::GeneralForm(SettingsWidget *myParent) : bodyUI->closeToTray->setEnabled(showSystemTray); bodyUI->minimizeToTray->setChecked(Settings::getInstance().getMinimizeToTray()); bodyUI->minimizeToTray->setEnabled(showSystemTray); + bodyUI->lightTrayIcon->setChecked(Settings::getInstance().getLightTrayIcon()); + bodyUI->lightTrayIcon->setEnabled(showSystemTray); bodyUI->statusChanges->setChecked(Settings::getInstance().getStatusChangeNotificationEnabled()); bodyUI->useEmoticons->setChecked(Settings::getInstance().getUseEmoticons()); bodyUI->autoacceptFiles->setChecked(Settings::getInstance().getAutoSaveEnabled()); @@ -120,6 +122,7 @@ GeneralForm::GeneralForm(SettingsWidget *myParent) : connect(bodyUI->startInTray, &QCheckBox::stateChanged, this, &GeneralForm::onSetAutostartInTray); connect(bodyUI->closeToTray, &QCheckBox::stateChanged, this, &GeneralForm::onSetCloseToTray); connect(bodyUI->minimizeToTray, &QCheckBox::stateChanged, this, &GeneralForm::onSetMinimizeToTray); + connect(bodyUI->lightTrayIcon, &QCheckBox::stateChanged, this, &GeneralForm::onSetLightTrayIcon); connect(bodyUI->statusChanges, &QCheckBox::stateChanged, this, &GeneralForm::onSetStatusChange); connect(bodyUI->autoAwaySpinBox, SIGNAL(editingFinished()), this, SLOT(onAutoAwayChanged())); connect(bodyUI->showInFront, &QCheckBox::stateChanged, this, &GeneralForm::onSetShowInFront); @@ -185,6 +188,12 @@ void GeneralForm::onSetCloseToTray() Settings::getInstance().setCloseToTray(bodyUI->closeToTray->isChecked()); } +void GeneralForm::onSetLightTrayIcon() +{ + Settings::getInstance().setLightTrayIcon(bodyUI->lightTrayIcon->isChecked()); + Widget::getInstance()->updateTrayIcon(); +} + void GeneralForm::onSetMinimizeToTray() { Settings::getInstance().setMinimizeToTray(bodyUI->minimizeToTray->isChecked()); diff --git a/src/widget/form/settings/generalform.h b/src/widget/form/settings/generalform.h index ec41fb0ad..a560cf7ae 100644 --- a/src/widget/form/settings/generalform.h +++ b/src/widget/form/settings/generalform.h @@ -37,6 +37,7 @@ private slots: void onSetShowSystemTray(); void onSetAutostartInTray(); void onSetCloseToTray(); + void onSetLightTrayIcon(); void onSmileyBrowserIndexChanged(int index); void onUDPUpdated(); void onProxyAddrEdited(); diff --git a/src/widget/form/settings/generalsettings.ui b/src/widget/form/settings/generalsettings.ui index 4df38f286..47258e049 100644 --- a/src/widget/form/settings/generalsettings.ui +++ b/src/widget/form/settings/generalsettings.ui @@ -39,8 +39,8 @@ 0 0 - 509 - 849 + 513 + 819 @@ -109,7 +109,7 @@ - + @@ -152,6 +152,13 @@ + + + + Light icon + + + diff --git a/src/widget/widget.cpp b/src/widget/widget.cpp index 4f53a4c4e..77593bdf8 100644 --- a/src/widget/widget.cpp +++ b/src/widget/widget.cpp @@ -300,14 +300,15 @@ void Widget::updateTrayIcon() return; QString status = ui->statusButton->property("status").toString(); QString pic; + QString color = Settings::getInstance().getLightTrayIcon() ? "light" : "dark"; if (status == "online") - pic = ":img/taskbar/taskbar_online_2x.png"; + pic = ":img/taskbar/" + color + "/taskbar_online_2x.png"; else if (status == "away") - pic = ":img/taskbar/taskbar_idle_2x.png"; + pic = ":img/taskbar/" + color + "/taskbar_idle_2x.png"; else if (status == "busy") - pic = ":img/taskbar/taskbar_busy_2x.png"; + pic = ":img/taskbar/" + color + "/taskbar_busy_2x.png"; else - pic = ":img/taskbar/taskbar_offline_2x.png"; + pic = ":img/taskbar/" + color + "/taskbar_offline_2x.png"; icon->setIcon(QIcon(pic)); }