aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/tagupdater.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmmpui/tagupdater.cpp')
-rw-r--r--src/qmmpui/tagupdater.cpp30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/qmmpui/tagupdater.cpp b/src/qmmpui/tagupdater.cpp
index 0b50e83cc..02f0c4590 100644
--- a/src/qmmpui/tagupdater.cpp
+++ b/src/qmmpui/tagupdater.cpp
@@ -20,23 +20,29 @@
#include "tagupdater_p.h"
-TagUpdater::TagUpdater(QObject* o, PlayListTrack* track) : m_observable(o), m_item(track)
+TagUpdater::TagUpdater(QObject* o, QList<PlayListTrack *> tracks) : m_observable(o)
{
- m_item->setFlag(PlayListTrack::EDITING);
- connect(m_observable, SIGNAL(destroyed(QObject *)),SLOT(updateTag()));
+ m_tracks = tracks;
+ foreach(PlayListTrack *t, m_tracks)
+ t->setFlag(PlayListTrack::EDITING);
+ connect(m_observable, SIGNAL(destroyed(QObject *)),SLOT(updateTags()));
connect(m_observable, SIGNAL(destroyed(QObject *)),SLOT(deleteLater()));
}
-void TagUpdater::updateTag()
+void TagUpdater::updateTags()
{
- if (m_item->flag() == PlayListTrack::SCHEDULED_FOR_DELETION)
+ foreach (PlayListTrack *t, m_tracks)
{
- delete m_item;
- m_item = NULL;
- }
- else
- {
- m_item->updateMetaData();
- m_item->setFlag(PlayListTrack::FREE);
+ if (t->flag() == PlayListTrack::SCHEDULED_FOR_DELETION)
+ {
+ delete t;
+ t = 0;
+ }
+ else
+ {
+ t->updateMetaData();
+ t->setFlag(PlayListTrack::FREE);
+ }
}
+ m_tracks.clear();
}