[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [plasma-mediacenter] libs/mediacenter: Listen to changes on PmcMedia and react accordingly
From:       Shantanu Tushar <shantanu () kde ! org>
Date:       2014-04-30 20:28:12
Message-ID: E1Wfb6y-0003E6-6S () scm ! kde ! org
[Download RAW message or body]

Git commit 82d1829183c589752241076de2fa8bae80a7e053 by Shantanu Tushar.
Committed on 30/04/2014 at 20:28.
Pushed by shantanu into branch 'master'.

Listen to changes on PmcMedia and react accordingly

M  +11   -0    libs/mediacenter/pmcmetadatamodel.cpp
M  +1    -0    libs/mediacenter/pmcmetadatamodel.h

http://commits.kde.org/plasma-mediacenter/82d1829183c589752241076de2fa8bae80a7e053

diff --git a/libs/mediacenter/pmcmetadatamodel.cpp b/libs/mediacenter/pmcmetadatamodel.cpp
index 61362c8..a58a57b 100644
--- a/libs/mediacenter/pmcmetadatamodel.cpp
+++ b/libs/mediacenter/pmcmetadatamodel.cpp
@@ -153,6 +153,7 @@ void PmcMetadataModel::handleNewMedia(const QList< QSharedPointer< PmcMedia > >&
         if (d->modeForMediaType.value(m->type()) == d->currentMode) {
             d->mediaByResourceId.insert(m->sha(), QSharedPointer<QObject>(m));
             resourceIdsToBeInserted.append(m->sha());
+            connect(m.data(), SIGNAL(updated()), SLOT(mediaUpdated()));
         }
     }
 
@@ -405,3 +406,13 @@ void PmcMetadataModel::signalUpdate(const QVariant& resourceId, const QString& d
     const QModelIndex changedIndex = index(rowForResource);
     emit dataChanged(changedIndex, changedIndex);
 }
+
+void PmcMetadataModel::mediaUpdated()
+{
+    PmcMedia *media = static_cast<PmcMedia*>(sender());
+    const QString resourceId = media->sha();
+
+    const int mediaIndex = d->mediaResourceIds.indexOf(resourceId);
+    const QModelIndex changedIndex = index(mediaIndex);
+    emit dataChanged(changedIndex, changedIndex);
+}
diff --git a/libs/mediacenter/pmcmetadatamodel.h b/libs/mediacenter/pmcmetadatamodel.h
index a537623..6d60894 100644
--- a/libs/mediacenter/pmcmetadatamodel.h
+++ b/libs/mediacenter/pmcmetadatamodel.h
@@ -72,6 +72,7 @@ private Q_SLOTS:
     void previewFailed(const KFileItem &item);
     void fetchMetadata();
     void signalUpdate(const QVariant& resourceId, const QString& displayString = QString());
+    void mediaUpdated();
 
 private:
     enum Mode { Music, Picture, Video, Album, Artist };
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic