From 7faa87295146b46661b86da8b055aee7f486d70e Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Fri, 11 Mar 2022 08:06:07 +0100 Subject: [PATCH] work on skins infrastructure --- .../desktop/com.github.rssguard.appdata.xml | 2 +- resources/skins/nudus-dark/metadata.xml | 7 ++-- resources/skins/nudus-light/metadata.xml | 37 +------------------ src/librssguard/gui/settings/settingsgui.cpp | 20 +++++++--- src/librssguard/gui/tabwidget.cpp | 1 - src/librssguard/miscellaneous/settings.cpp | 4 +- src/librssguard/miscellaneous/settings.h | 4 +- src/librssguard/miscellaneous/skinfactory.cpp | 11 ++---- src/librssguard/miscellaneous/skinfactory.h | 1 + 9 files changed, 28 insertions(+), 59 deletions(-) diff --git a/resources/desktop/com.github.rssguard.appdata.xml b/resources/desktop/com.github.rssguard.appdata.xml index 3ef4dfdfb..03977a5b5 100644 --- a/resources/desktop/com.github.rssguard.appdata.xml +++ b/resources/desktop/com.github.rssguard.appdata.xml @@ -26,7 +26,7 @@ https://github.com/sponsors/martinrotter - + none diff --git a/resources/skins/nudus-dark/metadata.xml b/resources/skins/nudus-dark/metadata.xml index e47d73fc2..29d52d998 100644 --- a/resources/skins/nudus-dark/metadata.xml +++ b/resources/skins/nudus-dark/metadata.xml @@ -1,8 +1,9 @@ - + akinokonomi, martinrotter + Dark variant of 'nudus-light' skin. #85ACF6 #D9E3F7 @@ -10,7 +11,7 @@ #910303 #44AA44 - true + false #373A3D @@ -23,7 +24,7 @@ #323437 #8291AD - #2D2F32 + #2D2F32 #323437 #D8D8D8 diff --git a/resources/skins/nudus-light/metadata.xml b/resources/skins/nudus-light/metadata.xml index 6a44037a1..9d7cd9e54 100644 --- a/resources/skins/nudus-light/metadata.xml +++ b/resources/skins/nudus-light/metadata.xml @@ -1,5 +1,5 @@ - + akinokonomi, martinrotter @@ -10,39 +10,4 @@ #FFD7D7 #77dd77 - false - - - #373A3D - #323437 - #2D2F32 - #202224 - #292c2e - #292c2e - #292c2e - #323437 - #8291AD - - #2D2F32 - #323437 - - #D8D8D8 - #373A3D - #FFFFFF - #A7A7A7 - #D8D8D8 - #E7E7E7 - #D8D8D8 - #a1acc1 - #a1acc1 - - #2D2F32 - - - - #999999 - #A7A7A7 - #999999 - - \ No newline at end of file diff --git a/src/librssguard/gui/settings/settingsgui.cpp b/src/librssguard/gui/settings/settingsgui.cpp index 34e73529a..024f274ce 100644 --- a/src/librssguard/gui/settings/settingsgui.cpp +++ b/src/librssguard/gui/settings/settingsgui.cpp @@ -30,7 +30,7 @@ SettingsGui::SettingsGui(Settings* settings, QWidget* parent) : SettingsPanel(se m_ui->m_editorFeedsToolbar->availableItemsWidget()->viewport()->installEventFilter(this); m_ui->m_treeSkins->setColumnCount(4); m_ui->m_treeSkins->setHeaderHidden(false); - m_ui->m_treeSkins->setHeaderLabels({ tr("Name"), tr("Author"), tr("Forced style"), tr("Forced alternative palette") }); + m_ui->m_treeSkins->setHeaderLabels({ tr("Name"), tr("Author"), tr("Forced style"), tr("Forced UI colors") }); m_ui->m_tabUi->setTabVisible(m_ui->m_tabUi->indexOf(m_ui->m_tabTaskBar), #if (defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)) || defined(Q_OS_WIN) @@ -127,9 +127,7 @@ void SettingsGui::updateSkinOptions() { const bool skin_forces_style = !skin.m_forcedStyles.isEmpty(); m_ui->m_cmbStyles->setEnabled(!qApp->skins()->styleIsFrozen() && !skin_forces_style); - m_ui->m_checkForceAlternativePalette->setEnabled(skin_has_palette - ? !skin_forces_palette - : qApp->skins()->isStyleGoodForAlternativeStylePalette(m_ui->m_cmbStyles->currentText())); + m_ui->m_checkForceAlternativePalette->setEnabled(skin_has_palette && !skin_forces_palette); } void SettingsGui::loadSettings() { @@ -194,7 +192,7 @@ void SettingsGui::loadSettings() { m_ui->m_cmbStyles->setCurrentIndex(item_style); } - m_ui->m_checkForceAlternativePalette->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::ForceDarkFusion)).toBool()); + m_ui->m_checkForceAlternativePalette->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::ForceSkinPalette)).toBool()); // Load skin. const QString selected_skin = qApp->skins()->selectedSkinName(); @@ -207,6 +205,16 @@ void SettingsGui::loadSettings() { skin.m_forcedStyles.isEmpty() ? QString() : skin.m_forcedStyles.join(QSL(", ")), QString() }); + new_item->setToolTip(0, tr("%1\n\n" + "Version: %2\n" + "Description: %3").arg(skin.m_visibleName, + skin.m_version, + skin.m_description.isEmpty() ? QSL("-") : skin.m_description)); + + for (int i = 1; i < m_ui->m_treeSkins->columnCount(); i++) { + new_item->setToolTip(i, new_item->toolTip(0)); + } + if (skin.m_forcedStyles.isEmpty()) { new_item->setIcon(2, qApp->icons()->fromTheme(QSL("dialog-cancel"), QSL("gtk-cancel"))); } @@ -395,7 +403,7 @@ void SettingsGui::saveSettings() { } if (m_ui->m_checkForceAlternativePalette->isEnabled()) { - settings()->setValue(GROUP(GUI), GUI::ForceDarkFusion, m_ui->m_checkForceAlternativePalette->isChecked()); + settings()->setValue(GROUP(GUI), GUI::ForceSkinPalette, m_ui->m_checkForceAlternativePalette->isChecked()); } // Save tab settings. diff --git a/src/librssguard/gui/tabwidget.cpp b/src/librssguard/gui/tabwidget.cpp index 4bdae2fd7..1c6df139b 100644 --- a/src/librssguard/gui/tabwidget.cpp +++ b/src/librssguard/gui/tabwidget.cpp @@ -124,7 +124,6 @@ void TabWidget::tabRemoved(int index) { void TabWidget::createConnections() { connect(tabBar(), &TabBar::tabCloseRequested, this, &TabWidget::closeTab); - connect(tabBar(), &TabBar::emptySpaceDoubleClicked, this, &TabWidget::addEmptyBrowser); connect(tabBar(), &TabBar::tabMoved, this, &TabWidget::fixContentsAfterMove); connect(feedMessageViewer()->messagesView(), &MessagesView::openMessagesInNewspaperView, this, &TabWidget::addNewspaperView); diff --git a/src/librssguard/miscellaneous/settings.cpp b/src/librssguard/miscellaneous/settings.cpp index 851e17ec9..12ba0df35 100644 --- a/src/librssguard/miscellaneous/settings.cpp +++ b/src/librssguard/miscellaneous/settings.cpp @@ -257,8 +257,8 @@ DVALUE(bool) GUI::HideMainWindowWhenMinimizedDef = false; DKEY GUI::MonochromeTrayIcon = "monochrome_tray_icon"; DVALUE(bool) GUI::MonochromeTrayIconDef = false; -DKEY GUI::ForceDarkFusion = "force_dark_fusion"; -DVALUE(bool) GUI::ForceDarkFusionDef = false; +DKEY GUI::ForceSkinPalette = "force_skin_palette"; +DVALUE(bool) GUI::ForceSkinPaletteDef = true; DKEY GUI::UnreadNumbersInTrayIcon = "show_unread_numbers_in_tray_icon"; DVALUE(bool) GUI::UnreadNumbersInTrayIconDef = true; diff --git a/src/librssguard/miscellaneous/settings.h b/src/librssguard/miscellaneous/settings.h index 710654ebc..69df38f9c 100644 --- a/src/librssguard/miscellaneous/settings.h +++ b/src/librssguard/miscellaneous/settings.h @@ -255,8 +255,8 @@ namespace GUI { KEY HideMainWindowWhenMinimized; VALUE(bool) HideMainWindowWhenMinimizedDef; - KEY ForceDarkFusion; - VALUE(bool) ForceDarkFusionDef; + KEY ForceSkinPalette; + VALUE(bool) ForceSkinPaletteDef; KEY AlternateRowColorsInLists; VALUE(bool) AlternateRowColorsInListsDef; diff --git a/src/librssguard/miscellaneous/skinfactory.cpp b/src/librssguard/miscellaneous/skinfactory.cpp index 1fe9ade8d..31dd44f69 100644 --- a/src/librssguard/miscellaneous/skinfactory.cpp +++ b/src/librssguard/miscellaneous/skinfactory.cpp @@ -86,7 +86,7 @@ void SkinFactory::loadSkinFromData(const Skin& skin) { if (isStyleGoodForAlternativeStylePalette(m_currentStyle) && !skin.m_stylePalette.isEmpty() && - (skin.m_forcedStylePalette || qApp->settings()->value(GROUP(GUI), SETTING(GUI::ForceDarkFusion)).toBool())) { + (skin.m_forcedStylePalette || qApp->settings()->value(GROUP(GUI), SETTING(GUI::ForceSkinPalette)).toBool())) { qDebugNN << LOGSEC_GUI << "Activating alternative palette."; QPalette pal = skin.extractPalette(); @@ -182,16 +182,11 @@ Skin SkinFactory::skinInfo(const QString& skin_name, bool* ok) const { } } - // Obtain visible skin name. + // Obtain skin data. skin.m_visibleName = skin_name; - - // Obtain author. skin.m_author = skin_node.namedItem(QSL("author")).namedItem(QSL("name")).toElement().text(); - - // Obtain version. skin.m_version = skin_node.attributes().namedItem(QSL("version")).toAttr().value(); - - // Obtain other information. + skin.m_description = skin_node.namedItem(QSL("description")).toElement().text(); skin.m_baseName = skin_name; // Obtain color palette. diff --git a/src/librssguard/miscellaneous/skinfactory.h b/src/librssguard/miscellaneous/skinfactory.h index 412a5cbf2..3fb4ff0b0 100644 --- a/src/librssguard/miscellaneous/skinfactory.h +++ b/src/librssguard/miscellaneous/skinfactory.h @@ -43,6 +43,7 @@ struct RSSGUARD_DLLSPEC Skin { QString m_visibleName; QString m_author; QString m_version; + QString m_description; QString m_rawData; QString m_adblocked; QString m_layoutMarkupWrapper;