diff --git a/resources/desktop/com.github.rssguard.appdata.xml b/resources/desktop/com.github.rssguard.appdata.xml index 034dccd76..5c1f6f164 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 29d52d998..ebc937cc9 100644 --- a/resources/skins/nudus-dark/metadata.xml +++ b/resources/skins/nudus-dark/metadata.xml @@ -11,7 +11,7 @@ #910303 #44AA44 - false + false #373A3D diff --git a/src/librssguard/database/databasequeries.cpp b/src/librssguard/database/databasequeries.cpp index dd892a9a7..776aa88a3 100644 --- a/src/librssguard/database/databasequeries.cpp +++ b/src/librssguard/database/databasequeries.cpp @@ -2025,6 +2025,9 @@ void DatabaseQueries::createOverwriteFeed(const QSqlDatabase& db, Feed* feed, in } } + // TODO: pokus se kanál přesouvá mezi kategoriemi či rootem + // je třeba nejdříve kanál přesunout na dno a pak ho vložit do nové kategorie + q.prepare("UPDATE Feeds " "SET title = :title, ordr = :ordr, description = :description, date_created = :date_created, " " icon = :icon, category = :category, source = :source, update_type = :update_type, " diff --git a/src/librssguard/gui/settings/settingsgui.cpp b/src/librssguard/gui/settings/settingsgui.cpp index 024f274ce..4eb4daacc 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 UI colors") }); + m_ui->m_treeSkins->setHeaderLabels({ tr("Name"), tr("Author"), tr("Forced style"), tr("Forced skin 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) @@ -122,12 +122,12 @@ void SettingsGui::updateSkinOptions() { } const Skin skin = it->data(0, Qt::ItemDataRole::UserRole).value(); - const bool skin_has_palette = !skin.m_stylePalette.isEmpty(); - const bool skin_forces_palette = skin.m_forcedStylePalette; + const bool skin_has_palette_or_css = !skin.m_stylePalette.isEmpty() || !skin.m_rawData.isEmpty(); + const bool skin_forces_palette = skin.m_forcedSkinColors; 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); + m_ui->m_checkForceAlternativePalette->setEnabled(skin_has_palette_or_css && !skin_forces_palette); } void SettingsGui::loadSettings() { @@ -192,7 +192,7 @@ void SettingsGui::loadSettings() { m_ui->m_cmbStyles->setCurrentIndex(item_style); } - m_ui->m_checkForceAlternativePalette->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::ForceSkinPalette)).toBool()); + m_ui->m_checkForceAlternativePalette->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::ForcedSkinColors)).toBool()); // Load skin. const QString selected_skin = qApp->skins()->selectedSkinName(); @@ -219,7 +219,7 @@ void SettingsGui::loadSettings() { new_item->setIcon(2, qApp->icons()->fromTheme(QSL("dialog-cancel"), QSL("gtk-cancel"))); } - new_item->setIcon(3, skin.m_forcedStylePalette + new_item->setIcon(3, skin.m_forcedSkinColors ? qApp->icons()->fromTheme(QSL("dialog-yes"), QSL("dialog-ok")) : qApp->icons()->fromTheme(QSL("dialog-cancel"), QSL("gtk-cancel"))); @@ -403,7 +403,7 @@ void SettingsGui::saveSettings() { } if (m_ui->m_checkForceAlternativePalette->isEnabled()) { - settings()->setValue(GROUP(GUI), GUI::ForceSkinPalette, m_ui->m_checkForceAlternativePalette->isChecked()); + settings()->setValue(GROUP(GUI), GUI::ForcedSkinColors, m_ui->m_checkForceAlternativePalette->isChecked()); } // Save tab settings. diff --git a/src/librssguard/gui/settings/settingsgui.ui b/src/librssguard/gui/settings/settingsgui.ui index d20fb8c13..aa426f9c8 100644 --- a/src/librssguard/gui/settings/settingsgui.ui +++ b/src/librssguard/gui/settings/settingsgui.ui @@ -109,7 +109,7 @@ - Force UI colors defined in skin + Use skin colors diff --git a/src/librssguard/miscellaneous/settings.cpp b/src/librssguard/miscellaneous/settings.cpp index 66369d806..72818a226 100644 --- a/src/librssguard/miscellaneous/settings.cpp +++ b/src/librssguard/miscellaneous/settings.cpp @@ -260,8 +260,8 @@ DVALUE(bool) GUI::HideMainWindowWhenMinimizedDef = false; DKEY GUI::MonochromeTrayIcon = "monochrome_tray_icon"; DVALUE(bool) GUI::MonochromeTrayIconDef = false; -DKEY GUI::ForceSkinPalette = "force_skin_palette"; -DVALUE(bool) GUI::ForceSkinPaletteDef = true; +DKEY GUI::ForcedSkinColors = "forced_skin_colors"; +DVALUE(bool) GUI::ForcedSkinColorsDef = 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 afd7b2599..816143aac 100644 --- a/src/librssguard/miscellaneous/settings.h +++ b/src/librssguard/miscellaneous/settings.h @@ -258,8 +258,8 @@ namespace GUI { KEY HideMainWindowWhenMinimized; VALUE(bool) HideMainWindowWhenMinimizedDef; - KEY ForceSkinPalette; - VALUE(bool) ForceSkinPaletteDef; + KEY ForcedSkinColors; + VALUE(bool) ForcedSkinColorsDef; KEY AlternateRowColorsInLists; VALUE(bool) AlternateRowColorsInListsDef; diff --git a/src/librssguard/miscellaneous/skinfactory.cpp b/src/librssguard/miscellaneous/skinfactory.cpp index 31dd44f69..1f4d0e5ff 100644 --- a/src/librssguard/miscellaneous/skinfactory.cpp +++ b/src/librssguard/miscellaneous/skinfactory.cpp @@ -84,9 +84,12 @@ void SkinFactory::loadSkinFromData(const Skin& skin) { // they specifically set object name to style name. m_currentStyle = qApp->style()->objectName(); + const bool use_skin_colors = skin.m_forcedSkinColors || + qApp->settings()->value(GROUP(GUI), SETTING(GUI::ForcedSkinColors)).toBool(); + if (isStyleGoodForAlternativeStylePalette(m_currentStyle) && !skin.m_stylePalette.isEmpty() && - (skin.m_forcedStylePalette || qApp->settings()->value(GROUP(GUI), SETTING(GUI::ForceSkinPalette)).toBool())) { + use_skin_colors) { qDebugNN << LOGSEC_GUI << "Activating alternative palette."; QPalette pal = skin.extractPalette(); @@ -96,7 +99,7 @@ void SkinFactory::loadSkinFromData(const Skin& skin) { } if (!skin.m_rawData.isEmpty()) { - if (qApp->styleSheet().simplified().isEmpty()) { + if (qApp->styleSheet().simplified().isEmpty() && use_skin_colors) { qApp->setStyleSheet(skin.m_rawData); } else { @@ -218,8 +221,8 @@ Skin SkinFactory::skinInfo(const QString& skin_name, bool* ok) const { QString::SplitBehavior::SkipEmptyParts); #endif - skin.m_forcedStylePalette = skin_node.namedItem(QSL("forced-style-palette")).toElement().text() == - QVariant(true).toString(); + skin.m_forcedSkinColors = skin_node.namedItem(QSL("forced-skin-colors")).toElement().text() == + QVariant(true).toString(); QDomElement style_palette_root = skin_node.namedItem(QSL("style-palette")).toElement(); diff --git a/src/librssguard/miscellaneous/skinfactory.h b/src/librssguard/miscellaneous/skinfactory.h index 3fb4ff0b0..d4dadba94 100644 --- a/src/librssguard/miscellaneous/skinfactory.h +++ b/src/librssguard/miscellaneous/skinfactory.h @@ -52,7 +52,7 @@ struct RSSGUARD_DLLSPEC Skin { QString m_enclosureMarkup; QHash m_colorPalette; QStringList m_forcedStyles; - bool m_forcedStylePalette; + bool m_forcedSkinColors; QMultiHash>> m_stylePalette; QVariant colorForModel(SkinEnums::PaletteColors type, bool ignore_custom_colors = false) const; diff --git a/src/librssguard/services/abstract/gui/formfeeddetails.h b/src/librssguard/services/abstract/gui/formfeeddetails.h index cf60f4267..f603810bc 100644 --- a/src/librssguard/services/abstract/gui/formfeeddetails.h +++ b/src/librssguard/services/abstract/gui/formfeeddetails.h @@ -24,7 +24,7 @@ class FormFeedDetails : public QDialog { virtual ~FormFeedDetails() = default; template - T* addEditFeed(T* account_to_edit = nullptr); + T* addEditFeed(T* feed_to_edit = nullptr); template T* feed() const;