This commit is contained in:
Martin Rotter 2025-01-30 10:34:34 +01:00
parent 80455c85b7
commit 186be98f84
6 changed files with 44 additions and 17 deletions

View file

@ -54,6 +54,10 @@ SettingsGui::SettingsGui(Settings* settings, QWidget* parent)
this,
&SettingsGui::updateSkinOptions);
connect(m_ui->m_checkMonochromeIcons,
&QCheckBox::toggled,
m_ui->m_checkColoredIconsWhenArticles,
&QCheckBox::setEnabled);
connect(m_ui->m_cmbIconTheme,
static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
this,
@ -69,6 +73,9 @@ SettingsGui::SettingsGui(Settings* settings, QWidget* parent)
connect(m_ui->m_checkForceAlternativePalette, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings);
connect(m_ui->m_checkForceAlternativePalette, &QCheckBox::toggled, this, &SettingsGui::requireRestart);
connect(m_ui->m_checkMonochromeIcons, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings);
connect(m_ui->m_checkMonochromeIcons, &QCheckBox::toggled, this, &SettingsGui::requireRestart);
connect(m_ui->m_checkColoredIconsWhenArticles, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings);
connect(m_ui->m_checkColoredIconsWhenArticles, &QCheckBox::toggled, this, &SettingsGui::requireRestart);
connect(m_ui->m_checkCountUnreadMessages, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings);
connect(m_ui->m_checkHideWhenMinimized, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings);
connect(m_ui->m_checkHideTabBarIfOneTabVisible, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings);
@ -188,6 +195,8 @@ void SettingsGui::loadSettings() {
}
m_ui->m_checkMonochromeIcons->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::MonochromeTrayIcon)).toBool());
m_ui->m_checkColoredIconsWhenArticles
->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::ColoredBusyTrayIcon)).toBool());
m_ui->m_checkCountUnreadMessages
->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::UnreadNumbersInTrayIcon)).toBool());
@ -389,14 +398,8 @@ void SettingsGui::saveSettings() {
qApp->deleteTrayIcon();
}
}
auto old_monochrome = settings()->value(GROUP(GUI), SETTING(GUI::MonochromeTrayIcon)).toBool();
if (old_monochrome != m_ui->m_checkMonochromeIcons->isChecked()) {
requireRestart();
settings()->setValue(GROUP(GUI), GUI::MonochromeTrayIcon, m_ui->m_checkMonochromeIcons->isChecked());
}
settings()->setValue(GROUP(GUI), GUI::MonochromeTrayIcon, m_ui->m_checkMonochromeIcons->isChecked());
settings()->setValue(GROUP(GUI), GUI::ColoredBusyTrayIcon, m_ui->m_checkColoredIconsWhenArticles->isChecked());
settings()->setValue(GROUP(GUI), GUI::UnreadNumbersInTrayIcon, m_ui->m_checkCountUnreadMessages->isChecked());
settings()->setValue(GROUP(GUI), GUI::MainWindowStartsHidden, m_ui->m_checkHidden->isChecked());
settings()->setValue(GROUP(GUI), GUI::HideMainWindowWhenMinimized, m_ui->m_checkHideWhenMinimized->isChecked());

View file

@ -96,7 +96,7 @@
<item row="4" column="0" colspan="2">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -157,7 +157,7 @@
</property>
<layout class="QFormLayout" name="formLayout_2">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::ExpandingFieldsGrow</enum>
<enum>QFormLayout::FieldGrowthPolicy::ExpandingFieldsGrow</enum>
</property>
<item row="0" column="0">
<widget class="QCheckBox" name="m_checkMonochromeIcons">
@ -166,34 +166,44 @@
</property>
</widget>
</item>
<item row="1" column="0">
<item row="2" column="0">
<widget class="QCheckBox" name="m_checkCountUnreadMessages">
<property name="text">
<string>Display count of unread messages</string>
</property>
</widget>
</item>
<item row="2" column="0">
<item row="3" column="0">
<widget class="QCheckBox" name="m_checkHideWhenMinimized">
<property name="text">
<string>Hide main window when it is minimized</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<item row="4" column="0" colspan="2">
<widget class="QCheckBox" name="m_checkHidden">
<property name="text">
<string>Start application hidden</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QCheckBox" name="m_checkColoredIconsWhenArticles">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Use colored icon when there are unread articles</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0" colspan="2">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -270,7 +280,7 @@
<item row="3" column="0" colspan="2">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -452,6 +462,7 @@
<tabstop>m_tabUi</tabstop>
<tabstop>m_grpTray</tabstop>
<tabstop>m_checkMonochromeIcons</tabstop>
<tabstop>m_checkColoredIconsWhenArticles</tabstop>
<tabstop>m_checkCountUnreadMessages</tabstop>
<tabstop>m_checkHideWhenMinimized</tabstop>
<tabstop>m_checkHidden</tabstop>
@ -467,6 +478,7 @@
<tabstop>m_checkForceAlternativePalette</tabstop>
<tabstop>m_treeSkins</tabstop>
<tabstop>m_gbCustomSkinColors</tabstop>
<tabstop>m_displayUnreadMessageCountOnTaskBar</tabstop>
</tabstops>
<resources/>
<connections/>

View file

@ -100,7 +100,8 @@ void SystemTrayIcon::setNumber(int number, bool any_feed_has_new_unread_messages
tray_painter.begin(&background);
if (qApp->settings()->value(GROUP(GUI), SETTING(GUI::MonochromeTrayIcon)).toBool()) {
if (qApp->settings()->value(GROUP(GUI), SETTING(GUI::MonochromeTrayIcon)).toBool() &&
!qApp->settings()->value(GROUP(GUI), SETTING(GUI::ColoredBusyTrayIcon)).toBool()) {
tray_painter.setPen(Qt::GlobalColor::white);
}
else {

View file

@ -674,7 +674,12 @@ void Application::restoreDatabaseSettings(bool restore_database,
SystemTrayIcon* Application::trayIcon() {
if (m_trayIcon == nullptr) {
if (qApp->settings()->value(GROUP(GUI), SETTING(GUI::MonochromeTrayIcon)).toBool()) {
m_trayIcon = new SystemTrayIcon(APP_ICON_MONO_PATH, APP_ICON_MONO_PLAIN_PATH, m_mainForm);
if (qApp->settings()->value(GROUP(GUI), SETTING(GUI::ColoredBusyTrayIcon)).toBool()) {
m_trayIcon = new SystemTrayIcon(APP_ICON_MONO_PATH, APP_ICON_PLAIN_PATH, m_mainForm);
}
else {
m_trayIcon = new SystemTrayIcon(APP_ICON_MONO_PATH, APP_ICON_MONO_PLAIN_PATH, m_mainForm);
}
}
else {
m_trayIcon = new SystemTrayIcon(APP_ICON_PATH, APP_ICON_PLAIN_PATH, m_mainForm);

View file

@ -362,6 +362,9 @@ DVALUE(bool) GUI::HideMainWindowWhenMinimizedDef = false;
DKEY GUI::MonochromeTrayIcon = "monochrome_tray_icon";
DVALUE(bool) GUI::MonochromeTrayIconDef = false;
DKEY GUI::ColoredBusyTrayIcon = "colored_busy_tray_icon";
DVALUE(bool) GUI::ColoredBusyTrayIconDef = false;
DKEY GUI::ForcedSkinColors = "forced_skin_colors";
DVALUE(bool) GUI::ForcedSkinColorsDef = true;

View file

@ -361,6 +361,9 @@ namespace GUI {
KEY MonochromeTrayIcon;
VALUE(bool) MonochromeTrayIconDef;
KEY ColoredBusyTrayIcon;
VALUE(bool) ColoredBusyTrayIconDef;
KEY UnreadNumbersInTrayIcon;
VALUE(bool) UnreadNumbersInTrayIconDef;