mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-07-31 03:10:12 +02:00
* Use native data-types instead of a QVariantMap to store Query / Result related information.
* Don't generate uuids for Queries before we actually need them.
This commit is contained in:
@@ -24,10 +24,10 @@ public:
|
||||
{
|
||||
// ensure a QID is present:
|
||||
QVariantMap m = m_v.toMap();
|
||||
if( !m.contains("qid") )
|
||||
m.insert( "qid", uuid() );
|
||||
|
||||
m_v = m;
|
||||
m_artist = m.value( "artist" ).toString();
|
||||
m_album = m.value( "album" ).toString();
|
||||
m_track = m.value( "track" ).toString();
|
||||
}
|
||||
|
||||
QVariant toVariant() const { return m_v; }
|
||||
@@ -55,9 +55,9 @@ public:
|
||||
return QString( "Query(%1, %2 - %3)" ).arg( id() ).arg( artist() ).arg( track() );
|
||||
}
|
||||
|
||||
QString artist() const { return m_v.toMap().value( "artist" ).toString(); }
|
||||
QString album() const { return m_v.toMap().value( "album" ).toString(); }
|
||||
QString track() const { return m_v.toMap().value( "track" ).toString(); }
|
||||
QString artist() const { return m_artist; }
|
||||
QString album() const { return m_album; }
|
||||
QString track() const { return m_track; }
|
||||
|
||||
signals:
|
||||
void resultsAdded( const QList<Tomahawk::result_ptr>& );
|
||||
@@ -74,11 +74,15 @@ private slots:
|
||||
|
||||
private:
|
||||
mutable QMutex m_mut;
|
||||
QVariant m_v;
|
||||
mutable QVariant m_v;
|
||||
QList< Tomahawk::result_ptr > m_results;
|
||||
bool m_solved;
|
||||
mutable QID m_qid;
|
||||
unsigned int m_lastpipelineweight;
|
||||
|
||||
QString m_artist;
|
||||
QString m_album;
|
||||
QString m_track;
|
||||
};
|
||||
|
||||
}; //ns
|
||||
|
@@ -15,23 +15,23 @@ class Result : public QObject
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit Result( QVariant v, collection_ptr collection );
|
||||
explicit Result( const QVariant& v, const collection_ptr& collection );
|
||||
QVariant toVariant() const { return m_v; }
|
||||
|
||||
float score() const;
|
||||
RID id() const;
|
||||
collection_ptr collection() const { return m_collection; }
|
||||
|
||||
QString artist() const { return m_v.toMap().value( "artist" ).toString(); }
|
||||
QString album() const { return m_v.toMap().value( "album" ).toString(); }
|
||||
QString track() const { return m_v.toMap().value( "track" ).toString(); }
|
||||
QString url() const { return m_v.toMap().value( "url" ).toString(); }
|
||||
QString mimetype() const { return m_v.toMap().value( "mimetype" ).toString(); }
|
||||
QString artist() const { return m_artist; }
|
||||
QString album() const { return m_album; }
|
||||
QString track() const { return m_track; }
|
||||
QString url() const { return m_url; }
|
||||
QString mimetype() const { return m_mimetype; }
|
||||
|
||||
unsigned int duration() const { return m_v.toMap().value( "duration" ).toUInt(); }
|
||||
unsigned int bitrate() const { return m_v.toMap().value( "bitrate" ).toUInt(); }
|
||||
unsigned int size() const { return m_v.toMap().value( "size" ).toUInt(); }
|
||||
unsigned int albumpos() const { return m_v.toMap().value( "albumpos" ).toUInt(); }
|
||||
unsigned int duration() const { return m_duration; }
|
||||
unsigned int bitrate() const { return m_bitrate; }
|
||||
unsigned int size() const { return m_size; }
|
||||
unsigned int albumpos() const { return m_albumpos; }
|
||||
|
||||
// for debug output:
|
||||
QString toString() const
|
||||
@@ -47,6 +47,16 @@ private:
|
||||
QVariant m_v;
|
||||
mutable RID m_rid;
|
||||
collection_ptr m_collection;
|
||||
|
||||
QString m_artist;
|
||||
QString m_album;
|
||||
QString m_track;
|
||||
QString m_url;
|
||||
QString m_mimetype;
|
||||
unsigned int m_duration;
|
||||
unsigned int m_bitrate;
|
||||
unsigned int m_size;
|
||||
unsigned int m_albumpos;
|
||||
};
|
||||
|
||||
}; //ns
|
||||
|
@@ -32,7 +32,7 @@ Query::addResults( const QList< Tomahawk::result_ptr >& newresults )
|
||||
void
|
||||
Query::resultUnavailable()
|
||||
{
|
||||
Result * result = (Result*) sender();
|
||||
Result* result = (Result*) sender();
|
||||
Q_ASSERT( result );
|
||||
|
||||
for(int i = 0; i < m_results.length(); ++i )
|
||||
@@ -83,8 +83,12 @@ QID Query::id() const
|
||||
{
|
||||
if ( m_qid.isEmpty() )
|
||||
{
|
||||
m_qid = m_v.toMap().value( "qid" ).toString();
|
||||
Q_ASSERT( !m_qid.isEmpty() );
|
||||
m_qid = uuid();
|
||||
|
||||
QVariantMap m = m_v.toMap();
|
||||
m.insert( "qid", m_qid );
|
||||
|
||||
m_v = m;
|
||||
}
|
||||
return m_qid;
|
||||
}
|
||||
|
@@ -3,10 +3,23 @@
|
||||
using namespace Tomahawk;
|
||||
|
||||
|
||||
Result::Result( QVariant v, collection_ptr collection )
|
||||
Result::Result( const QVariant& v, const collection_ptr& collection )
|
||||
: m_v( v )
|
||||
, m_collection( collection )
|
||||
{
|
||||
QVariantMap m = m_v.toMap();
|
||||
|
||||
m_artist = m.value( "artist" ).toString();
|
||||
m_album = m.value( "album" ).toString();
|
||||
m_track = m.value( "track" ).toString();
|
||||
m_url = m.value( "url" ).toString();
|
||||
m_mimetype = m.value( "mimetype" ).toString();
|
||||
|
||||
m_duration = m.value( "duration" ).toUInt();
|
||||
m_bitrate = m.value( "bitrate" ).toUInt();
|
||||
m_size = m.value( "size" ).toUInt();
|
||||
m_albumpos = m.value( "albumpos" ).toUInt();
|
||||
|
||||
if ( !m_collection.isNull() )
|
||||
connect( m_collection->source().data(), SIGNAL( offline() ), SIGNAL( becomingUnavailable() ), Qt::QueuedConnection );
|
||||
}
|
||||
|
Reference in New Issue
Block a user