aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-09-06 05:55:41 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-09-06 05:55:41 +0000
commit70637af7415d4b318355eaf670611331908530f2 (patch)
treeb82194c2c5ec7817c1202b7cc07e6c1646ccd655 /src
parentdc76e6a2b1672620f66bbaf4033341cdf5b600f7 (diff)
downloadqmmp-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
Diffstat (limited to 'src')
-rw-r--r--src/plugins/Ui/skinned/listwidget.cpp5
-rw-r--r--src/qmmpui/groupedcontainer.cpp2
-rw-r--r--src/qmmpui/playlistgroup.cpp4
-rw-r--r--src/qmmpui/playlistgroup.h2
-rw-r--r--src/qmmpui/playlistmodel.cpp16
-rw-r--r--src/qmmpui/playlistmodel.h5
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