From d5fcec54bb9565d8d48cc6c1e9b73b9015b10aa4 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sun, 22 Sep 2019 09:53:24 +0000 Subject: qsui: added feature to override track background color (#1014) git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9077 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Ui/qsui/forms/qsuisettings.ui | 360 +++++++++++++++++++++--------- src/plugins/Ui/qsui/listwidgetdrawer.cpp | 37 ++- src/plugins/Ui/qsui/listwidgetdrawer.h | 2 +- src/plugins/Ui/qsui/qsuisettings.cpp | 9 +- 4 files changed, 294 insertions(+), 114 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/Ui/qsui/forms/qsuisettings.ui b/src/plugins/Ui/qsui/forms/qsuisettings.ui index b9d90c6aa..8cbac743c 100644 --- a/src/plugins/Ui/qsui/forms/qsuisettings.ui +++ b/src/plugins/Ui/qsui/forms/qsuisettings.ui @@ -6,8 +6,8 @@ 0 0 - 463 - 483 + 497 + 529 @@ -184,7 +184,7 @@ Colors - + @@ -404,7 +404,7 @@ Playlist Colors - + @@ -421,11 +421,15 @@ false - - 0 - - - + + + + Background #1: + + + + + 0 @@ -438,16 +442,39 @@ 20 + + + 20 + 20 + + QFrame::Box - - QFrame::Plain + + + + + + Qt::Horizontal + + + + 40 + 43 + + + + + + + + Normal text: - - + + 0 @@ -471,17 +498,23 @@ - - - - Background #1: + + + + Qt::Horizontal - + + + 66 + 68 + + + - - + + - Highlighted text: + Background #2: @@ -510,17 +543,35 @@ - - + + - Group background: + Current text: - - - - Group text: + + + + + 0 + 0 + + + + + 20 + 20 + + + + + 20 + 20 + + + + QFrame::Box @@ -531,15 +582,8 @@ - - - - Normal text: - - - - - + + 0 @@ -563,8 +607,15 @@ - - + + + + Highlighted text: + + + + + 0 @@ -586,23 +637,20 @@ QFrame::Box + + QFrame::Plain + - - - - Qt::Horizontal - - - - 66 - 68 - + + + + Splitter: - + - - + + 0 @@ -621,39 +669,28 @@ 20 - - QFrame::Box - - - - - - - Qt::Horizontal - - + - 40 - 43 + 20 + 20 - - - - - - Background #2: + + QFrame::Box + + + QFrame::Plain - - + + - Current text: + Group text: - + @@ -675,8 +712,21 @@ - - + + + + false + + + Group background: + + + + + + + false + 0 @@ -689,12 +739,6 @@ 20 - - - 20 - 20 - - QFrame::Box @@ -703,15 +747,28 @@ - - + + - Splitter: + Override current track background - - + + + + false + + + Current track background: + + + + + + + false + 0 @@ -724,25 +781,46 @@ 20 - + + QFrame::Box + + + QFrame::Plain + + + + + + + Override group background + + + + + + + Qt::Horizontal + + - 20 + 110 20 - + + + + + + Qt::Horizontal + + - 20 + 189 20 - - QFrame::Box - - - QFrame::Plain - - + @@ -1068,12 +1146,12 @@ setEnabled(bool) - 154 - 220 + 180 + 377 - 184 - 276 + 210 + 435 @@ -1084,12 +1162,12 @@ setEnabled(bool) - 152 - 332 + 178 + 280 - 144 - 368 + 147 + 313 @@ -1104,8 +1182,8 @@ 49 - 101 - 77 + 111 + 140 @@ -1125,5 +1203,69 @@ + + plOverrideGroupBgCheckBox + toggled(bool) + label_14 + setEnabled(bool) + + + 135 + 334 + + + 137 + 360 + + + + + plOverrideGroupBgCheckBox + toggled(bool) + plGrBgColor + setEnabled(bool) + + + 244 + 332 + + + 255 + 361 + + + + + plOverrideCurrentBgCheckBox + toggled(bool) + label_20 + setEnabled(bool) + + + 97 + 391 + + + 94 + 413 + + + + + plOverrideCurrentBgCheckBox + toggled(bool) + plCurrentTrackBgColor + setEnabled(bool) + + + 231 + 389 + + + 245 + 419 + + + diff --git a/src/plugins/Ui/qsui/listwidgetdrawer.cpp b/src/plugins/Ui/qsui/listwidgetdrawer.cpp index 3c046fde9..a0c6a81b0 100644 --- a/src/plugins/Ui/qsui/listwidgetdrawer.cpp +++ b/src/plugins/Ui/qsui/listwidgetdrawer.cpp @@ -88,10 +88,28 @@ void ListWidgetDrawer::readSettings() m_normal.setNamedColor(settings.value("pl_normal_text_color", m_normal.name()).toString()); m_current.setNamedColor(settings.value("pl_current_text_color",m_current.name()).toString()); m_highlighted.setNamedColor(settings.value("pl_hl_text_color",m_highlighted.name()).toString()); - m_group_bg.setNamedColor(settings.value("pl_group_bg", m_group_bg.name()).toString()); m_splitter.setNamedColor(settings.value("pl_splitter_color", m_splitter).toString()); - m_group_alt_bg = m_group_bg; m_group_text.setNamedColor(settings.value("pl_group_text", m_group_text.name()).toString()); + if(settings.value("pl_override_group_bg", false).toBool()) + { + m_group_bg.setNamedColor(settings.value("pl_group_bg", m_normal_bg.name()).toString()); + m_group_alt_bg = m_group_bg; + } + else + { + m_group_bg = m_normal_bg; + m_group_alt_bg = m_alternate; + } + if(settings.value("pl_override_current_bg", false).toBool()) + { + m_current_bg.setNamedColor(settings.value("pl_current_bg_color", m_normal_bg.name()).toString()); + m_current_alt_bg = m_current_bg; + } + else + { + m_current_bg = m_normal_bg; + m_current_alt_bg = m_alternate; + } } if (m_update) @@ -122,6 +140,8 @@ void ListWidgetDrawer::loadSystemColors() m_group_bg = m_normal_bg; m_group_alt_bg = m_alternate, m_group_text = m_normal; + m_current_bg = m_normal_bg; + m_current_alt_bg = m_alternate; } int ListWidgetDrawer::rowHeight() const @@ -239,6 +259,19 @@ void ListWidgetDrawer::drawBackground(QPainter *painter, ListWidgetRow *row, int painter->setPen(m_group_bg); } } + else if(row->flags & ListWidgetRow::CURRENT) + { + if(index % 2) + { + painter->setBrush(QBrush(m_current_alt_bg)); + painter->setPen(m_current_alt_bg); + } + else + { + painter->setBrush(QBrush(m_current_bg)); + painter->setPen(m_current_bg); + } + } else { if(index % 2) diff --git a/src/plugins/Ui/qsui/listwidgetdrawer.h b/src/plugins/Ui/qsui/listwidgetdrawer.h index 77412db45..0e34d297b 100644 --- a/src/plugins/Ui/qsui/listwidgetdrawer.h +++ b/src/plugins/Ui/qsui/listwidgetdrawer.h @@ -96,7 +96,7 @@ public: private: QColor m_normal, m_current, m_normal_bg, m_selected_bg, m_alternate, m_highlighted, m_splitter; - QColor m_group_bg, m_group_alt_bg, m_group_text; + QColor m_group_bg, m_group_alt_bg, m_group_text, m_current_bg, m_current_alt_bg; QFontMetrics *m_metrics; QFontMetrics *m_extra_metrics; QFontMetrics *m_bold_metrics; diff --git a/src/plugins/Ui/qsui/qsuisettings.cpp b/src/plugins/Ui/qsui/qsuisettings.cpp index 6a64fb328..c6f4b2f1d 100644 --- a/src/plugins/Ui/qsui/qsuisettings.cpp +++ b/src/plugins/Ui/qsui/qsuisettings.cpp @@ -184,7 +184,6 @@ void QSUISettings::readSettings() QString normal = palette().color(QPalette::Text).name(); QString current = palette().color(QPalette::Text).name(); QString highlighted = palette().color(QPalette::HighlightedText).name(); - QString group_bg = palette().color(QPalette::Base).name(); QString group_text = palette().color(QPalette::Text).name(); m_ui.plSystemColorsCheckBox->setChecked(settings.value("pl_system_colors", true).toBool()); m_ui.plBg1Color->setColor(settings.value("pl_bg1_color", normal_bg).toString()); @@ -193,9 +192,12 @@ void QSUISettings::readSettings() m_ui.plTextNormalColor->setColor(settings.value("pl_normal_text_color", normal).toString()); m_ui.plTextCurrentColor->setColor(settings.value("pl_current_text_color", current).toString()); m_ui.plTextHlCurrentColor->setColor(settings.value("pl_hl_text_color", highlighted).toString()); - m_ui.plGrBgColor->setColor(settings.value("pl_group_bg", group_bg).toString()); + m_ui.plGrBgColor->setColor(settings.value("pl_group_bg", normal_bg).toString()); m_ui.plSplitterColor->setColor(settings.value("pl_splitter_color", normal).toString()); m_ui.plGrTextColor->setColor(settings.value("pl_group_text", group_text).toString()); + m_ui.plCurrentTrackBgColor->setColor(settings.value("pl_current_bg_color", normal_bg).toString()); + m_ui.plOverrideGroupBgCheckBox->setChecked(settings.value("pl_override_group_bg", false).toBool()); + m_ui.plOverrideCurrentBgCheckBox->setChecked(settings.value("pl_override_current_bg", false).toBool()); //toolbar int index = m_ui.toolBarIconSizeComboBox->findData(settings.value("toolbar_icon_size", -1).toInt()); m_ui.toolBarIconSizeComboBox->setCurrentIndex(index > 0 ? index : 0); @@ -234,6 +236,9 @@ void QSUISettings::writeSettings() settings.setValue("pl_group_bg", m_ui.plGrBgColor->colorName()); settings.setValue("pl_splitter_color", m_ui.plSplitterColor->colorName()); settings.setValue("pl_group_text", m_ui.plGrTextColor->colorName()); + settings.setValue("pl_current_bg_color", m_ui.plCurrentTrackBgColor->colorName()); + settings.setValue("pl_override_group_bg", m_ui.plOverrideGroupBgCheckBox->isChecked()); + settings.setValue("pl_override_current_bg", m_ui.plOverrideCurrentBgCheckBox->isChecked()); settings.setValue("pl_font", m_ui.plFontLabel->font().toString()); settings.setValue("pl_tabs_font", m_ui.tabsFontLabel->font().toString()); settings.setValue("pl_header_font", m_ui.columnFontLabel->font().toString()); -- cgit v1.2.3-13-gbd6f