[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [Amarok] UMS: Can now edit track details.
From: Alejandro Wainzinger <aikawarazuni () gmail ! com>
Date: 2009-08-16 13:57:18
Message-ID: 200908161357.n7GDvIcX020518 () Wurst ! kollide ! net
[Download RAW message or body]
commit 7c64a1f4c707372ced436ca53848d29ee5b780c4
Author: Alejandro Wainzinger <aikawarazuni@gmail.com>
AuthorDate: Sun Aug 16 15:55:51 2009 +0200
Commit: Alejandro Wainzinger <aikawarazuni@gmail.com>
CommitDate: Sun Aug 16 15:55:51 2009 +0200
UMS: Can now edit track details.
diff --git a/src/collection/mediadevicecollection/handler/MediaDeviceHandler.cpp \
b/src/collection/mediadevicecollection/handler/MediaDeviceHandler.cpp index \
207bad1..ce1a282 100644
--- a/src/collection/mediadevicecollection/handler/MediaDeviceHandler.cpp
+++ b/src/collection/mediadevicecollection/handler/MediaDeviceHandler.cpp
@@ -1175,13 +1175,18 @@ MediaDeviceHandler::metadataChanged( TrackPtr track )
setupWriteCapability();
- if( !m_wc )
+ if( !m_wcb )
return;
- setBasicMediaDeviceTrackInfo( track, trackPtr );
+ if ( !isOrganizable() )
+ {
+ setBasicMediaDeviceTrackInfo( track, trackPtr );
+
+ m_wc->databaseChanged();
+ }
+
+ m_wcb->updateTrack( trackPtr );
- m_wc->updateTrack( trackPtr );
- m_wc->databaseChanged();
}
void
diff --git a/src/collection/umscollection/handler/UmsHandler.cpp \
b/src/collection/umscollection/handler/UmsHandler.cpp index c6b1787..91dff93 100644
--- a/src/collection/umscollection/handler/UmsHandler.cpp
+++ b/src/collection/umscollection/handler/UmsHandler.cpp
@@ -851,6 +851,34 @@ UmsHandler::prepareToDelete()
}
void
+UmsHandler::updateTrack( Meta::MediaDeviceTrackPtr &track )
+{
+ MetaFile::TrackPtr metafile = MetaFile::TrackPtr::staticCast( \
m_umstrackhash.value( track ) ); + if( !metafile )
+ return;
+
+ // Data has changed, update the MetaFile::Track
+ metafile->setTitle( track->name() );
+ if ( track->album() )
+ metafile->setAlbum( track->album()->name() );
+ if ( track->artist() )
+ metafile->setArtist( track->artist()->name() );
+ if ( track->composer() )
+ metafile->setComposer( track->composer()->name() );
+ if ( track->genre() )
+ metafile->setGenre( track->genre()->name() );
+ if ( track->year() )
+ metafile->setYear( track->year()->name() );
+ metafile->setTrackNumber( track->trackNumber() );
+ metafile->setComment( track->comment() );
+ metafile->setDiscNumber( track->discNumber() );
+
+ metafile->setPlayCount( track->playCount() );
+ metafile->setLastPlayed( track->lastPlayed() );
+ metafile->setRating( track->rating() );
+}
+
+void
UmsHandler::endTrackRemove()
{
// TODO: remove empty directories of deleted tracks
diff --git a/src/collection/umscollection/handler/UmsHandler.h \
b/src/collection/umscollection/handler/UmsHandler.h index 0b926b6..dd122e0 100644
--- a/src/collection/umscollection/handler/UmsHandler.h
+++ b/src/collection/umscollection/handler/UmsHandler.h
@@ -136,6 +136,8 @@ class UmsHandler : public Meta::MediaDeviceHandler
virtual void prepareToCopy();
virtual void prepareToDelete();
+ virtual void updateTrack( Meta::MediaDeviceTrackPtr &track );
+
virtual void endTrackRemove();
#if 0
@@ -228,7 +230,7 @@ class UmsHandler : public Meta::MediaDeviceHandler
QMap<KUrl, Meta::TrackPtr> m_trackscopying; // associates source url to \
track of source url
QMap<Meta::TrackPtr, KUrl> m_trackdesturl; // keeps track of destination url \
for new tracks, mapped from source track
- QMap<Meta::TrackPtr, Meta::MediaDeviceTrackPtr> m_srctodest;
+ QMap<Meta::TrackPtr, Meta::MediaDeviceTrackPtr> m_srctodest;
QMap<KUrl, Meta::TrackPtr> m_tracksdeleting; // associates source url to \
track of source url being deleted
/* Ums Connection */
diff --git a/src/collection/umscollection/handler/capabilities/UmsWriteCapability.cpp \
b/src/collection/umscollection/handler/capabilities/UmsWriteCapability.cpp index \
1c82f06..f2636d1 100644
--- a/src/collection/umscollection/handler/capabilities/UmsWriteCapability.cpp
+++ b/src/collection/umscollection/handler/capabilities/UmsWriteCapability.cpp
@@ -68,6 +68,12 @@ UmsWriteCapability::prepareToDelete()
}
void
+UmsWriteCapability::updateTrack( Meta::MediaDeviceTrackPtr &track )
+{
+ m_handler->updateTrack( track );
+}
+
+void
UmsWriteCapability::endTrackRemove()
{
m_handler->endTrackRemove();
diff --git a/src/collection/umscollection/handler/capabilities/UmsWriteCapability.h \
b/src/collection/umscollection/handler/capabilities/UmsWriteCapability.h index \
bf6f881..dd1ca58 100644
--- a/src/collection/umscollection/handler/capabilities/UmsWriteCapability.h
+++ b/src/collection/umscollection/handler/capabilities/UmsWriteCapability.h
@@ -45,6 +45,8 @@ class UmsWriteCapability : public WriteCapabilityBase
virtual void prepareToCopy();
virtual void prepareToDelete();
+ virtual void updateTrack( Meta::MediaDeviceTrackPtr &track );
+
virtual void endTrackRemove();
private:
diff --git a/src/meta/file/File.h b/src/meta/file/File.h
index 688727c..61a0b87 100644
--- a/src/meta/file/File.h
+++ b/src/meta/file/File.h
@@ -21,6 +21,10 @@
namespace MetaFile
{
+ class Track;
+
+ typedef KSharedPtr<Track> TrackPtr;
+
class AMAROK_EXPORT Track : public Meta::Track
{
public:
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic