aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/Ui/skinned/listwidget.cpp38
-rw-r--r--src/qmmpui/playlistcontainer.cpp2
-rw-r--r--src/qmmpui/playlistgroup.cpp7
-rw-r--r--src/qmmpui/playlistgroup.h3
-rw-r--r--src/qmmpui/playlistitem.h2
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.
*/