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/plugins/Ui/qsui/listwidgetdrawer.cpp | |
| 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/plugins/Ui/qsui/listwidgetdrawer.cpp')
| -rw-r--r-- | src/plugins/Ui/qsui/listwidgetdrawer.cpp | 38 |
1 files changed, 29 insertions, 9 deletions
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); } } |
