mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-09 07:36:48 +02:00
* Extra safety for QJson 0.8.0.
This commit is contained in:
@@ -54,41 +54,45 @@ DatabaseCommand_LoadPlaylistEntries::generateEntries( DatabaseImpl* dbi )
|
|||||||
|
|
||||||
if ( query_entries.next() )
|
if ( query_entries.next() )
|
||||||
{
|
{
|
||||||
// entries should be a list of strings:
|
if ( !query_entries.value( 0 ).isNull() )
|
||||||
QVariant v = parser.parse( query_entries.value( 0 ).toByteArray(), &ok );
|
|
||||||
Q_ASSERT( ok && v.type() == QVariant::List ); //TODO
|
|
||||||
m_guids = v.toStringList();
|
|
||||||
QString inclause = QString( "('%1')" ).arg( m_guids.join( "', '" ) );
|
|
||||||
|
|
||||||
TomahawkSqlQuery query = dbi->newquery();
|
|
||||||
QString sql = QString( "SELECT guid, trackname, artistname, albumname, annotation, "
|
|
||||||
"duration, addedon, addedby, result_hint "
|
|
||||||
"FROM playlist_item "
|
|
||||||
"WHERE guid IN %1" ).arg( inclause );
|
|
||||||
|
|
||||||
query.exec( sql );
|
|
||||||
while ( query.next() )
|
|
||||||
{
|
{
|
||||||
plentry_ptr e( new PlaylistEntry );
|
// entries should be a list of strings:
|
||||||
e->setGuid( query.value( 0 ).toString() );
|
QVariant v = parser.parse( query_entries.value( 0 ).toByteArray(), &ok );
|
||||||
e->setAnnotation( query.value( 4 ).toString() );
|
Q_ASSERT( ok && v.type() == QVariant::List ); //TODO
|
||||||
e->setDuration( query.value( 5 ).toUInt() );
|
|
||||||
e->setLastmodified( 0 ); // TODO e->lastmodified = query.value( 6 ).toInt();
|
|
||||||
const QString resultHint = query.value( 8 ).toString();
|
|
||||||
e->setResultHint( resultHint );
|
|
||||||
|
|
||||||
Tomahawk::query_ptr q = Tomahawk::Query::get( query.value( 2 ).toString(), query.value( 1 ).toString(), query.value( 3 ).toString() );
|
m_guids = v.toStringList();
|
||||||
if ( q.isNull() )
|
QString inclause = QString( "('%1')" ).arg( m_guids.join( "', '" ) );
|
||||||
continue;
|
|
||||||
|
|
||||||
q->setResultHint( resultHint );
|
TomahawkSqlQuery query = dbi->newquery();
|
||||||
if ( resultHint.startsWith( "http" ) )
|
QString sql = QString( "SELECT guid, trackname, artistname, albumname, annotation, "
|
||||||
q->setSaveHTTPResultHint( true );
|
"duration, addedon, addedby, result_hint "
|
||||||
|
"FROM playlist_item "
|
||||||
|
"WHERE guid IN %1" ).arg( inclause );
|
||||||
|
|
||||||
q->setProperty( "annotation", e->annotation() );
|
query.exec( sql );
|
||||||
e->setQuery( q );
|
while ( query.next() )
|
||||||
|
{
|
||||||
|
plentry_ptr e( new PlaylistEntry );
|
||||||
|
e->setGuid( query.value( 0 ).toString() );
|
||||||
|
e->setAnnotation( query.value( 4 ).toString() );
|
||||||
|
e->setDuration( query.value( 5 ).toUInt() );
|
||||||
|
e->setLastmodified( 0 ); // TODO e->lastmodified = query.value( 6 ).toInt();
|
||||||
|
const QString resultHint = query.value( 8 ).toString();
|
||||||
|
e->setResultHint( resultHint );
|
||||||
|
|
||||||
m_entrymap.insert( e->guid(), e );
|
Tomahawk::query_ptr q = Tomahawk::Query::get( query.value( 2 ).toString(), query.value( 1 ).toString(), query.value( 3 ).toString() );
|
||||||
|
if ( q.isNull() )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
q->setResultHint( resultHint );
|
||||||
|
if ( resultHint.startsWith( "http" ) )
|
||||||
|
q->setSaveHTTPResultHint( true );
|
||||||
|
|
||||||
|
q->setProperty( "annotation", e->annotation() );
|
||||||
|
e->setQuery( q );
|
||||||
|
|
||||||
|
m_entrymap.insert( e->guid(), e );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
prevrev = query_entries.value( 4 ).toString();
|
prevrev = query_entries.value( 4 ).toString();
|
||||||
@@ -116,9 +120,12 @@ DatabaseCommand_LoadPlaylistEntries::generateEntries( DatabaseImpl* dbi )
|
|||||||
Q_ASSERT( false );
|
Q_ASSERT( false );
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant v = parser.parse( query_entries_old.value( 0 ).toByteArray(), &ok );
|
if ( !query_entries_old.value( 0 ).isNull() )
|
||||||
Q_ASSERT( ok && v.type() == QVariant::List ); //TODO
|
{
|
||||||
m_oldentries = v.toStringList();
|
QVariant v = parser.parse( query_entries_old.value( 0 ).toByteArray(), &ok );
|
||||||
|
Q_ASSERT( ok && v.type() == QVariant::List ); //TODO
|
||||||
|
m_oldentries = v.toStringList();
|
||||||
|
}
|
||||||
m_islatest = query_entries_old.value( 1 ).toBool();
|
m_islatest = query_entries_old.value( 1 ).toBool();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user