[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