diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-09-06 05:55:41 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-09-06 05:55:41 +0000 |
| commit | 70637af7415d4b318355eaf670611331908530f2 (patch) | |
| tree | b82194c2c5ec7817c1202b7cc07e6c1646ccd655 | |
| parent | dc76e6a2b1672620f66bbaf4033341cdf5b600f7 (diff) | |
| download | qmmp-70637af7415d4b318355eaf670611331908530f2.tar.gz qmmp-70637af7415d4b318355eaf670611331908530f2.tar.bz2 qmmp-70637af7415d4b318355eaf670611331908530f2.zip | |
select all group if needed
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3681 90c681e8-e032-0410-971d-27865f9a5e38
| -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 |
