From dca49c95f3bb55bfb1931c4b9532b919a000ef19 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sun, 17 Dec 2017 17:27:00 +0000 Subject: 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 --- src/plugins/Ui/qsui/forms/qsuisettings.ui | 208 ++++++++++++++++++------------ src/plugins/Ui/qsui/listwidgetdrawer.cpp | 38 ++++-- src/plugins/Ui/qsui/listwidgetdrawer.h | 3 +- src/plugins/Ui/qsui/qsuisettings.cpp | 4 + 4 files changed, 163 insertions(+), 90 deletions(-) (limited to 'src') 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 @@ -88,6 +88,13 @@ + + + + Show splitters + + + @@ -417,15 +424,8 @@ 0 - - - - Background #1: - - - - - + + 0 @@ -438,26 +438,16 @@ 20 - - - 20 - 20 - - QFrame::Box - - - - - - Normal text: + + QFrame::Plain - - + + 0 @@ -481,10 +471,17 @@ - - + + - Background #2: + Background #1: + + + + + + + Highlighted text: @@ -513,15 +510,36 @@ - - + + - Current text: + Group background: - - + + + + Group text: + + + + + + + Highlighted background: + + + + + + + Normal text: + + + + + 0 @@ -545,15 +563,8 @@ - - - - Highlighted background: - - - - - + + 0 @@ -577,15 +588,21 @@ - - - - Highlighted text: + + + + Qt::Horizontal - + + + 66 + 68 + + + - - + + 0 @@ -607,20 +624,37 @@ QFrame::Box - - QFrame::Plain + + + + + + Qt::Horizontal + + + + 40 + 43 + + + + + + + + Background #2: - - + + - Group background: + Current text: - - + + 0 @@ -641,15 +675,8 @@ - - - - Group text: - - - - - + + 0 @@ -662,6 +689,12 @@ 20 + + + 20 + 20 + + QFrame::Box @@ -670,31 +703,46 @@ - - - - Qt::Horizontal + + + + Splitter: - + + + + + + + 0 + 0 + + + - 66 - 68 + 20 + 20 - - - - - - Qt::Horizontal + + + 20 + 20 + - + - 40 - 43 + 20 + 20 - + + QFrame::Box + + + QFrame::Plain + + 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()); -- cgit v1.2.3-13-gbd6f