[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/kate/script
From:       Christoph Cullmann <cullmann () kde ! org>
Date:       2009-10-07 11:41:37
Message-ID: 1254915697.771548.14698.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1032247 by cullmann:

factor out the whole api loading into one routine, it will cache the api and the bool \
is the only visible thing to trigger reload

 M  +33 -23    katescript.cpp  
 M  +3 -3      katescript.h  


--- trunk/KDE/kdelibs/kate/script/katescript.cpp #1032246:1032247
@@ -92,14 +92,10 @@
 
 
 bool KateScript::s_scriptingApiLoaded = false;
-QString KateScript::s_katePartApi = QString();
-QString KateScript::s_userApi = QString();
 
 void KateScript::reloadScriptingApi()
 {
   s_scriptingApiLoaded = false;
-  s_katePartApi = QString();
-  s_userApi = QString();
 }
 
 bool KateScript::readFile(const QString& sourceUrl, QString& sourceCode)
@@ -128,12 +124,6 @@
   , m_document(0)
   , m_view(0)
 {
-  // read katepart javascript api
-  if (!s_scriptingApiLoaded) {
-    s_scriptingApiLoaded = true;
-    readFile(KStandardDirs::locate("data", "katepart/script/katepartapi.js"), \
                s_katePartApi);
-    readFile(KStandardDirs::locateLocal("data", "katepart/script/userapi.js"), \
                s_userApi);
-  }
 }
 
 KateScript::~KateScript()
@@ -182,6 +172,36 @@
   return value;
 }
 
+bool KateScript::initApi ()
+{
+  // cache locations
+  static QString s_katePartApi;
+  static QString s_userApi;
+  
+  // read katepart javascript api
+  if (!s_scriptingApiLoaded) {
+    s_scriptingApiLoaded = true;
+    readFile(KStandardDirs::locate("data", "katepart/script/katepartapi.js"), \
s_katePartApi); +    readFile(KStandardDirs::locateLocal("data", \
"katepart/script/userapi.js"), s_userApi); +  }
+  
+  // register kate part scripting api
+  QScriptValue apiObject = m_engine->evaluate(s_katePartApi, "katepartapi.js");
+  if (hasException(apiObject, "katepartapi.js")) {
+    return false;
+  }
+
+  // register user javascript api, optional
+  if (!s_userApi.isEmpty()) {
+    QScriptValue userApiObject = m_engine->evaluate(s_userApi, "userapi.js");
+    if (hasException(userApiObject, "userapi.js")) {
+      return false;
+    }
+  }
+  
+  return true;
+}
+
 bool KateScript::load()
 {
   if(m_loaded)
@@ -201,20 +221,10 @@
   qScriptRegisterMetaType (m_engine, cursorToScriptValue, cursorFromScriptValue);
   qScriptRegisterMetaType (m_engine, rangeToScriptValue, rangeFromScriptValue);
 
-  // register kate part scripting api
-  QScriptValue apiObject = m_engine->evaluate(s_katePartApi, "katepartapi.js");
-  if (hasException(apiObject, "katepartapi.js")) {
+  // init API
+  if (!initApi ())
     return false;
-  }
-
-  // register user javascript api, optional
-  if (!s_userApi.isEmpty()) {
-    QScriptValue userApiObject = m_engine->evaluate(s_userApi, "userapi.js");
-    if (hasException(userApiObject, "userapi.js")) {
-      return false;
-    }
-  }
-
+  
   // register scripts itself
   QScriptValue result = m_engine->evaluate(source, m_url);
   if (hasException(result, m_url)) {
--- trunk/KDE/kdelibs/kate/script/katescript.h #1032246:1032247
@@ -155,6 +155,9 @@
     static bool readFile(const QString& sourceUrl, QString& sourceCode);
 
   private:
+    /** init API, can fail on error in api files */
+    bool initApi ();
+    
     /** Add our custom functions to m_engine when it has been initialised */
     void initEngine();
 
@@ -182,9 +185,6 @@
   private:
     /** True, if the katepartapi.js file is alrady loaded, otherwise false */
     static bool s_scriptingApiLoaded;
-    /** contains the katepart.js file content, acts as cache */
-    static QString s_katePartApi;
-    static QString s_userApi;
 };
 
 //END


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic