From 903617fd50cf1cbf4c65d2d07914b6e26b289971 Mon Sep 17 00:00:00 2001 From: Dominik Schmidt Date: Fri, 24 Jun 2011 08:12:43 +0200 Subject: [PATCH] Add Tomahawk object to resolver scope, currently offers a readFile method --- src/resolvers/qtscriptresolver.cpp | 25 +++++++++++++++++++++++++ src/resolvers/qtscriptresolver.h | 14 ++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/src/resolvers/qtscriptresolver.cpp b/src/resolvers/qtscriptresolver.cpp index a069ab5cf..a32466245 100644 --- a/src/resolvers/qtscriptresolver.cpp +++ b/src/resolvers/qtscriptresolver.cpp @@ -24,6 +24,30 @@ #include "sourcelist.h" #include "utils/tomahawkutils.h" +QtScriptResolverHelper::QtScriptResolverHelper( const QString& scriptPath, QObject* parent ): QObject(parent) +{ + m_scriptPath = scriptPath; +} + +QString +QtScriptResolverHelper::readFile( const QString& fileName ) +{ + QString path = QFileInfo( m_scriptPath ).absolutePath(); + // remove directories + QString cleanedFileName = QFileInfo( fileName ).fileName(); + + QString absoluteFilePath = path.append( "/" ).append( cleanedFileName ); + + QFile file( absoluteFilePath ); + if( !file.exists() ) + { + return QString(); + } + + file.open( QIODevice::ReadOnly ); + return file.readAll(); +} + QtScriptResolver::QtScriptResolver( const QString& scriptPath ) : Tomahawk::ExternalResolver( scriptPath ) @@ -43,6 +67,7 @@ QtScriptResolver::QtScriptResolver( const QString& scriptPath ) m_engine->mainFrame()->setHtml( "" ); m_engine->mainFrame()->evaluateJavaScript( scriptFile.readAll() ); + m_engine->mainFrame()->addToJavaScriptWindowObject( "Tomahawk", new QtScriptResolverHelper( scriptPath, this ) ); scriptFile.close(); QVariantMap m = m_engine->mainFrame()->evaluateJavaScript( "getSettings();" ).toMap(); diff --git a/src/resolvers/qtscriptresolver.h b/src/resolvers/qtscriptresolver.h index 51d457c1b..02c7f096f 100644 --- a/src/resolvers/qtscriptresolver.h +++ b/src/resolvers/qtscriptresolver.h @@ -33,6 +33,20 @@ class QtScriptResolver; +class QtScriptResolverHelper : public QObject +{ + Q_OBJECT + +public: + QtScriptResolverHelper(const QString& scriptPath, QObject* parent ); + +public slots: + QString readFile(const QString& fileName); + +private: + QString m_scriptPath; +}; + class ScriptEngine : public QWebPage { Q_OBJECT