diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-08-06 14:26:46 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-08-06 14:26:46 +0000 |
| commit | a5cb8d5ff4090b45a66a5207b82b629121e4e823 (patch) | |
| tree | 937c076625b8cde31cab0cdbe932dfdd8e7d3aaf | |
| parent | 883075834d6225933db812abcefcca0481d4a3da (diff) | |
| download | qmmp-a5cb8d5ff4090b45a66a5207b82b629121e4e823.tar.gz qmmp-a5cb8d5ff4090b45a66a5207b82b629121e4e823.tar.bz2 qmmp-a5cb8d5ff4090b45a66a5207b82b629121e4e823.zip | |
fixed groups selection
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3572 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/plugins/Ui/skinned/listwidget.cpp | 38 | ||||
| -rw-r--r-- | src/qmmpui/playlistcontainer.cpp | 2 | ||||
| -rw-r--r-- | src/qmmpui/playlistgroup.cpp | 7 | ||||
| -rw-r--r-- | src/qmmpui/playlistgroup.h | 3 | ||||
| -rw-r--r-- | src/qmmpui/playlistitem.h | 2 |
5 files changed, 32 insertions, 20 deletions
diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp index 64fb4f770..2ffa2e8b6 100644 --- a/src/plugins/Ui/skinned/listwidget.cpp +++ b/src/plugins/Ui/skinned/listwidget.cpp @@ -170,6 +170,24 @@ void ListWidget::paintEvent(QPaintEvent *) { sy = (i + 1) * (2 + m_metrics->lineSpacing()) - 2 - m_metrics->descent(); + if (m_show_anchor && i == m_anchor_row - m_first) + { + painter.setBrush(m_rows[i]->selected ? m_selected_bg : m_normal_bg); + painter.setPen(m_normal); + painter.drawRect (6, i * (m_metrics->lineSpacing() + 2), + width() - 10, m_metrics->lineSpacing() + 1); + } + else + { + if (m_rows[i]->selected) + { + painter.setBrush(QBrush(m_selected_bg)); + painter.setPen(m_selected_bg); + painter.drawRect (6, i * (m_metrics->lineSpacing() + 2), + width() - 10, m_metrics->lineSpacing() + 1); + } + } + if(m_rows[i]->separator) { painter.setPen(m_normal); @@ -197,23 +215,7 @@ void ListWidget::paintEvent(QPaintEvent *) continue; } - if (m_show_anchor && i == m_anchor_row - m_first) - { - painter.setBrush(m_rows[i]->selected ? m_selected_bg : m_normal_bg); - painter.setPen(m_normal); - painter.drawRect (6, i * (m_metrics->lineSpacing() + 2), - width() - 10, m_metrics->lineSpacing() + 1); - } - else - { - if (m_rows[i]->selected) - { - painter.setBrush(QBrush(m_selected_bg)); - painter.setPen(m_selected_bg); - painter.drawRect (6, i * (m_metrics->lineSpacing() + 2), - width() - 10, m_metrics->lineSpacing() + 1); - } - } + if (m_model->currentIndex() == m_first + i) @@ -445,7 +447,7 @@ void ListWidget::updateList() row->number = 0; row->title = items[i]->formattedTitle(); row->length.clear(); - row->selected = false; + row->selected = items[i]->isSelected(); row->title = m_metrics->elidedText (row->title, Qt::ElideRight, width() - m_number_width - 22 - 70); } diff --git a/src/qmmpui/playlistcontainer.cpp b/src/qmmpui/playlistcontainer.cpp index c8d39a358..77b44e140 100644 --- a/src/qmmpui/playlistcontainer.cpp +++ b/src/qmmpui/playlistcontainer.cpp @@ -93,7 +93,7 @@ bool PlayListContainer::isSelected(int index) const void PlayListContainer::setSelected(int index, bool selected) { - if (0 <= index && index < m_items.count() && !m_items.at(index)->isGroup()) + if (0 <= index && index < m_items.count())// && !m_items.at(index)->isGroup()) m_items.at(index)->setSelected(selected); } diff --git a/src/qmmpui/playlistgroup.cpp b/src/qmmpui/playlistgroup.cpp index 1d33e8ec6..34e92306b 100644 --- a/src/qmmpui/playlistgroup.cpp +++ b/src/qmmpui/playlistgroup.cpp @@ -44,6 +44,13 @@ PlayListGroup::~PlayListGroup() } } +void PlayListGroup::setSelected(bool select) +{ + foreach(PlayListTrack *track, m_tracks) + track->setSelected(select); + PlayListItem::setSelected(select); +} + const QString PlayListGroup::formattedTitle() const { return m_name; diff --git a/src/qmmpui/playlistgroup.h b/src/qmmpui/playlistgroup.h index 698cf0a6c..6c5ca4c75 100644 --- a/src/qmmpui/playlistgroup.h +++ b/src/qmmpui/playlistgroup.h @@ -31,6 +31,9 @@ public: virtual ~PlayListGroup(); + + virtual void setSelected(bool select); + int firstIndex; int lastIndex; diff --git a/src/qmmpui/playlistitem.h b/src/qmmpui/playlistitem.h index 301442e14..745c0e532 100644 --- a/src/qmmpui/playlistitem.h +++ b/src/qmmpui/playlistitem.h @@ -44,7 +44,7 @@ public: * Sets item selection flag to \b select * @param select State of selection (\b true select, \b false unselect) */ - void setSelected(bool select); + virtual void setSelected(bool select); /*! * Return \b true if item is selected, otherwise returns \b false. */ |
