From ef99712682b1f35c6247d24685173e1d9d276922 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Tue, 13 Aug 2013 16:47:32 +0000 Subject: do not emit useless listChanged() signal git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3593 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmpui/playlistcontainer.cpp | 11 ++++++++--- src/qmmpui/playlistcontainer.h | 2 +- src/qmmpui/playlistmodel.cpp | 9 +++++---- 3 files changed, 14 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/qmmpui/playlistcontainer.cpp b/src/qmmpui/playlistcontainer.cpp index 6f0297061..ecd8fbdff 100644 --- a/src/qmmpui/playlistcontainer.cpp +++ b/src/qmmpui/playlistcontainer.cpp @@ -197,7 +197,7 @@ void PlayListContainer::removeTracks(QList tracks) removeTrack(t); } -void PlayListContainer::move(QList indexes, int from, int to) +bool PlayListContainer::move(QList indexes, int from, int to) { PlayListGroup *group = 0; @@ -212,15 +212,16 @@ void PlayListContainer::move(QList indexes, int from, int to) } if(!group) - return; + return false; foreach (int i, indexes) { if(i <= group->firstIndex || i > group->lastIndex) - return; + return false; } if (from > to) + { foreach(int i, indexes) { if (i + to - from < 0) @@ -232,7 +233,9 @@ void PlayListContainer::move(QList indexes, int from, int to) i + to - from - group->firstIndex - 1); } } + } else + { for (int i = indexes.count() - 1; i >= 0; i--) { if (indexes[i] + to - from >= m_items.count()) @@ -244,6 +247,8 @@ void PlayListContainer::move(QList indexes, int from, int to) indexes[i] + to - from - group->firstIndex - 1); } } + } + return true; } void PlayListContainer::clear() diff --git a/src/qmmpui/playlistcontainer.h b/src/qmmpui/playlistcontainer.h index 159a64b6c..bd80364ef 100644 --- a/src/qmmpui/playlistcontainer.h +++ b/src/qmmpui/playlistcontainer.h @@ -55,7 +55,7 @@ public: void removeTrack(PlayListTrack *track); void removeTracks(QList tracks); - void move(QList indexes, int from, int to); + bool move(QList indexes, int from, int to); void clear(); diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp index ab97fae0c..bcb4b739e 100644 --- a/src/qmmpui/playlistmodel.cpp +++ b/src/qmmpui/playlistmodel.cpp @@ -495,7 +495,11 @@ void PlayListModel::moveItems(int from, int to) topmostInSelection(from) == INVALID_INDEX) return; - m_container.move(selected_indexes, from, to); + if(m_container.move(selected_indexes, from, to)) + { + m_current = m_container.indexOf(m_current_track); + emit listChanged(); + } /*if (from > to) foreach(int i, selected_indexes) @@ -515,9 +519,6 @@ void PlayListModel::moveItems(int from, int to) else m_items.move(selected_indexes[i],selected_indexes[i] + to - from); }*/ - - m_current = m_container.indexOf(m_current_track); - emit listChanged(); } int PlayListModel::topmostInSelection(int row) -- cgit v1.2.3-13-gbd6f