diff options
| -rw-r--r-- | src/plugins/Ui/skinned/listwidget.cpp | 5 | ||||
| -rw-r--r-- | src/qmmpui/groupedcontainer.cpp | 2 | ||||
| -rw-r--r-- | src/qmmpui/playlistgroup.cpp | 4 | ||||
| -rw-r--r-- | src/qmmpui/playlistgroup.h | 2 | ||||
| -rw-r--r-- | src/qmmpui/playlistmodel.cpp | 16 | ||||
| -rw-r--r-- | src/qmmpui/playlistmodel.h | 5 |
6 files changed, 29 insertions, 5 deletions
diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp index 65f33956b..63972759f 100644 --- a/src/plugins/Ui/skinned/listwidget.cpp +++ b/src/plugins/Ui/skinned/listwidget.cpp @@ -303,6 +303,11 @@ void ListWidget::mousePressEvent(QMouseEvent *e) m_model->clearSelection(); m_model->setSelected(row, true); m_anchor_row = m_pressed_row; + if(m_model->isGroup(row)) + { + PlayListGroup *group = m_model->group(row); + m_model->setSelected(group->tracks()); + } QWidget::mousePressEvent(e); return; } diff --git a/src/qmmpui/groupedcontainer.cpp b/src/qmmpui/groupedcontainer.cpp index 6e6b2d6c0..73d7fe3a6 100644 --- a/src/qmmpui/groupedcontainer.cpp +++ b/src/qmmpui/groupedcontainer.cpp @@ -35,7 +35,7 @@ void GroupedContainer::addGroup(PlayListGroup *group) { m_groups.append(group); m_items.append(group); - foreach (PlayListTrack *item, *group->tracks()) + foreach (PlayListTrack *item, group->tracks()) { m_items.append(item); } diff --git a/src/qmmpui/playlistgroup.cpp b/src/qmmpui/playlistgroup.cpp index a4c7c51a7..e8ee11096 100644 --- a/src/qmmpui/playlistgroup.cpp +++ b/src/qmmpui/playlistgroup.cpp @@ -74,9 +74,9 @@ void PlayListGroup::remove(PlayListTrack *track) m_tracks.removeAll(track); } -QList<PlayListTrack *> *PlayListGroup::tracks() +QList<PlayListTrack *> PlayListGroup::tracks() { - return &m_tracks; + return m_tracks; } int PlayListGroup::count() const diff --git a/src/qmmpui/playlistgroup.h b/src/qmmpui/playlistgroup.h index a766919b1..11e638744 100644 --- a/src/qmmpui/playlistgroup.h +++ b/src/qmmpui/playlistgroup.h @@ -40,7 +40,7 @@ public: bool contains(PlayListTrack *track) const; bool isEmpty() const; void remove(PlayListTrack *track); - QList<PlayListTrack *> *tracks(); + QList<PlayListTrack *> tracks(); int count() const; /*! * Returns formatted length of the item. diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp index 9431bc954..ef77e72a4 100644 --- a/src/qmmpui/playlistmodel.cpp +++ b/src/qmmpui/playlistmodel.cpp @@ -224,7 +224,7 @@ bool PlayListModel::isGroup(int index) const { if (index > count()-1 || index < 0) return false; - return !m_container->item(index)->isGroup(); + return m_container->item(index)->isGroup(); } bool PlayListModel::next() @@ -306,6 +306,20 @@ void PlayListModel::setSelected(int index, bool selected) emit listChanged(); } +void PlayListModel::setSelected(QList<PlayListTrack *> tracks, bool selected) +{ + foreach(PlayListTrack *t, tracks) + t->setSelected(selected); + emit listChanged(); +} + +void PlayListModel::setSelected(QList<PlayListItem *> items, bool selected) +{ + foreach(PlayListItem *i, items) + i->setSelected(selected); + emit listChanged(); +} + void PlayListModel::removeSelected() { removeSelection(false); diff --git a/src/qmmpui/playlistmodel.h b/src/qmmpui/playlistmodel.h index 149cc3e49..9b377d20d 100644 --- a/src/qmmpui/playlistmodel.h +++ b/src/qmmpui/playlistmodel.h @@ -159,6 +159,11 @@ public: * @param selected Selection state (\b true - select, \b false - unselect) */ void setSelected(int index, bool selected = true); + + + void setSelected(QList<PlayListTrack *> tracks, bool selected = true); + + void setSelected(QList<PlayListItem *> items, bool selected = true); /*! * Advances to the next item. Returns \b false if next iten doesn't exist, * otherwise returns \b true |
