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));
}