[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [amarok] src/core-impl: Refactoring: Clean up FileTrackProvider functionality
From: Ralf Engels <ralf-engels () gmx ! de>
Date: 2015-01-17 18:12:21
Message-ID: E1YCXrB-000431-Ep () scm ! kde ! org
[Download RAW message or body]
Git commit 3edc6861dc0f626db849dcbe3121622ef7b14ab7 by Ralf Engels.
Committed on 02/01/2015 at 12:14.
Pushed by rengels into branch 'master'.
Refactoring: Clean up FileTrackProvider functionality
Consisten handling of track providers in CollectionManager
Podcast stuff does not need the CollectionManagers track provider.
Instead use it's own.
M +10 -21 src/core-impl/collections/support/CollectionManager.cpp
M +0 -7 src/core-impl/collections/support/CollectionManager.h
M +4 -1 src/core-impl/podcasts/sql/SqlPodcastMeta.cpp
http://commits.kde.org/amarok/3edc6861dc0f626db849dcbe3121622ef7b14ab7
diff --git a/src/core-impl/collections/support/CollectionManager.cpp \
b/src/core-impl/collections/support/CollectionManager.cpp index 8f01146..16e9cbc \
100644
--- a/src/core-impl/collections/support/CollectionManager.cpp
+++ b/src/core-impl/collections/support/CollectionManager.cpp
@@ -87,8 +87,8 @@ CollectionManager::CollectionManager()
setObjectName( "CollectionManager" );
d->primaryCollection = 0;
- // special-cased in trackForUrl(), don't add to d->trackProviders yet
- d->fileTrackProvider = new FileTrackProvider();
+ d->timecodeTrackProvider = 0;
+ d->fileTrackProvider = 0;
}
CollectionManager::~CollectionManager()
@@ -98,10 +98,10 @@ CollectionManager::~CollectionManager()
{
QWriteLocker locker( &d->lock );
- delete d->timecodeTrackProvider;
- delete d->fileTrackProvider;
d->collections.clear();
d->trackProviders.clear();
+ delete d->timecodeTrackProvider;
+ delete d->fileTrackProvider;
// Hmm, qDeleteAll from Qt 4.8 crashes with our SmartPointerList, do it \
manually. Bug 285951 while (!d->factories.isEmpty() )
@@ -114,10 +114,14 @@ CollectionManager::~CollectionManager()
void
CollectionManager::init()
{
- //register the timecode track provider now, as it needs to get added before \
loading
- //the stored playlist... Since it can have playable urls that might also match \
other providers, it needs to get added first. + // register the timecode track \
provider now, as it needs to get added before loading + // the stored playlist... \
Since it can have playable urls that might also match other providers, it needs to \
get added first. d->timecodeTrackProvider = new TimecodeTrackProvider();
addTrackProvider( d->timecodeTrackProvider );
+
+ // addint fileTrackProvider second since local tracks should be preferred even \
if the url matchs two tracks + d->fileTrackProvider = new FileTrackProvider();
+ addTrackProvider( d->fileTrackProvider );
}
void
@@ -363,15 +367,6 @@ CollectionManager::trackForUrl( const KUrl &url )
if( remoteProtocols.contains( url.protocol() ) )
return Meta::TrackPtr( new MetaStream::Track( url ) );
- /* TODO: add fileTrackProvider to normal providers once tested that the reorder
- * doesn't change behaviour */
- if( d->fileTrackProvider->possiblyContainsTrack( url ) )
- {
- Meta::TrackPtr track = d->fileTrackProvider->trackForUrl( url );
- if( track )
- return track;
- }
-
return Meta::TrackPtr( 0 );
}
@@ -421,9 +416,3 @@ CollectionManager::removeTrackProvider( \
Collections::TrackProvider *provider ) d->trackProviders.removeAll( provider );
}
-Collections::TrackProvider *
-CollectionManager::fileTrackProvider()
-{
- QReadLocker locker( &d->lock );
- return d->fileTrackProvider;
-}
diff --git a/src/core-impl/collections/support/CollectionManager.h \
b/src/core-impl/collections/support/CollectionManager.h index 4291c56..5f56394 100644
--- a/src/core-impl/collections/support/CollectionManager.h
+++ b/src/core-impl/collections/support/CollectionManager.h
@@ -133,13 +133,6 @@ class AMAROK_EXPORT CollectionManager : public QObject
*/
void setFactories( const QList<Plugins::PluginFactory*> &factories );
- /**
- * Return a pointer to CollectionManger's internal FileTrackProvider \
instance.
- * valid as long as this CollectionManger is alive, CollectionManager \
remains
- * owner of the pointer.
- */
- Collections::TrackProvider *fileTrackProvider();
-
public slots:
/** Starts the full scan for each collection with CollectionScanCapability \
*/ void startFullScan();
diff --git a/src/core-impl/podcasts/sql/SqlPodcastMeta.cpp \
b/src/core-impl/podcasts/sql/SqlPodcastMeta.cpp index 3a3b4e7..14813d3 100644
--- a/src/core-impl/podcasts/sql/SqlPodcastMeta.cpp
+++ b/src/core-impl/podcasts/sql/SqlPodcastMeta.cpp
@@ -27,6 +27,7 @@
#include "core-impl/collections/support/CollectionManager.h"
#include "core-impl/storage/StorageManager.h"
#include "core-impl/meta/proxy/MetaProxy.h"
+#include "core-impl/meta/file/FileTrackProvider.h"
#include "core-impl/podcasts/sql/SqlPodcastProvider.h"
#include <QDate>
@@ -34,6 +35,8 @@
using namespace Podcasts;
+static FileTrackProvider myFileTrackProvider; // we need it to be available for \
lookups +
class TimecodeWriteCapabilityPodcastImpl : public \
Capabilities::TimecodeWriteCapability {
public:
@@ -240,7 +243,7 @@ SqlPodcastEpisode::setupLocalFile()
/* following won't write to actual file, because MetaProxy::Track hasn't yet \
looked
* up the underlying track. It will just set some cached values. */
writeTagsToFile();
- proxyTrack->lookupTrack( CollectionManager::instance()->fileTrackProvider() );
+ proxyTrack->lookupTrack( &myFileTrackProvider );
}
SqlPodcastEpisode::~SqlPodcastEpisode()
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic