1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-01 03:40:16 +02:00

Merge remote-tracking branch 'origin/async'

This commit is contained in:
Christian Muehlhaeuser
2011-08-15 02:01:34 +02:00
4 changed files with 55 additions and 16 deletions

View File

@@ -46,7 +46,7 @@
;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------
; Installer build timestamp. ; Installer build timestamp.
;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------
!define /date BUILD_TIME "built on %Y/%m/%d at %I:%M %p (rev. ${REVISION})" !define /date BUILD_TIME "built on %Y/%m/%d at %I:%M %p"
;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------
; Initial installer setup and definitions. ; Initial installer setup and definitions.
@@ -93,7 +93,7 @@ ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll"
!define MUI_ICON ${NSI_PATH}\installer.ico !define MUI_ICON ${NSI_PATH}\installer.ico
!define MUI_UNICON ${NSI_PATH}\installer.ico !define MUI_UNICON ${NSI_PATH}\installer.ico
!define MUI_WELCOMEFINISHPAGE_BITMAP ${NSI_PATH}\welcome.bmp !define MUI_WELCOMEFINISHPAGE_BITMAP ${NSI_PATH}\welcome.bmp
!define MUI_WELCOMEPAGE_TITLE "@CPACK_PACKAGE_NAME@ ${VERSION} Setup$\r$\nInstaller Build Revision ${REVISION}" !define MUI_WELCOMEPAGE_TITLE "@CPACK_PACKAGE_NAME@ ${VERSION} Setup$\r$\nInstaller"
!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation.$\r$\n$\r$\n$_CLICK" !define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation.$\r$\n$\r$\n$_CLICK"
!define MUI_HEADERIMAGE !define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP ${NSI_PATH}\page_header.bmp !define MUI_HEADERIMAGE_BITMAP ${NSI_PATH}\page_header.bmp
@@ -203,10 +203,7 @@ Function PageReinstall
IntCmp $R0 ${VER_MINOR} build_check new_version older_version IntCmp $R0 ${VER_MINOR} build_check new_version older_version
build_check: build_check:
ReadRegDWORD $R0 HKLM "Software\Tomahawk" "VersionBuild" ReadRegDWORD $R0 HKLM "Software\Tomahawk" "VersionBuild"
IntCmp $R0 ${VER_BUILD} revision_check new_version older_version IntCmp $R0 ${VER_BUILD} new_version older_version
revision_check:
ReadRegDWORD $R0 HKLM "Software\Tomahawk" "VersionRevision"
IntCmp $R0 ${REVISION} same_version new_version older_version
new_version: new_version:
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 1" "Text" "An older version of Tomahawk is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue." !insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 1" "Text" "An older version of Tomahawk is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."

View File

@@ -311,4 +311,10 @@ Tomahawk.sha256=function(s){
s = Utf8Encode(s); s = Utf8Encode(s);
return binb2hex(core_sha256(str2binb(s), s.length * chrsz)); return binb2hex(core_sha256(str2binb(s), s.length * chrsz));
}; };
// some aliases
Tomahawk.setTimeout = window.setTimeout;
Tomahawk.setInterval = window.setInterval;

View File

@@ -35,10 +35,11 @@
#define RESOLVER_LEGACY_CODE2 "var resolver = Tomahawk.resolver.instance ? Tomahawk.resolver.instance : window;" #define RESOLVER_LEGACY_CODE2 "var resolver = Tomahawk.resolver.instance ? Tomahawk.resolver.instance : window;"
QtScriptResolverHelper::QtScriptResolverHelper( const QString& scriptPath, QObject* parent ) QtScriptResolverHelper::QtScriptResolverHelper( const QString& scriptPath, QtScriptResolver* parent )
: QObject( parent ) : QObject( parent )
{ {
m_scriptPath = scriptPath; m_scriptPath = scriptPath;
m_resolver = parent;
} }
@@ -102,7 +103,18 @@ QtScriptResolverHelper::log( const QString& message )
void void
QtScriptResolverHelper::setResolverConfig( QVariantMap config ) QtScriptResolverHelper::addTrackResults( const QVariantMap& results )
{
QList< Tomahawk::result_ptr > tracks = m_resolver->parseResultVariantList( results.value("results").toList() );
QString qid = results.value("qid").toString();
Tomahawk::Pipeline::instance()->reportResults( qid, tracks );
}
void
QtScriptResolverHelper::setResolverConfig( const QVariantMap& config )
{ {
m_resolverConfig = config; m_resolverConfig = config;
} }
@@ -244,22 +256,39 @@ QtScriptResolver::resolve( const Tomahawk::query_ptr& query )
.arg( query->fullTextQuery().replace( "'", "\\'" ) ); .arg( query->fullTextQuery().replace( "'", "\\'" ) );
} }
QList< Tomahawk::result_ptr > results;
QVariantMap m = m_engine->mainFrame()->evaluateJavaScript( eval ).toMap(); QVariantMap m = m_engine->mainFrame()->evaluateJavaScript( eval ).toMap();
if( m.isEmpty() )
{
// if the resolver doesn't return anything, async api is used
return;
}
return;
qDebug() << "JavaScript Result:" << m; qDebug() << "JavaScript Result:" << m;
const QString qid = query->id(); const QString qid = query->id();
const QVariantList reslist = m.value( "results" ).toList(); const QVariantList reslist = m.value( "results" ).toList();
QList< Tomahawk::result_ptr > results = parseResultVariantList( reslist );
Tomahawk::Pipeline::instance()->reportResults( qid, results );
}
QList< Tomahawk::result_ptr >
QtScriptResolver::parseResultVariantList( const QVariantList& reslist )
{
QList< Tomahawk::result_ptr > results;
foreach( const QVariant& rv, reslist ) foreach( const QVariant& rv, reslist )
{ {
QVariantMap m = rv.toMap(); QVariantMap m = rv.toMap();
Tomahawk::result_ptr rp( new Tomahawk::Result() ); Tomahawk::result_ptr rp( new Tomahawk::Result() );
Tomahawk::artist_ptr ap = Tomahawk::Artist::get( 0, m.value( "artist" ).toString() ); Tomahawk::artist_ptr ap = Tomahawk::Artist::get( m.value( "artist" ).toString(), true );
rp->setArtist( ap ); rp->setArtist( ap );
rp->setAlbum( Tomahawk::Album::get( 0, m.value( "album" ).toString(), ap ) ); rp->setAlbum( Tomahawk::Album::get( ap, m.value( "album" ).toString(), true ) );
rp->setTrack( m.value( "track" ).toString() ); rp->setTrack( m.value( "track" ).toString() );
rp->setBitrate( m.value( "bitrate" ).toUInt() ); rp->setBitrate( m.value( "bitrate" ).toUInt() );
rp->setUrl( m.value( "url" ).toString() ); rp->setUrl( m.value( "url" ).toString() );
@@ -292,7 +321,7 @@ QtScriptResolver::resolve( const Tomahawk::query_ptr& query )
results << rp; results << rp;
} }
Tomahawk::Pipeline::instance()->reportResults( qid, results ); return results;
} }

View File

@@ -38,8 +38,8 @@ class QtScriptResolverHelper : public QObject
Q_OBJECT Q_OBJECT
public: public:
QtScriptResolverHelper( const QString& scriptPath, QObject* parent ); QtScriptResolverHelper( const QString& scriptPath, QtScriptResolver* parent );
void setResolverConfig( QVariantMap config ); void setResolverConfig( const QVariantMap& config );
public slots: public slots:
QByteArray readRaw( const QString& fileName ); QByteArray readRaw( const QString& fileName );
@@ -52,9 +52,12 @@ public slots:
void log( const QString& message ); void log( const QString& message );
bool fakeEnv() { return false; } bool fakeEnv() { return false; }
void addTrackResults( const QVariantMap& results );
private: private:
QString m_scriptPath; QString m_scriptPath;
QVariantMap m_resolverConfig; QVariantMap m_resolverConfig;
QtScriptResolver* m_resolver;
}; };
class ScriptEngine : public QWebPage class ScriptEngine : public QWebPage
@@ -97,6 +100,8 @@ class QtScriptResolver : public Tomahawk::ExternalResolver
{ {
Q_OBJECT Q_OBJECT
friend class QtScriptResolverHelper;
public: public:
explicit QtScriptResolver( const QString& scriptPath ); explicit QtScriptResolver( const QString& scriptPath );
virtual ~QtScriptResolver(); virtual ~QtScriptResolver();
@@ -133,6 +138,8 @@ private:
QVariantMap resolverUserConfig(); QVariantMap resolverUserConfig();
QVariantMap resolverInit(); QVariantMap resolverInit();
QList< Tomahawk::result_ptr > parseResultVariantList( const QVariantList& reslist );
ScriptEngine* m_engine; ScriptEngine* m_engine;
QString m_name; QString m_name;