1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-05 13:47:26 +02:00

Merge branch 'master' into spotifyplaylists

Conflicts:
	src/libtomahawk/utils/xspfloader.cpp
This commit is contained in:
Leo Franchi
2012-03-27 17:49:02 -04:00
5 changed files with 15 additions and 12 deletions

View File

@@ -79,6 +79,8 @@ PlaylistUpdaterInterface::PlaylistUpdaterInterface( const playlist_ptr& pl )
connect( m_timer, SIGNAL( timeout() ), this, SLOT( updateNow() ) ); connect( m_timer, SIGNAL( timeout() ), this, SLOT( updateNow() ) );
QTimer::singleShot( 0, this, SLOT( doSave() ) ); QTimer::singleShot( 0, this, SLOT( doSave() ) );
setAutoUpdate( m_autoUpdate );
} }
PlaylistUpdaterInterface::PlaylistUpdaterInterface( const playlist_ptr& pl, int interval, bool autoUpdate ) PlaylistUpdaterInterface::PlaylistUpdaterInterface( const playlist_ptr& pl, int interval, bool autoUpdate )

View File

@@ -58,28 +58,24 @@ XspfUpdater::updateNow()
XSPFLoader* l = new XSPFLoader( false, false ); XSPFLoader* l = new XSPFLoader( false, false );
l->setAutoResolveTracks( false ); l->setAutoResolveTracks( false );
l->load( m_url ); l->load( m_url );
connect( l, SIGNAL( ok ( Tomahawk::playlist_ptr ) ), this, SLOT( playlistLoaded() ) ); connect( l, SIGNAL( tracks( QList<Tomahawk::query_ptr> ) ), this, SLOT( playlistLoaded( QList<Tomahawk::query_ptr> ) ) );
} }
void void
XspfUpdater::playlistLoaded() XspfUpdater::playlistLoaded( const QList<Tomahawk::query_ptr>& newEntries )
{ {
XSPFLoader* loader = qobject_cast<XSPFLoader*>( sender() );
Q_ASSERT( loader );
QList< query_ptr > tracks; QList< query_ptr > tracks;
foreach ( const plentry_ptr ple, playlist()->entries() ) foreach ( const plentry_ptr ple, playlist()->entries() )
tracks << ple->query(); tracks << ple->query();
bool changed = false; bool changed = false;
QList< query_ptr > mergedTracks = TomahawkUtils::mergePlaylistChanges( tracks, loader->entries(), changed ); QList< query_ptr > mergedTracks = TomahawkUtils::mergePlaylistChanges( tracks, newEntries, changed );
if ( !changed ) if ( !changed )
return; return;
QList<Tomahawk::plentry_ptr> el = playlist()->entriesFromQueries( mergedTracks, true ); QList<Tomahawk::plentry_ptr> el = playlist()->entriesFromQueries( mergedTracks, true );
playlist()->createNewRevision( uuid(), playlist()->currentrevision(), el ); playlist()->createNewRevision( uuid(), playlist()->currentrevision(), el );
} }
void void

View File

@@ -39,6 +39,7 @@ public:
virtual ~XspfUpdater(); virtual ~XspfUpdater();
virtual QString type() const { return "xspf"; } virtual QString type() const { return "xspf"; }
public slots: public slots:
void updateNow(); void updateNow();
@@ -48,7 +49,7 @@ protected:
virtual void removeFromSettings(const QString& group) const; virtual void removeFromSettings(const QString& group) const;
private slots: private slots:
void playlistLoaded(); void playlistLoaded( const QList<Tomahawk::query_ptr> & );
private: private:
QString m_url; QString m_url;

View File

@@ -61,6 +61,7 @@ XSPFLoader::XSPFLoader( bool autoCreate, bool autoUpdate, QObject *parent )
, m_autoCreate( autoCreate ) , m_autoCreate( autoCreate )
, m_autoUpdate( autoUpdate ) , m_autoUpdate( autoUpdate )
, m_autoResolve( true ) , m_autoResolve( true )
, m_autoDelete( true )
, m_NS("http://xspf.org/ns/0/") , m_NS("http://xspf.org/ns/0/")
{ {
qRegisterMetaType< XSPFErrorCode >("XSPFErrorCode"); qRegisterMetaType< XSPFErrorCode >("XSPFErrorCode");
@@ -262,15 +263,17 @@ XSPFLoader::gotBody()
m_entries ); m_entries );
// 10 minute default---for now, no way to change it // 10 minute default---for now, no way to change it
new Tomahawk::XspfUpdater( m_playlist, 6000000, m_autoUpdate, m_url.toString() ); new Tomahawk::XspfUpdater( m_playlist, 600000, m_autoUpdate, m_url.toString() );
emit ok( m_playlist ); emit ok( m_playlist );
} }
else{ else
{
if( !m_entries.isEmpty() ) if( !m_entries.isEmpty() )
emit tracks( m_entries ); emit tracks( m_entries );
} }
if ( m_autoDelete )
deleteLater(); deleteLater();
} }

View File

@@ -48,6 +48,7 @@ public:
void setOverrideTitle( const QString& newTitle ); void setOverrideTitle( const QString& newTitle );
void setAutoResolveTracks( bool autoResolve ) { m_autoResolve = autoResolve; } void setAutoResolveTracks( bool autoResolve ) { m_autoResolve = autoResolve; }
void setAutoDelete( bool autoDelete ) { m_autoDelete = autoDelete; }
static QString errorToString( XSPFErrorCode error ); static QString errorToString( XSPFErrorCode error );
@@ -69,7 +70,7 @@ private:
void reportError(); void reportError();
void gotBody(); void gotBody();
bool m_autoCreate, m_autoUpdate, m_autoResolve; bool m_autoCreate, m_autoUpdate, m_autoResolve, m_autoDelete;
QString m_NS,m_overrideTitle; QString m_NS,m_overrideTitle;
QList< Tomahawk::query_ptr > m_entries; QList< Tomahawk::query_ptr > m_entries;
QString m_title, m_info, m_creator; QString m_title, m_info, m_creator;