diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2017-12-17 17:27:00 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2017-12-17 17:27:00 +0000 |
| commit | dca49c95f3bb55bfb1931c4b9532b919a000ef19 (patch) | |
| tree | 58a4631b8f77fa6165ab7848abdec5f661118861 /src | |
| parent | 35b039d6d301fc9046c4f322a2d37e241574645a (diff) | |
| download | qmmp-dca49c95f3bb55bfb1931c4b9532b919a000ef19.tar.gz qmmp-dca49c95f3bb55bfb1931c4b9532b919a000ef19.tar.bz2 qmmp-dca49c95f3bb55bfb1931c4b9532b919a000ef19.zip | |
qsui: added feature to configure column splitters (#943)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7785 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/Ui/qsui/forms/qsuisettings.ui | 208 | ||||
| -rw-r--r-- | src/plugins/Ui/qsui/listwidgetdrawer.cpp | 38 | ||||
| -rw-r--r-- | src/plugins/Ui/qsui/listwidgetdrawer.h | 3 | ||||
| -rw-r--r-- | src/plugins/Ui/qsui/qsuisettings.cpp | 4 |
4 files changed, 163 insertions, 90 deletions
diff --git a/src/plugins/Ui/qsui/forms/qsuisettings.ui b/src/plugins/Ui/qsui/forms/qsuisettings.ui index 17f5ad10b..b9d90c6aa 100644 --- a/src/plugins/Ui/qsui/forms/qsuisettings.ui +++ b/src/plugins/Ui/qsui/forms/qsuisettings.ui @@ -89,6 +89,13 @@ </widget> </item> <item> + <widget class="QCheckBox" name="showSplittersCheckBox"> + <property name="text"> + <string>Show splitters</string> + </property> + </widget> + </item> + <item> <widget class="QCheckBox" name="popupCheckBox"> <property name="text"> <string>Show popup information</string> @@ -417,15 +424,8 @@ <property name="margin"> <number>0</number> </property> - <item row="0" column="0"> - <widget class="QLabel" name="label_7"> - <property name="text"> - <string>Background #1:</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="ColorWidget" name="plBg1Color"> + <item row="3" column="1"> + <widget class="ColorWidget" name="plGrBgColor"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <horstretch>0</horstretch> @@ -438,26 +438,16 @@ <height>20</height> </size> </property> - <property name="maximumSize"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> <property name="frameShape"> <enum>QFrame::Box</enum> </property> - </widget> - </item> - <item row="0" column="3"> - <widget class="QLabel" name="label_10"> - <property name="text"> - <string>Normal text:</string> + <property name="frameShadow"> + <enum>QFrame::Plain</enum> </property> </widget> </item> - <item row="0" column="4"> - <widget class="ColorWidget" name="plTextNormalColor"> + <item row="2" column="1"> + <widget class="ColorWidget" name="plHlColor"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <horstretch>0</horstretch> @@ -481,10 +471,17 @@ </property> </widget> </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_8"> + <item row="0" column="0"> + <widget class="QLabel" name="label_7"> <property name="text"> - <string>Background #2:</string> + <string>Background #1:</string> + </property> + </widget> + </item> + <item row="2" column="3"> + <widget class="QLabel" name="label_12"> + <property name="text"> + <string>Highlighted text:</string> </property> </widget> </item> @@ -513,15 +510,36 @@ </property> </widget> </item> - <item row="1" column="3"> - <widget class="QLabel" name="label_11"> + <item row="3" column="0"> + <widget class="QLabel" name="label_14"> <property name="text"> - <string>Current text:</string> + <string>Group background:</string> </property> </widget> </item> - <item row="1" column="4"> - <widget class="ColorWidget" name="plTextCurrentColor"> + <item row="3" column="3"> + <widget class="QLabel" name="label_15"> + <property name="text"> + <string>Group text:</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_9"> + <property name="text"> + <string>Highlighted background:</string> + </property> + </widget> + </item> + <item row="0" column="3"> + <widget class="QLabel" name="label_10"> + <property name="text"> + <string>Normal text:</string> + </property> + </widget> + </item> + <item row="0" column="4"> + <widget class="ColorWidget" name="plTextNormalColor"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <horstretch>0</horstretch> @@ -545,15 +563,8 @@ </property> </widget> </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_9"> - <property name="text"> - <string>Highlighted background:</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="ColorWidget" name="plHlColor"> + <item row="0" column="1"> + <widget class="ColorWidget" name="plBg1Color"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <horstretch>0</horstretch> @@ -577,15 +588,21 @@ </property> </widget> </item> - <item row="2" column="3"> - <widget class="QLabel" name="label_12"> - <property name="text"> - <string>Highlighted text:</string> + <item row="0" column="5" rowspan="4"> + <spacer name="horizontalSpacer_6"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> </property> - </widget> + <property name="sizeHint" stdset="0"> + <size> + <width>66</width> + <height>68</height> + </size> + </property> + </spacer> </item> - <item row="2" column="4"> - <widget class="ColorWidget" name="plTextHlCurrentColor"> + <item row="1" column="4"> + <widget class="ColorWidget" name="plTextCurrentColor"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <horstretch>0</horstretch> @@ -607,20 +624,37 @@ <property name="frameShape"> <enum>QFrame::Box</enum> </property> - <property name="frameShadow"> - <enum>QFrame::Plain</enum> + </widget> + </item> + <item row="0" column="2" rowspan="4"> + <spacer name="horizontalSpacer_5"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>43</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_8"> + <property name="text"> + <string>Background #2:</string> </property> </widget> </item> - <item row="3" column="0"> - <widget class="QLabel" name="label_14"> + <item row="1" column="3"> + <widget class="QLabel" name="label_11"> <property name="text"> - <string>Group background:</string> + <string>Current text:</string> </property> </widget> </item> - <item row="3" column="1"> - <widget class="ColorWidget" name="plGrBgColor"> + <item row="3" column="4"> + <widget class="ColorWidget" name="plGrTextColor"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <horstretch>0</horstretch> @@ -641,15 +675,8 @@ </property> </widget> </item> - <item row="3" column="3"> - <widget class="QLabel" name="label_15"> - <property name="text"> - <string>Group text:</string> - </property> - </widget> - </item> - <item row="3" column="4"> - <widget class="ColorWidget" name="plGrTextColor"> + <item row="2" column="4"> + <widget class="ColorWidget" name="plTextHlCurrentColor"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <horstretch>0</horstretch> @@ -662,6 +689,12 @@ <height>20</height> </size> </property> + <property name="maximumSize"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> <property name="frameShape"> <enum>QFrame::Box</enum> </property> @@ -670,31 +703,46 @@ </property> </widget> </item> - <item row="0" column="5" rowspan="4"> - <spacer name="horizontalSpacer_6"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> + <item row="4" column="0"> + <widget class="QLabel" name="label_19"> + <property name="text"> + <string>Splitter:</string> </property> - <property name="sizeHint" stdset="0"> + </widget> + </item> + <item row="4" column="1"> + <widget class="ColorWidget" name="plSplitterColor"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> <size> - <width>66</width> - <height>68</height> + <width>20</width> + <height>20</height> </size> </property> - </spacer> - </item> - <item row="0" column="2" rowspan="4"> - <spacer name="horizontalSpacer_5"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> + <property name="maximumSize"> + <size> + <width>20</width> + <height>20</height> + </size> </property> - <property name="sizeHint" stdset="0"> + <property name="baseSize"> <size> - <width>40</width> - <height>43</height> + <width>20</width> + <height>20</height> </size> </property> - </spacer> + <property name="frameShape"> + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Plain</enum> + </property> + </widget> </item> </layout> </widget> diff --git a/src/plugins/Ui/qsui/listwidgetdrawer.cpp b/src/plugins/Ui/qsui/listwidgetdrawer.cpp index 24c28c2bf..a11f8b757 100644 --- a/src/plugins/Ui/qsui/listwidgetdrawer.cpp +++ b/src/plugins/Ui/qsui/listwidgetdrawer.cpp @@ -37,6 +37,7 @@ ListWidgetDrawer::ListWidgetDrawer() m_show_lengths = false; m_use_system_colors = false; m_single_column = true; + m_show_splitters = true; m_row_height = 0; m_number_width = 0; m_padding = 0; @@ -61,9 +62,10 @@ void ListWidgetDrawer::readSettings() QSettings settings(Qmmp::configFile(), QSettings::IniFormat); settings.beginGroup("Simple"); m_show_anchor = settings.value("pl_show_anchor", false).toBool(); - m_show_number = settings.value ("pl_show_numbers", true).toBool(); - m_show_lengths = settings.value ("pl_show_lengths", true).toBool(); - m_align_numbres = settings.value ("pl_align_numbers", false).toBool(); + m_show_number = settings.value("pl_show_numbers", true).toBool(); + m_show_lengths = settings.value("pl_show_lengths", true).toBool(); + m_align_numbres = settings.value("pl_align_numbers", false).toBool(); + m_show_splitters = settings.value("pl_show_splitters", true).toBool(); m_font = qApp->font("QAbstractItemView"); if(!settings.value("use_system_fonts", true).toBool()) @@ -83,6 +85,7 @@ void ListWidgetDrawer::readSettings() 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()); } @@ -111,6 +114,7 @@ void ListWidgetDrawer::loadSystemColors() m_highlighted = qApp->palette().color(QPalette::HighlightedText); m_normal_bg = qApp->palette().color(QPalette::Base); m_selected_bg = qApp->palette().color(QPalette::Highlight); + m_splitter = m_normal; m_group_bg = m_normal_bg; m_group_alt_bg = m_alternate, m_group_text = m_normal; @@ -278,8 +282,9 @@ void ListWidgetDrawer::drawSeparator(QPainter *painter, ListWidgetRow *row, bool painter->drawLine(row->rect.x() + 5, sy, sx - 5, sy); painter->drawLine(sx + m_metrics->width(row->titles[0]) + 5, sy, row->rect.right() - row->numberColumnWidth - m_padding, sy); - if(row->numberColumnWidth) + if(m_show_splitters && row->numberColumnWidth) { + painter->setPen(row->flags & ListWidgetRow::SELECTED ? m_highlighted : m_splitter); painter->drawLine(row->rect.right() - row->numberColumnWidth, row->rect.top(), row->rect.right() - row->numberColumnWidth, row->rect.bottom() + 1); } @@ -289,8 +294,9 @@ void ListWidgetDrawer::drawSeparator(QPainter *painter, ListWidgetRow *row, bool painter->drawLine(sx - 45, sy, sx - 5, sy); painter->drawLine(sx + m_metrics->width(row->titles[0]) + 5, sy, row->rect.width(), sy); - if(row->numberColumnWidth) + if(m_show_splitters && row->numberColumnWidth) { + painter->setPen(row->flags & ListWidgetRow::SELECTED ? m_highlighted : m_splitter); painter->drawLine(row->rect.left() + row->numberColumnWidth, row->rect.top(), row->rect.left() + row->numberColumnWidth, row->rect.bottom() + 1); } @@ -327,7 +333,12 @@ void ListWidgetDrawer::drawTrack(QPainter *painter, ListWidgetRow *row, bool rtl sx -= row->numberColumnWidth; QString number = QString("%1").arg(row->number); painter->drawText(sx + m_padding, sy, number); - painter->drawLine(sx, row->rect.top(), sx, row->rect.bottom() + 1); + if(m_show_splitters) + { + painter->setPen(row->flags & ListWidgetRow::SELECTED ? m_highlighted : m_splitter); + painter->drawLine(sx, row->rect.top(), sx, row->rect.bottom() + 1); + painter->setPen(row->flags & ListWidgetRow::SELECTED ? m_highlighted : m_normal); + } } sx -= metrics->width(row->titles[0]); @@ -351,6 +362,7 @@ void ListWidgetDrawer::drawTrack(QPainter *painter, ListWidgetRow *row, bool rtl { for(int i = 0; i < row->sizes.count(); i++) { + painter->setPen(row->flags & ListWidgetRow::SELECTED ? m_highlighted : m_normal); draw_extra = (i == row->trackStateColumn && !row->extraString.isEmpty()); if(row->alignment[i] == ListWidgetRow::ALIGN_LEFT) @@ -382,8 +394,9 @@ void ListWidgetDrawer::drawTrack(QPainter *painter, ListWidgetRow *row, bool rtl sx -= row->sizes[i]; - if(!row->autoResize || i < row->sizes.count() - 1) //do not draw last vertical line + if(m_show_splitters && (!row->autoResize || i < row->sizes.count() - 1)) //do not draw last vertical line { + painter->setPen(row->flags & ListWidgetRow::SELECTED ? m_highlighted : m_splitter); painter->drawLine(sx - 1, row->rect.top(), sx - 1, row->rect.bottom() + 1); } } @@ -399,7 +412,12 @@ void ListWidgetDrawer::drawTrack(QPainter *painter, ListWidgetRow *row, bool rtl sx += row->numberColumnWidth; QString number = QString("%1").arg(row->number); painter->drawText(sx - m_padding - metrics->width(number), sy, number); - painter->drawLine(sx, row->rect.top(), sx, row->rect.bottom() + 1); + if(m_show_splitters) + { + painter->setPen(row->flags & ListWidgetRow::SELECTED ? m_highlighted : m_splitter); + painter->drawLine(sx, row->rect.top(), sx, row->rect.bottom() + 1); + painter->setPen(row->flags & ListWidgetRow::SELECTED ? m_highlighted : m_normal); + } } painter->drawText(sx + m_padding, sy, row->titles[0]); @@ -423,6 +441,7 @@ void ListWidgetDrawer::drawTrack(QPainter *painter, ListWidgetRow *row, bool rtl { for(int i = 0; i < row->sizes.count(); i++) { + painter->setPen(row->flags & ListWidgetRow::SELECTED ? m_highlighted : m_normal); draw_extra = (i == row->trackStateColumn && !row->extraString.isEmpty()); if(row->alignment[i] == ListWidgetRow::ALIGN_LEFT) @@ -454,8 +473,9 @@ void ListWidgetDrawer::drawTrack(QPainter *painter, ListWidgetRow *row, bool rtl sx += row->sizes[i]; - if(!row->autoResize || i < row->sizes.count() - 1) //do not draw last vertical line + if(m_show_splitters && (!row->autoResize || i < row->sizes.count() - 1)) //do not draw last vertical line { + painter->setPen(row->flags & ListWidgetRow::SELECTED ? m_highlighted : m_splitter); painter->drawLine(sx - 1, row->rect.top(), sx - 1, row->rect.bottom() + 1); } } diff --git a/src/plugins/Ui/qsui/listwidgetdrawer.h b/src/plugins/Ui/qsui/listwidgetdrawer.h index 269640456..0071528f1 100644 --- a/src/plugins/Ui/qsui/listwidgetdrawer.h +++ b/src/plugins/Ui/qsui/listwidgetdrawer.h @@ -95,7 +95,7 @@ public: void drawDropLine(QPainter *painter, int row_number, int width, int header_height); private: - QColor m_normal, m_current, m_normal_bg, m_selected_bg, m_alternate, m_highlighted; + 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; QFontMetrics *m_metrics; QFontMetrics *m_extra_metrics; @@ -109,6 +109,7 @@ private: bool m_show_lengths; bool m_use_system_colors; bool m_single_column; + bool m_show_splitters; int m_padding; int m_number_width; int m_row_height; diff --git a/src/plugins/Ui/qsui/qsuisettings.cpp b/src/plugins/Ui/qsui/qsuisettings.cpp index 312b26b21..1b0523f58 100644 --- a/src/plugins/Ui/qsui/qsuisettings.cpp +++ b/src/plugins/Ui/qsui/qsuisettings.cpp @@ -161,6 +161,7 @@ void QSUISettings::readSettings() m_ui.lengthsCheckBox->setChecked(settings.value("pl_show_lengths", true).toBool()); m_ui.alignCheckBox->setChecked(settings.value("pl_align_numbers", false).toBool()); m_ui.anchorCheckBox->setChecked(settings.value("pl_show_anchor", false).toBool()); + m_ui.showSplittersCheckBox->setChecked(settings.value("pl_show_splitters", true).toBool()); m_ui.popupCheckBox->setChecked(settings.value("pl_show_popup", false).toBool()); //tabs m_ui.tabsClosableCheckBox->setChecked(settings.value("pl_tabs_closable", false).toBool()); @@ -193,6 +194,7 @@ void QSUISettings::readSettings() 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.plSplitterColor->setColor(settings.value("pl_splitter_color", normal).toString()); m_ui.plGrTextColor->setColor(settings.value("pl_group_text", group_text).toString()); //toolbar int index = m_ui.toolBarIconSizeComboBox->findData(settings.value("toolbar_icon_size", -1).toInt()); @@ -209,6 +211,7 @@ void QSUISettings::writeSettings() settings.setValue("pl_show_lengths", m_ui.lengthsCheckBox->isChecked()); settings.setValue("pl_align_numbers", m_ui.alignCheckBox->isChecked()); settings.setValue("pl_show_anchor", m_ui.anchorCheckBox->isChecked()); + settings.setValue("pl_show_splitters", m_ui.showSplittersCheckBox->isChecked()); settings.setValue("pl_show_popup", m_ui.popupCheckBox->isChecked()); settings.setValue("pl_tabs_closable", m_ui.tabsClosableCheckBox->isChecked()); settings.setValue("pl_show_new_pl_button", m_ui.showNewPLCheckBox->isChecked()); @@ -229,6 +232,7 @@ void QSUISettings::writeSettings() settings.setValue("pl_current_text_color", m_ui.plTextCurrentColor->colorName()); settings.setValue("pl_hl_text_color", m_ui.plTextHlCurrentColor->colorName()); 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_font", m_ui.plFontLabel->font().toString()); settings.setValue("pl_tabs_font", m_ui.tabsFontLabel->font().toString()); |
