diff options
Diffstat (limited to 'src/qmmpui/tagupdater.cpp')
| -rw-r--r-- | src/qmmpui/tagupdater.cpp | 30 |
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(); } |
