From f0d993451f1ed4877297c40455b815feb6775731 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Sat, 22 Jan 2022 10:10:39 +0100 Subject: [PATCH] indicate QT_STYLE_OVERRIDE usage in settings --- src/librssguard/gui/settings/settingsgui.cpp | 6 ++++++ src/librssguard/miscellaneous/skinfactory.cpp | 10 ++++++++-- src/librssguard/miscellaneous/skinfactory.h | 5 ++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/librssguard/gui/settings/settingsgui.cpp b/src/librssguard/gui/settings/settingsgui.cpp index e7741db84..cab1230a2 100644 --- a/src/librssguard/gui/settings/settingsgui.cpp +++ b/src/librssguard/gui/settings/settingsgui.cpp @@ -196,6 +196,12 @@ void SettingsGui::loadSettings() { m_ui->m_cmbStyles->setCurrentIndex(item_style); } + if (qApp->skins()->styleIsFrozen()) { + m_ui->m_cmbStyles->setEnabled(false); + m_ui->m_cmbStyles->setToolTip(tr("You cannot change style because it was explicitly selected in your OS settings.\n" + "Perhaps it is set with 'QT_STYLE_OVERRIDE' environment variable?")); + } + // Load tab settings. m_ui->m_checkCloseTabsMiddleClick->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::TabCloseMiddleClick)).toBool()); m_ui->m_checkCloseTabsDoubleClick->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::TabCloseDoubleClick)).toBool()); diff --git a/src/librssguard/miscellaneous/skinfactory.cpp b/src/librssguard/miscellaneous/skinfactory.cpp index 150739176..7e4137b35 100644 --- a/src/librssguard/miscellaneous/skinfactory.cpp +++ b/src/librssguard/miscellaneous/skinfactory.cpp @@ -14,7 +14,7 @@ #include #include -SkinFactory::SkinFactory(QObject* parent) : QObject(parent) {} +SkinFactory::SkinFactory(QObject* parent) : QObject(parent), m_styleIsFrozen(false) {} void SkinFactory::loadCurrentSkin() { QList skin_names_to_try = { selectedSkinName(), QSL(APP_SKIN_DEFAULT) }; @@ -53,11 +53,13 @@ void SkinFactory::loadSkinFromData(const Skin& skin) { if (over_style.isEmpty()) { qApp->setStyle(style_name); + m_styleIsFrozen = false; qDebugNN << LOGSEC_GUI << "Setting style:" << QUOTE_W_SPACE_DOT(style_name); } else { - qDebugNN << LOGSEC_GUI << "Respecting forced style:" << QUOTE_W_SPACE_DOT(over_style); + m_styleIsFrozen = true; + qWarningNN << LOGSEC_GUI << "Respecting forced style:" << QUOTE_W_SPACE_DOT(over_style); } if (isStyleGoodForDarkVariant(style_name) && @@ -305,6 +307,10 @@ QString SkinFactory::loadSkinFile(const QString& skin_folder, const QString& fil return data.replace(QSL(USER_DATA_PLACEHOLDER), skin_folder); } +bool SkinFactory::styleIsFrozen() const { + return m_styleIsFrozen; +} + QList SkinFactory::installedSkins() const { QList skins; bool skin_load_ok; diff --git a/src/librssguard/miscellaneous/skinfactory.h b/src/librssguard/miscellaneous/skinfactory.h index 4bbdc7419..adeb82597 100644 --- a/src/librssguard/miscellaneous/skinfactory.h +++ b/src/librssguard/miscellaneous/skinfactory.h @@ -87,7 +87,9 @@ class RSSGUARD_DLLSPEC SkinFactory : public QObject { QString customSkinBaseFolder() const; - private: + bool styleIsFrozen() const; + +private: // Loads the skin from give skin_data. void loadSkinFromData(const Skin& skin); @@ -96,6 +98,7 @@ class RSSGUARD_DLLSPEC SkinFactory : public QObject { // Holds name of the current skin. Skin m_currentSkin; + bool m_styleIsFrozen; }; inline Skin SkinFactory::currentSkin() const {