1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-02-24 11:53:09 +01:00

Merge remote-tracking branch 'origin/async'

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

View File

@ -46,7 +46,7 @@
;-----------------------------------------------------------------------------
; 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.
@ -93,7 +93,7 @@ ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll"
!define MUI_ICON ${NSI_PATH}\installer.ico
!define MUI_UNICON ${NSI_PATH}\installer.ico
!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_HEADERIMAGE
!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
build_check:
ReadRegDWORD $R0 HKLM "Software\Tomahawk" "VersionBuild"
IntCmp $R0 ${VER_BUILD} revision_check new_version older_version
revision_check:
ReadRegDWORD $R0 HKLM "Software\Tomahawk" "VersionRevision"
IntCmp $R0 ${REVISION} same_version new_version older_version
IntCmp $R0 ${VER_BUILD} new_version older_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."

View File

@ -311,4 +311,10 @@ Tomahawk.sha256=function(s){
s = Utf8Encode(s);
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;"
QtScriptResolverHelper::QtScriptResolverHelper( const QString& scriptPath, QObject* parent )
QtScriptResolverHelper::QtScriptResolverHelper( const QString& scriptPath, QtScriptResolver* parent )
: QObject( parent )
{
m_scriptPath = scriptPath;
m_resolver = parent;
}
@ -102,7 +103,18 @@ QtScriptResolverHelper::log( const QString& message )
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;
}
@ -244,22 +256,39 @@ QtScriptResolver::resolve( const Tomahawk::query_ptr& query )
.arg( query->fullTextQuery().replace( "'", "\\'" ) );
}
QList< Tomahawk::result_ptr > results;
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;
const QString qid = query->id();
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 )
{
QVariantMap m = rv.toMap();
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->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->setBitrate( m.value( "bitrate" ).toUInt() );
rp->setUrl( m.value( "url" ).toString() );
@ -292,7 +321,7 @@ QtScriptResolver::resolve( const Tomahawk::query_ptr& query )
results << rp;
}
Tomahawk::Pipeline::instance()->reportResults( qid, results );
return results;
}

View File

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