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

List:       kde-commits
Subject:    extragear/multimedia/amarok/src
From:       Casey Link <unnamedrambler () gmail ! com>
Date:       2008-05-31 23:10:32
Message-ID: 1212275432.225645.21686.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 815021 by link:

Expose the local collection path via dbus in a more elegant fashion. The \
CollectionLocation changes should prove useful in the future for other  \
implementations. 


 M  +6 -0      collection/CollectionLocation.cpp  
 M  +12 -0     collection/CollectionLocation.h  
 M  +5 -0      collection/sqlcollection/SqlCollectionLocation.cpp  
 M  +1 -0      collection/sqlcollection/SqlCollectionLocation.h  
 M  +3 -11     dbus/amarokdbushandler.cpp  
 M  +1 -1      dbus/amarokdbushandler.h  
 M  +2 -2      dbus/org.kde.amarok.collection.xml  


--- trunk/extragear/multimedia/amarok/src/collection/CollectionLocation.cpp \
#815020:815021 @@ -59,6 +59,12 @@
     return QString();
 }
 
+QStringList
+CollectionLocation::actualLocation() const
+{
+    return QStringList();
+}
+
 bool
 CollectionLocation::isWriteable() const
 {
--- trunk/extragear/multimedia/amarok/src/collection/CollectionLocation.h \
#815020:815021 @@ -54,6 +54,9 @@
 
     Implementations which are only readable can reimplement \
                getKIOCopyableUrls( Meta::TrackList )
     if it is necessary, but can use the default implementations if \
possible. +
+    Implementations that have a string expressable location(s), such as a \
URL or path on disk +    should reimplement actualLocation(). 
  
     Implementations that need additional information provided by the user \
                have to implement
     showSourceDialog() and showDestinationDialog(), depending on whether \
the information is required @@ -96,6 +99,15 @@
         virtual QString prettyLocation() const;
 
         /**
+            Returns a list of machine usable strings representingthe \
collection location. For example, +            a local collection would \
return a list of paths where tracks are stored, while an Ampache  +         \
collection would return a list with one string containing the URL of an \
ampache server. +            An iPod collection and a MTP device collection \
are examples of collections that do +            not need to reimplement \
this method. +        */
+        virtual QStringList actualLocation() const;
+
+        /**
             Returns whether the collection location is writeable or not. \
                For example, a local collection or an ipod
             collection would return true, a daap collection or a service \
                collection false. The value returned by this
             method indicates if it is possible to copy tracks to the \
                collection, and if it is generally possible to
--- trunk/extragear/multimedia/amarok/src/collection/sqlcollection/SqlCollectionLocation.cpp \
#815020:815021 @@ -62,6 +62,11 @@
     return i18n( "Local Collection" );
 }
 
+QStringList
+SqlCollectionLocation::actualLocation() const
+{
+    return MountPointManager::instance()->collectionFolders();
+}
 bool
 SqlCollectionLocation::isWriteable() const
 {
--- trunk/extragear/multimedia/amarok/src/collection/sqlcollection/SqlCollectionLocation.h \
#815020:815021 @@ -36,6 +36,7 @@
         virtual ~SqlCollectionLocation();
 
         virtual QString prettyLocation() const;
+        virtual QStringList actualLocation() const;
         virtual bool isWriteable() const;
         virtual bool isOrganizable() const;
         virtual bool remove( const Meta::TrackPtr &track );
--- trunk/extragear/multimedia/amarok/src/dbus/amarokdbushandler.cpp \
#815020:815021 @@ -29,6 +29,7 @@
 #include "collection/CollectionManager.h"
 #include "collection/SqlStorage.h"
 #include "collection/sqlcollection/SqlCollection.h"
+#include "collection/sqlcollection/SqlCollectionLocation.h"
 #include "context/LyricsManager.h"
 #include "EngineController.h"
 #include "equalizersetup.h"
@@ -848,18 +849,9 @@
         Q_UNUSED( path );
         return false;
     }
-    QString DbusCollectionHandler::mainCollectionPath()
+    QStringList DbusCollectionHandler::collectionLocation()
     {
-        /*The main collection path is defined as the first path \
                encountered*/
-        QStringList folders = \
                MountPointManager::instance()->collectionFolders();
-
-        QString firstPath = "NONE";
-
-        if(!folders.isEmpty()) {
-            firstPath = folders[0];
-        }
-
-        return firstPath;
+        return CollectionManager::instance()->primaryCollection()->location()->actualLocation();
  }
     bool DbusCollectionHandler::moveFile( const QString &oldURL, const \
QString &newURL, bool overwrite )  {
--- trunk/extragear/multimedia/amarok/src/dbus/amarokdbushandler.h \
#815020:815021 @@ -183,7 +183,7 @@
       virtual int totalGenres();
       virtual int totalTracks();
       virtual bool isDirInCollection( const QString &path );
-      virtual QString mainCollectionPath();
+      virtual QStringList collectionLocation();
       virtual bool moveFile( const QString &oldURL, const QString &newURL, \
bool overwrite );  virtual QStringList query(const QString& sql);
       virtual QStringList similarArtists( int artists );
--- trunk/extragear/multimedia/amarok/src/dbus/org.kde.amarok.collection.xml \
#815020:815021 @@ -56,8 +56,8 @@
       <arg name="url" type="s" direction="in"/>
       <arg name="oldLabel" type="as" direction="in"/>
     </method>
-    <method name="mainCollectionPath" >
-        <arg type="s" direction="out"/>
+    <method name="collectionLocation" >
+        <arg type="as" direction="out"/>
     </method>
   </interface>
 </node>


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

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