mirror of
https://github.com/martinrotter/rssguard.git
synced 2025-02-06 04:14:22 +01:00
force UI colors -> use skin colors + related adjustments
This commit is contained in:
parent
5f14f2cc82
commit
2ef9a373b3
@ -26,7 +26,7 @@
|
|||||||
<url type="donation">https://github.com/sponsors/martinrotter</url>
|
<url type="donation">https://github.com/sponsors/martinrotter</url>
|
||||||
<content_rating type="oars-1.1" />
|
<content_rating type="oars-1.1" />
|
||||||
<releases>
|
<releases>
|
||||||
<release version="4.1.2" date="2022-03-14"/>
|
<release version="4.1.2" date="2022-03-15"/>
|
||||||
</releases>
|
</releases>
|
||||||
<content_rating type="oars-1.0">
|
<content_rating type="oars-1.0">
|
||||||
<content_attribute id="violence-cartoon">none</content_attribute>
|
<content_attribute id="violence-cartoon">none</content_attribute>
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<color key="FgSelectedError">#910303</color>
|
<color key="FgSelectedError">#910303</color>
|
||||||
<color key="Allright">#44AA44</color>
|
<color key="Allright">#44AA44</color>
|
||||||
</palette>
|
</palette>
|
||||||
<forced-style-palette>false</forced-style-palette>
|
<forced-skin-colors>false</forced-skin-colors>
|
||||||
<style-palette>
|
<style-palette>
|
||||||
<group id="All">
|
<group id="All">
|
||||||
<color role="Base">#373A3D</color>
|
<color role="Base">#373A3D</color>
|
||||||
|
@ -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 "
|
q.prepare("UPDATE Feeds "
|
||||||
"SET title = :title, ordr = :ordr, description = :description, date_created = :date_created, "
|
"SET title = :title, ordr = :ordr, description = :description, date_created = :date_created, "
|
||||||
" icon = :icon, category = :category, source = :source, update_type = :update_type, "
|
" icon = :icon, category = :category, source = :source, update_type = :update_type, "
|
||||||
|
@ -30,7 +30,7 @@ SettingsGui::SettingsGui(Settings* settings, QWidget* parent) : SettingsPanel(se
|
|||||||
m_ui->m_editorFeedsToolbar->availableItemsWidget()->viewport()->installEventFilter(this);
|
m_ui->m_editorFeedsToolbar->availableItemsWidget()->viewport()->installEventFilter(this);
|
||||||
m_ui->m_treeSkins->setColumnCount(4);
|
m_ui->m_treeSkins->setColumnCount(4);
|
||||||
m_ui->m_treeSkins->setHeaderHidden(false);
|
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),
|
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)
|
#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<Skin>();
|
const Skin skin = it->data(0, Qt::ItemDataRole::UserRole).value<Skin>();
|
||||||
const bool skin_has_palette = !skin.m_stylePalette.isEmpty();
|
const bool skin_has_palette_or_css = !skin.m_stylePalette.isEmpty() || !skin.m_rawData.isEmpty();
|
||||||
const bool skin_forces_palette = skin.m_forcedStylePalette;
|
const bool skin_forces_palette = skin.m_forcedSkinColors;
|
||||||
const bool skin_forces_style = !skin.m_forcedStyles.isEmpty();
|
const bool skin_forces_style = !skin.m_forcedStyles.isEmpty();
|
||||||
|
|
||||||
m_ui->m_cmbStyles->setEnabled(!qApp->skins()->styleIsFrozen() && !skin_forces_style);
|
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() {
|
void SettingsGui::loadSettings() {
|
||||||
@ -192,7 +192,7 @@ void SettingsGui::loadSettings() {
|
|||||||
m_ui->m_cmbStyles->setCurrentIndex(item_style);
|
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.
|
// Load skin.
|
||||||
const QString selected_skin = qApp->skins()->selectedSkinName();
|
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(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-yes"), QSL("dialog-ok"))
|
||||||
: qApp->icons()->fromTheme(QSL("dialog-cancel"), QSL("gtk-cancel")));
|
: qApp->icons()->fromTheme(QSL("dialog-cancel"), QSL("gtk-cancel")));
|
||||||
|
|
||||||
@ -403,7 +403,7 @@ void SettingsGui::saveSettings() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (m_ui->m_checkForceAlternativePalette->isEnabled()) {
|
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.
|
// Save tab settings.
|
||||||
|
@ -109,7 +109,7 @@
|
|||||||
<item row="2" column="1">
|
<item row="2" column="1">
|
||||||
<widget class="QCheckBox" name="m_checkForceAlternativePalette">
|
<widget class="QCheckBox" name="m_checkForceAlternativePalette">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Force UI colors defined in skin</string>
|
<string>Use skin colors</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -260,8 +260,8 @@ DVALUE(bool) GUI::HideMainWindowWhenMinimizedDef = false;
|
|||||||
DKEY GUI::MonochromeTrayIcon = "monochrome_tray_icon";
|
DKEY GUI::MonochromeTrayIcon = "monochrome_tray_icon";
|
||||||
DVALUE(bool) GUI::MonochromeTrayIconDef = false;
|
DVALUE(bool) GUI::MonochromeTrayIconDef = false;
|
||||||
|
|
||||||
DKEY GUI::ForceSkinPalette = "force_skin_palette";
|
DKEY GUI::ForcedSkinColors = "forced_skin_colors";
|
||||||
DVALUE(bool) GUI::ForceSkinPaletteDef = true;
|
DVALUE(bool) GUI::ForcedSkinColorsDef = true;
|
||||||
|
|
||||||
DKEY GUI::UnreadNumbersInTrayIcon = "show_unread_numbers_in_tray_icon";
|
DKEY GUI::UnreadNumbersInTrayIcon = "show_unread_numbers_in_tray_icon";
|
||||||
DVALUE(bool) GUI::UnreadNumbersInTrayIconDef = true;
|
DVALUE(bool) GUI::UnreadNumbersInTrayIconDef = true;
|
||||||
|
@ -258,8 +258,8 @@ namespace GUI {
|
|||||||
KEY HideMainWindowWhenMinimized;
|
KEY HideMainWindowWhenMinimized;
|
||||||
VALUE(bool) HideMainWindowWhenMinimizedDef;
|
VALUE(bool) HideMainWindowWhenMinimizedDef;
|
||||||
|
|
||||||
KEY ForceSkinPalette;
|
KEY ForcedSkinColors;
|
||||||
VALUE(bool) ForceSkinPaletteDef;
|
VALUE(bool) ForcedSkinColorsDef;
|
||||||
|
|
||||||
KEY AlternateRowColorsInLists;
|
KEY AlternateRowColorsInLists;
|
||||||
VALUE(bool) AlternateRowColorsInListsDef;
|
VALUE(bool) AlternateRowColorsInListsDef;
|
||||||
|
@ -84,9 +84,12 @@ void SkinFactory::loadSkinFromData(const Skin& skin) {
|
|||||||
// they specifically set object name to style name.
|
// they specifically set object name to style name.
|
||||||
m_currentStyle = qApp->style()->objectName();
|
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) &&
|
if (isStyleGoodForAlternativeStylePalette(m_currentStyle) &&
|
||||||
!skin.m_stylePalette.isEmpty() &&
|
!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.";
|
qDebugNN << LOGSEC_GUI << "Activating alternative palette.";
|
||||||
|
|
||||||
QPalette pal = skin.extractPalette();
|
QPalette pal = skin.extractPalette();
|
||||||
@ -96,7 +99,7 @@ void SkinFactory::loadSkinFromData(const Skin& skin) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!skin.m_rawData.isEmpty()) {
|
if (!skin.m_rawData.isEmpty()) {
|
||||||
if (qApp->styleSheet().simplified().isEmpty()) {
|
if (qApp->styleSheet().simplified().isEmpty() && use_skin_colors) {
|
||||||
qApp->setStyleSheet(skin.m_rawData);
|
qApp->setStyleSheet(skin.m_rawData);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -218,8 +221,8 @@ Skin SkinFactory::skinInfo(const QString& skin_name, bool* ok) const {
|
|||||||
QString::SplitBehavior::SkipEmptyParts);
|
QString::SplitBehavior::SkipEmptyParts);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
skin.m_forcedStylePalette = skin_node.namedItem(QSL("forced-style-palette")).toElement().text() ==
|
skin.m_forcedSkinColors = skin_node.namedItem(QSL("forced-skin-colors")).toElement().text() ==
|
||||||
QVariant(true).toString();
|
QVariant(true).toString();
|
||||||
|
|
||||||
QDomElement style_palette_root = skin_node.namedItem(QSL("style-palette")).toElement();
|
QDomElement style_palette_root = skin_node.namedItem(QSL("style-palette")).toElement();
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ struct RSSGUARD_DLLSPEC Skin {
|
|||||||
QString m_enclosureMarkup;
|
QString m_enclosureMarkup;
|
||||||
QHash<SkinEnums::PaletteColors, QColor> m_colorPalette;
|
QHash<SkinEnums::PaletteColors, QColor> m_colorPalette;
|
||||||
QStringList m_forcedStyles;
|
QStringList m_forcedStyles;
|
||||||
bool m_forcedStylePalette;
|
bool m_forcedSkinColors;
|
||||||
QMultiHash<QPalette::ColorGroup, QPair<QPalette::ColorRole, QPair<QColor, Qt::BrushStyle>>> m_stylePalette;
|
QMultiHash<QPalette::ColorGroup, QPair<QPalette::ColorRole, QPair<QColor, Qt::BrushStyle>>> m_stylePalette;
|
||||||
|
|
||||||
QVariant colorForModel(SkinEnums::PaletteColors type, bool ignore_custom_colors = false) const;
|
QVariant colorForModel(SkinEnums::PaletteColors type, bool ignore_custom_colors = false) const;
|
||||||
|
@ -24,7 +24,7 @@ class FormFeedDetails : public QDialog {
|
|||||||
virtual ~FormFeedDetails() = default;
|
virtual ~FormFeedDetails() = default;
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
T* addEditFeed(T* account_to_edit = nullptr);
|
T* addEditFeed(T* feed_to_edit = nullptr);
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
T* feed() const;
|
T* feed() const;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user