work on skins infrastructure
This commit is contained in:
parent
797f06d357
commit
7faa872951
9 changed files with 28 additions and 59 deletions
|
@ -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-10"/>
|
<release version="4.1.2" date="2022-03-11"/>
|
||||||
</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>
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<skin version="0.1.2" base="nudus-base">
|
<skin version="0.1.3" base="nudus-base">
|
||||||
<author>
|
<author>
|
||||||
<name>akinokonomi, martinrotter</name>
|
<name>akinokonomi, martinrotter</name>
|
||||||
</author>
|
</author>
|
||||||
|
<description>Dark variant of 'nudus-light' skin.</description>
|
||||||
<palette>
|
<palette>
|
||||||
<color key="FgInteresting">#85ACF6</color>
|
<color key="FgInteresting">#85ACF6</color>
|
||||||
<color key="FgSelectedInteresting">#D9E3F7</color>
|
<color key="FgSelectedInteresting">#D9E3F7</color>
|
||||||
|
@ -10,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>true</forced-style-palette>
|
<forced-style-palette>false</forced-style-palette>
|
||||||
<style-palette>
|
<style-palette>
|
||||||
<group id="All">
|
<group id="All">
|
||||||
<color role="Base">#373A3D</color>
|
<color role="Base">#373A3D</color>
|
||||||
|
@ -23,7 +24,7 @@
|
||||||
<color role="Light">#323437</color>
|
<color role="Light">#323437</color>
|
||||||
<color role="Highlight">#8291AD</color>
|
<color role="Highlight">#8291AD</color>
|
||||||
|
|
||||||
<color role="Window" brush="Dense1Pattern">#2D2F32</color>
|
<color role="Window">#2D2F32</color>
|
||||||
<color role="Button">#323437</color>
|
<color role="Button">#323437</color>
|
||||||
|
|
||||||
<color role="Text">#D8D8D8</color>
|
<color role="Text">#D8D8D8</color>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<skin version="0.1.2" base="nudus-base">
|
<skin version="0.1.3" base="nudus-base">
|
||||||
<author>
|
<author>
|
||||||
<name>akinokonomi, martinrotter</name>
|
<name>akinokonomi, martinrotter</name>
|
||||||
</author>
|
</author>
|
||||||
|
@ -10,39 +10,4 @@
|
||||||
<color key="FgSelectedError">#FFD7D7</color>
|
<color key="FgSelectedError">#FFD7D7</color>
|
||||||
<color key="Allright">#77dd77</color>
|
<color key="Allright">#77dd77</color>
|
||||||
</palette>
|
</palette>
|
||||||
<forced-style-palette>false</forced-style-palette>
|
|
||||||
<style-palette>
|
|
||||||
<group id="All">
|
|
||||||
<color role="Base">#373A3D</color>
|
|
||||||
<color role="AlternateBase">#323437</color>
|
|
||||||
<color role="ToolTipBase" brush="Dense1Pattern">#2D2F32</color>
|
|
||||||
<color role="Dark">#202224</color>
|
|
||||||
<color role="Midlight">#292c2e</color>
|
|
||||||
<color role="Mid">#292c2e</color>
|
|
||||||
<color role="Shadow">#292c2e</color>
|
|
||||||
<color role="Light">#323437</color>
|
|
||||||
<color role="Highlight">#8291AD</color>
|
|
||||||
|
|
||||||
<color role="Window" brush="Dense1Pattern">#2D2F32</color>
|
|
||||||
<color role="Button">#323437</color>
|
|
||||||
|
|
||||||
<color role="Text">#D8D8D8</color>
|
|
||||||
<color role="BrightText">#373A3D</color>
|
|
||||||
<color role="HighlightedText">#FFFFFF</color>
|
|
||||||
<color role="PlaceholderText">#A7A7A7</color>
|
|
||||||
<color role="ToolTipText">#D8D8D8</color>
|
|
||||||
<color role="ButtonText">#E7E7E7</color>
|
|
||||||
<color role="WindowText">#D8D8D8</color>
|
|
||||||
<color role="Link">#a1acc1</color>
|
|
||||||
<color role="LinkVisited">#a1acc1</color>
|
|
||||||
|
|
||||||
<color role="NoRole">#2D2F32</color>
|
|
||||||
</group>
|
|
||||||
|
|
||||||
<group id="Disabled">
|
|
||||||
<color role="Text">#999999</color>
|
|
||||||
<color role="ButtonText">#A7A7A7</color>
|
|
||||||
<color role="WindowText">#999999</color>
|
|
||||||
</group>
|
|
||||||
</style-palette>
|
|
||||||
</skin>
|
</skin>
|
|
@ -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 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),
|
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)
|
||||||
|
@ -127,9 +127,7 @@ void SettingsGui::updateSkinOptions() {
|
||||||
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
|
m_ui->m_checkForceAlternativePalette->setEnabled(skin_has_palette && !skin_forces_palette);
|
||||||
? !skin_forces_palette
|
|
||||||
: qApp->skins()->isStyleGoodForAlternativeStylePalette(m_ui->m_cmbStyles->currentText()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsGui::loadSettings() {
|
void SettingsGui::loadSettings() {
|
||||||
|
@ -194,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::ForceDarkFusion)).toBool());
|
m_ui->m_checkForceAlternativePalette->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::ForceSkinPalette)).toBool());
|
||||||
|
|
||||||
// Load skin.
|
// Load skin.
|
||||||
const QString selected_skin = qApp->skins()->selectedSkinName();
|
const QString selected_skin = qApp->skins()->selectedSkinName();
|
||||||
|
@ -207,6 +205,16 @@ void SettingsGui::loadSettings() {
|
||||||
skin.m_forcedStyles.isEmpty() ? QString() : skin.m_forcedStyles.join(QSL(", ")),
|
skin.m_forcedStyles.isEmpty() ? QString() : skin.m_forcedStyles.join(QSL(", ")),
|
||||||
QString() });
|
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()) {
|
if (skin.m_forcedStyles.isEmpty()) {
|
||||||
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")));
|
||||||
}
|
}
|
||||||
|
@ -395,7 +403,7 @@ void SettingsGui::saveSettings() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_ui->m_checkForceAlternativePalette->isEnabled()) {
|
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.
|
// Save tab settings.
|
||||||
|
|
|
@ -124,7 +124,6 @@ void TabWidget::tabRemoved(int index) {
|
||||||
|
|
||||||
void TabWidget::createConnections() {
|
void TabWidget::createConnections() {
|
||||||
connect(tabBar(), &TabBar::tabCloseRequested, this, &TabWidget::closeTab);
|
connect(tabBar(), &TabBar::tabCloseRequested, this, &TabWidget::closeTab);
|
||||||
connect(tabBar(), &TabBar::emptySpaceDoubleClicked, this, &TabWidget::addEmptyBrowser);
|
|
||||||
connect(tabBar(), &TabBar::tabMoved, this, &TabWidget::fixContentsAfterMove);
|
connect(tabBar(), &TabBar::tabMoved, this, &TabWidget::fixContentsAfterMove);
|
||||||
|
|
||||||
connect(feedMessageViewer()->messagesView(), &MessagesView::openMessagesInNewspaperView, this, &TabWidget::addNewspaperView);
|
connect(feedMessageViewer()->messagesView(), &MessagesView::openMessagesInNewspaperView, this, &TabWidget::addNewspaperView);
|
||||||
|
|
|
@ -257,8 +257,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::ForceDarkFusion = "force_dark_fusion";
|
DKEY GUI::ForceSkinPalette = "force_skin_palette";
|
||||||
DVALUE(bool) GUI::ForceDarkFusionDef = false;
|
DVALUE(bool) GUI::ForceSkinPaletteDef = 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;
|
||||||
|
|
|
@ -255,8 +255,8 @@ namespace GUI {
|
||||||
KEY HideMainWindowWhenMinimized;
|
KEY HideMainWindowWhenMinimized;
|
||||||
VALUE(bool) HideMainWindowWhenMinimizedDef;
|
VALUE(bool) HideMainWindowWhenMinimizedDef;
|
||||||
|
|
||||||
KEY ForceDarkFusion;
|
KEY ForceSkinPalette;
|
||||||
VALUE(bool) ForceDarkFusionDef;
|
VALUE(bool) ForceSkinPaletteDef;
|
||||||
|
|
||||||
KEY AlternateRowColorsInLists;
|
KEY AlternateRowColorsInLists;
|
||||||
VALUE(bool) AlternateRowColorsInListsDef;
|
VALUE(bool) AlternateRowColorsInListsDef;
|
||||||
|
|
|
@ -86,7 +86,7 @@ void SkinFactory::loadSkinFromData(const Skin& skin) {
|
||||||
|
|
||||||
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::ForceDarkFusion)).toBool())) {
|
(skin.m_forcedStylePalette || qApp->settings()->value(GROUP(GUI), SETTING(GUI::ForceSkinPalette)).toBool())) {
|
||||||
qDebugNN << LOGSEC_GUI << "Activating alternative palette.";
|
qDebugNN << LOGSEC_GUI << "Activating alternative palette.";
|
||||||
|
|
||||||
QPalette pal = skin.extractPalette();
|
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;
|
skin.m_visibleName = skin_name;
|
||||||
|
|
||||||
// Obtain author.
|
|
||||||
skin.m_author = skin_node.namedItem(QSL("author")).namedItem(QSL("name")).toElement().text();
|
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();
|
skin.m_version = skin_node.attributes().namedItem(QSL("version")).toAttr().value();
|
||||||
|
skin.m_description = skin_node.namedItem(QSL("description")).toElement().text();
|
||||||
// Obtain other information.
|
|
||||||
skin.m_baseName = skin_name;
|
skin.m_baseName = skin_name;
|
||||||
|
|
||||||
// Obtain color palette.
|
// Obtain color palette.
|
||||||
|
|
|
@ -43,6 +43,7 @@ struct RSSGUARD_DLLSPEC Skin {
|
||||||
QString m_visibleName;
|
QString m_visibleName;
|
||||||
QString m_author;
|
QString m_author;
|
||||||
QString m_version;
|
QString m_version;
|
||||||
|
QString m_description;
|
||||||
QString m_rawData;
|
QString m_rawData;
|
||||||
QString m_adblocked;
|
QString m_adblocked;
|
||||||
QString m_layoutMarkupWrapper;
|
QString m_layoutMarkupWrapper;
|
||||||
|
|
Loading…
Add table
Reference in a new issue