mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-07 14:46:33 +02:00
* Added a few safety checks.
This commit is contained in:
@@ -11,6 +11,7 @@ using namespace Tomahawk;
|
|||||||
|
|
||||||
DatabaseCollection::DatabaseCollection( const source_ptr& src, QObject* parent )
|
DatabaseCollection::DatabaseCollection( const source_ptr& src, QObject* parent )
|
||||||
: Collection( src, QString( "dbcollection:%1" ).arg( src->userName() ), parent )
|
: Collection( src, QString( "dbcollection:%1" ).arg( src->userName() ), parent )
|
||||||
|
, m_loadedTracks( false )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,6 +46,8 @@ void
|
|||||||
DatabaseCollection::loadTracks()
|
DatabaseCollection::loadTracks()
|
||||||
{
|
{
|
||||||
qDebug() << Q_FUNC_INFO << source()->userName();
|
qDebug() << Q_FUNC_INFO << source()->userName();
|
||||||
|
|
||||||
|
m_loadedTracks = true;
|
||||||
DatabaseCommand_AllTracks* cmd = new DatabaseCommand_AllTracks( source()->collection() );
|
DatabaseCommand_AllTracks* cmd = new DatabaseCommand_AllTracks( source()->collection() );
|
||||||
|
|
||||||
connect( cmd, SIGNAL( tracks( QList<Tomahawk::query_ptr>, Tomahawk::collection_ptr ) ),
|
connect( cmd, SIGNAL( tracks( QList<Tomahawk::query_ptr>, Tomahawk::collection_ptr ) ),
|
||||||
@@ -107,7 +110,7 @@ DatabaseCollection::tracks()
|
|||||||
{
|
{
|
||||||
qDebug() << Q_FUNC_INFO;
|
qDebug() << Q_FUNC_INFO;
|
||||||
|
|
||||||
if ( Collection::tracks().isEmpty() )
|
if ( !m_loadedTracks )
|
||||||
{
|
{
|
||||||
loadTracks();
|
loadTracks();
|
||||||
}
|
}
|
||||||
|
@@ -32,6 +32,9 @@ public slots:
|
|||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void dynamicPlaylistCreated( const Tomahawk::source_ptr& source, const QVariantList& data );
|
void dynamicPlaylistCreated( const Tomahawk::source_ptr& source, const QVariantList& data );
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool m_loadedTracks;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // DATABASECOLLECTION_H
|
#endif // DATABASECOLLECTION_H
|
||||||
|
@@ -134,10 +134,10 @@ ControlConnection::setupDbSyncConnection( bool ondemand )
|
|||||||
if ( m_dbsyncconn )
|
if ( m_dbsyncconn )
|
||||||
{
|
{
|
||||||
connect( m_dbsyncconn, SIGNAL( finished() ),
|
connect( m_dbsyncconn, SIGNAL( finished() ),
|
||||||
m_dbsyncconn, SLOT( deleteLater() ) );
|
m_dbsyncconn, SLOT( deleteLater() ) );
|
||||||
|
|
||||||
connect( m_dbsyncconn, SIGNAL( destroyed( QObject* ) ),
|
connect( m_dbsyncconn, SIGNAL( destroyed( QObject* ) ),
|
||||||
SLOT( dbSyncConnFinished( QObject* ) ), Qt::DirectConnection );
|
SLOT( dbSyncConnFinished( QObject* ) ), Qt::DirectConnection );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -151,6 +151,8 @@ ControlConnection::dbSyncConnFinished( QObject* c )
|
|||||||
//qDebug() << "Setting m_dbsyncconn to NULL";
|
//qDebug() << "Setting m_dbsyncconn to NULL";
|
||||||
m_dbsyncconn = NULL;
|
m_dbsyncconn = NULL;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
qDebug() << "Old DbSyncConn destroyed?!";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -158,8 +160,11 @@ DBSyncConnection*
|
|||||||
ControlConnection::dbSyncConnection()
|
ControlConnection::dbSyncConnection()
|
||||||
{
|
{
|
||||||
qDebug() << Q_FUNC_INFO;
|
qDebug() << Q_FUNC_INFO;
|
||||||
if( m_dbsyncconn == NULL )
|
if ( !m_dbsyncconn )
|
||||||
|
{
|
||||||
setupDbSyncConnection( true );
|
setupDbSyncConnection( true );
|
||||||
|
Q_ASSERT( m_dbsyncconn );
|
||||||
|
}
|
||||||
|
|
||||||
return m_dbsyncconn;
|
return m_dbsyncconn;
|
||||||
}
|
}
|
||||||
|
@@ -711,7 +711,7 @@ Servent::triggerDBSync()
|
|||||||
if ( src.isNull() || src->isLocal() )
|
if ( src.isNull() || src->isLocal() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ( src->controlConnection() && src->controlConnection()->dbSyncConnection() ) // source online?
|
if ( src->controlConnection() ) // source online?
|
||||||
src->controlConnection()->dbSyncConnection()->trigger();
|
src->controlConnection()->dbSyncConnection()->trigger();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user