mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-20 04:41:36 +02:00
Implement new js-resolver api
This commit is contained in:
@@ -62,7 +62,7 @@ QtScriptResolverHelper::compress( const QString& data )
|
|||||||
|
|
||||||
|
|
||||||
QVariantMap
|
QVariantMap
|
||||||
QtScriptResolverHelper::resolver()
|
QtScriptResolverHelper::resolverData()
|
||||||
{
|
{
|
||||||
QVariantMap resolver;
|
QVariantMap resolver;
|
||||||
resolver["config"] = m_resolverConfig;
|
resolver["config"] = m_resolverConfig;
|
||||||
@@ -96,18 +96,18 @@ QtScriptResolver::QtScriptResolver( const QString& scriptPath )
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_engine->mainFrame()->setHtml( "<html><body></body></html>" );
|
m_engine->mainFrame()->setHtml( "<html><body></body></html>" );
|
||||||
m_engine->mainFrame()->evaluateJavaScript( scriptFile.readAll() );
|
|
||||||
m_engine->mainFrame()->addToJavaScriptWindowObject( "Tomahawk", m_resolverHelper );
|
m_engine->mainFrame()->addToJavaScriptWindowObject( "Tomahawk", m_resolverHelper );
|
||||||
|
m_engine->mainFrame()->evaluateJavaScript( scriptFile.readAll() );
|
||||||
scriptFile.close();
|
scriptFile.close();
|
||||||
|
|
||||||
QVariantMap m = m_engine->mainFrame()->evaluateJavaScript( "getSettings();" ).toMap();
|
QVariantMap m = resolverSettings();
|
||||||
m_name = m.value( "name" ).toString();
|
m_name = m.value( "name" ).toString();
|
||||||
m_weight = m.value( "weight", 0 ).toUInt();
|
m_weight = m.value( "weight", 0 ).toUInt();
|
||||||
m_timeout = m.value( "timeout", 25 ).toUInt() * 1000;
|
m_timeout = m.value( "timeout", 25 ).toUInt() * 1000;
|
||||||
|
|
||||||
// load config widget and apply settings
|
// load config widget and apply settings
|
||||||
loadUi();
|
loadUi();
|
||||||
QVariantMap config = m_engine->mainFrame()->evaluateJavaScript( "getConfig();" ).toMap();
|
QVariantMap config = resolverUserConfig();
|
||||||
fillDataInWidgets( config );
|
fillDataInWidgets( config );
|
||||||
|
|
||||||
qDebug() << Q_FUNC_INFO << m_name << m_weight << m_timeout;
|
qDebug() << Q_FUNC_INFO << m_name << m_weight << m_timeout;
|
||||||
@@ -139,7 +139,7 @@ QtScriptResolver::resolve( const Tomahawk::query_ptr& query )
|
|||||||
|
|
||||||
if ( !query->isFullTextQuery() )
|
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->id().replace( "'", "\\'" ) )
|
||||||
.arg( query->artist().replace( "'", "\\'" ) )
|
.arg( query->artist().replace( "'", "\\'" ) )
|
||||||
.arg( query->album().replace( "'", "\\'" ) )
|
.arg( query->album().replace( "'", "\\'" ) )
|
||||||
@@ -147,7 +147,7 @@ QtScriptResolver::resolve( const Tomahawk::query_ptr& query )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
eval = QString( "resolve( '%1', '%2', '%3', '%4' );" )
|
eval = QString( "Tomahawk.resolver.instance.resolve( '%1', '%2', '%3', '%4' );" )
|
||||||
.arg( query->id().replace( "'", "\\'" ) )
|
.arg( query->id().replace( "'", "\\'" ) )
|
||||||
.arg( query->fullTextQuery().replace( "'", "\\'" ) )
|
.arg( query->fullTextQuery().replace( "'", "\\'" ) )
|
||||||
.arg( QString() )
|
.arg( QString() )
|
||||||
@@ -219,7 +219,9 @@ QtScriptResolver::loadUi()
|
|||||||
{
|
{
|
||||||
qDebug() << Q_FUNC_INFO;
|
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 compressed = m.value( "compressed", "false" ).toBool();
|
||||||
bool base64 = m.value( "base64", "false" ).toBool();
|
bool base64 = m.value( "base64", "false" ).toBool();
|
||||||
@@ -237,8 +239,6 @@ QtScriptResolver::loadUi()
|
|||||||
|
|
||||||
m_configWidget = QWeakPointer< QWidget >( widgetFromData( uiData, 0 ) );
|
m_configWidget = QWeakPointer< QWidget >( widgetFromData( uiData, 0 ) );
|
||||||
|
|
||||||
m_dataWidgets = m_engine->mainFrame()->evaluateJavaScript( "getDataWidgets();" ).toList();
|
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -260,18 +260,18 @@ QtScriptResolver::saveConfig()
|
|||||||
qDebug() << Q_FUNC_INFO << saveData;
|
qDebug() << Q_FUNC_INFO << saveData;
|
||||||
|
|
||||||
m_resolverHelper->setResolverConfig( saveData.toMap() );
|
m_resolverHelper->setResolverConfig( saveData.toMap() );
|
||||||
m_engine->mainFrame()->evaluateJavaScript( "saveConfig();" );
|
m_engine->mainFrame()->evaluateJavaScript( "Tomahawk.resolver.instance.saveUserConfig();" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QWidget*
|
QWidget*
|
||||||
QtScriptResolver::findWidget(QWidget* widget, const QStringList& widgetPath)
|
QtScriptResolver::findWidget(QWidget* widget, const QStringList& widgetPath)
|
||||||
{
|
{
|
||||||
qDebug() << Q_FUNC_INFO << widget->objectName() << widgetPath;
|
|
||||||
|
|
||||||
if( !widget || !widget->isWidgetType() )
|
if( !widget || !widget->isWidgetType() )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
qDebug() << Q_FUNC_INFO << widget->objectName() << widgetPath;
|
||||||
|
|
||||||
if( widgetPath.isEmpty() )
|
if( widgetPath.isEmpty() )
|
||||||
return widget;
|
return widget;
|
||||||
|
|
||||||
@@ -373,3 +373,17 @@ QtScriptResolver::fillDataInWidgets( const QVariantMap& data )
|
|||||||
setWidgetData( data[ name ], widget, propertyName );
|
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();
|
||||||
|
}
|
||||||
|
@@ -44,7 +44,7 @@ public:
|
|||||||
public slots:
|
public slots:
|
||||||
QString readFile( const QString& fileName );
|
QString readFile( const QString& fileName );
|
||||||
QString compress( const QString& data );
|
QString compress( const QString& data );
|
||||||
QVariantMap resolver();
|
QVariantMap resolverData();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString m_scriptPath;
|
QString m_scriptPath;
|
||||||
@@ -75,7 +75,7 @@ public slots:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void javaScriptConsoleMessage( const QString & message, int lineNumber, const QString & sourceID )
|
virtual void javaScriptConsoleMessage( const QString & message, int lineNumber, const QString & sourceID )
|
||||||
{ qDebug() << "JAVASCRIPT ERROR:" << message << lineNumber << sourceID; }
|
{ qDebug() << "JAVASCRIPT:" << message << lineNumber << sourceID; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QtScriptResolver* m_parent;
|
QtScriptResolver* m_parent;
|
||||||
@@ -112,6 +112,10 @@ private:
|
|||||||
QVariantMap loadDataFromWidgets();
|
QVariantMap loadDataFromWidgets();
|
||||||
void fillDataInWidgets( const QVariantMap& data );
|
void fillDataInWidgets( const QVariantMap& data );
|
||||||
|
|
||||||
|
// encapsulate javascript calls
|
||||||
|
QVariantMap resolverSettings();
|
||||||
|
QVariantMap resolverUserConfig();
|
||||||
|
|
||||||
ScriptEngine* m_engine;
|
ScriptEngine* m_engine;
|
||||||
|
|
||||||
QString m_name;
|
QString m_name;
|
||||||
|
Reference in New Issue
Block a user