From 5d21dded5c1eb68ffa349cff79828a28359cb084 Mon Sep 17 00:00:00 2001 From: Dominik Schmidt Date: Sun, 26 Jun 2011 19:20:55 +0200 Subject: [PATCH] Implement new js-resolver api --- src/resolvers/qtscriptresolver.cpp | 38 ++++++++++++++++++++---------- src/resolvers/qtscriptresolver.h | 8 +++++-- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/src/resolvers/qtscriptresolver.cpp b/src/resolvers/qtscriptresolver.cpp index 0f73d8f2b..5e9694d97 100644 --- a/src/resolvers/qtscriptresolver.cpp +++ b/src/resolvers/qtscriptresolver.cpp @@ -62,7 +62,7 @@ QtScriptResolverHelper::compress( const QString& data ) QVariantMap -QtScriptResolverHelper::resolver() +QtScriptResolverHelper::resolverData() { QVariantMap resolver; resolver["config"] = m_resolverConfig; @@ -96,18 +96,18 @@ QtScriptResolver::QtScriptResolver( const QString& scriptPath ) } m_engine->mainFrame()->setHtml( "" ); - m_engine->mainFrame()->evaluateJavaScript( scriptFile.readAll() ); m_engine->mainFrame()->addToJavaScriptWindowObject( "Tomahawk", m_resolverHelper ); + m_engine->mainFrame()->evaluateJavaScript( scriptFile.readAll() ); scriptFile.close(); - QVariantMap m = m_engine->mainFrame()->evaluateJavaScript( "getSettings();" ).toMap(); + QVariantMap m = resolverSettings(); m_name = m.value( "name" ).toString(); m_weight = m.value( "weight", 0 ).toUInt(); m_timeout = m.value( "timeout", 25 ).toUInt() * 1000; // load config widget and apply settings loadUi(); - QVariantMap config = m_engine->mainFrame()->evaluateJavaScript( "getConfig();" ).toMap(); + QVariantMap config = resolverUserConfig(); fillDataInWidgets( config ); qDebug() << Q_FUNC_INFO << m_name << m_weight << m_timeout; @@ -139,7 +139,7 @@ QtScriptResolver::resolve( const Tomahawk::query_ptr& query ) if ( !query->isFullTextQuery() ) { - eval = QString( "resolve( '%1', '%2', '%3', '%4' );" ) + eval = QString( "Tomahawk.resolver.instance.resolve( '%1', '%2', '%3', '%4' );" ) .arg( query->id().replace( "'", "\\'" ) ) .arg( query->artist().replace( "'", "\\'" ) ) .arg( query->album().replace( "'", "\\'" ) ) @@ -147,7 +147,7 @@ QtScriptResolver::resolve( const Tomahawk::query_ptr& query ) } else { - eval = QString( "resolve( '%1', '%2', '%3', '%4' );" ) + eval = QString( "Tomahawk.resolver.instance.resolve( '%1', '%2', '%3', '%4' );" ) .arg( query->id().replace( "'", "\\'" ) ) .arg( query->fullTextQuery().replace( "'", "\\'" ) ) .arg( QString() ) @@ -219,7 +219,9 @@ QtScriptResolver::loadUi() { qDebug() << Q_FUNC_INFO; - QVariantMap m = m_engine->mainFrame()->evaluateJavaScript( "getConfigUi();" ).toMap(); + QVariantMap m = m_engine->mainFrame()->evaluateJavaScript( "Tomahawk.resolver.instance.getConfigUi();" ).toMap(); + m_dataWidgets = m["fields"].toList(); + bool compressed = m.value( "compressed", "false" ).toBool(); bool base64 = m.value( "base64", "false" ).toBool(); @@ -237,8 +239,6 @@ QtScriptResolver::loadUi() m_configWidget = QWeakPointer< QWidget >( widgetFromData( uiData, 0 ) ); - m_dataWidgets = m_engine->mainFrame()->evaluateJavaScript( "getDataWidgets();" ).toList(); - emit changed(); } @@ -260,18 +260,18 @@ QtScriptResolver::saveConfig() qDebug() << Q_FUNC_INFO << saveData; m_resolverHelper->setResolverConfig( saveData.toMap() ); - m_engine->mainFrame()->evaluateJavaScript( "saveConfig();" ); + m_engine->mainFrame()->evaluateJavaScript( "Tomahawk.resolver.instance.saveUserConfig();" ); } QWidget* QtScriptResolver::findWidget(QWidget* widget, const QStringList& widgetPath) { - qDebug() << Q_FUNC_INFO << widget->objectName() << widgetPath; - if( !widget || !widget->isWidgetType() ) return 0; + qDebug() << Q_FUNC_INFO << widget->objectName() << widgetPath; + if( widgetPath.isEmpty() ) return widget; @@ -373,3 +373,17 @@ QtScriptResolver::fillDataInWidgets( const QVariantMap& data ) setWidgetData( data[ name ], widget, propertyName ); } } + + +QVariantMap +QtScriptResolver::resolverSettings() +{ + return m_engine->mainFrame()->evaluateJavaScript( "Tomahawk.resolver.instance.getSettings();" ).toMap(); +} + + +QVariantMap +QtScriptResolver::resolverUserConfig() +{ + return m_engine->mainFrame()->evaluateJavaScript( "Tomahawk.resolver.instance.getUserConfig();" ).toMap(); +} diff --git a/src/resolvers/qtscriptresolver.h b/src/resolvers/qtscriptresolver.h index 7e7966f36..94994a954 100644 --- a/src/resolvers/qtscriptresolver.h +++ b/src/resolvers/qtscriptresolver.h @@ -44,7 +44,7 @@ public: public slots: QString readFile( const QString& fileName ); QString compress( const QString& data ); - QVariantMap resolver(); + QVariantMap resolverData(); private: QString m_scriptPath; @@ -75,7 +75,7 @@ public slots: protected: virtual void javaScriptConsoleMessage( const QString & message, int lineNumber, const QString & sourceID ) - { qDebug() << "JAVASCRIPT ERROR:" << message << lineNumber << sourceID; } + { qDebug() << "JAVASCRIPT:" << message << lineNumber << sourceID; } private: QtScriptResolver* m_parent; @@ -112,6 +112,10 @@ private: QVariantMap loadDataFromWidgets(); void fillDataInWidgets( const QVariantMap& data ); + // encapsulate javascript calls + QVariantMap resolverSettings(); + QVariantMap resolverUserConfig(); + ScriptEngine* m_engine; QString m_name;