0
0
mirror of https://github.com/fralx/LimeReport.git synced 2025-11-25 08:28:06 +03:00

QJSEngine -> QQmlEngine

This commit is contained in:
Arin Alexander
2017-02-11 00:21:03 +03:00
parent c37a310918
commit 7406789cbb
5 changed files with 247 additions and 132 deletions

View File

@@ -167,17 +167,29 @@ void ReportRender::setScriptContext(ScriptEngineContext* scriptContext)
bool ReportRender::runInitScript(){
if (m_scriptEngineContext){
QScriptEngine* engine = ScriptEngineManager::instance().scriptEngine();
ScriptEngineType* engine = ScriptEngineManager::instance().scriptEngine();
#ifndef USE_QJSENGINE
engine->pushContext();
QScriptValue res = engine->evaluate(m_scriptEngineContext->initScript());
#endif
ScriptValueType res = engine->evaluate(m_scriptEngineContext->initScript());
if (res.isBool()) return res.toBool();
#ifdef USE_QJSENGINE
if (res.isError()){
QMessageBox::critical(0,tr("Error"),
QString("Line %1: %2 ").arg(res.property("lineNumber").toString())
.arg(res.toString())
);
return false;
}
#else
if (engine->hasUncaughtException()) {
QMessageBox::critical(0,tr("Error"),
QString("Line %1: %2 ").arg(engine->uncaughtExceptionLineNumber())
.arg(engine->uncaughtException().toString())
);
return false;
}
}
#endif
}
return true;
}
@@ -269,8 +281,9 @@ void ReportRender::renderPage(PageDesignIntf* patternPage)
renderBand(tearOffBand, 0, StartNewPageAsNeeded);
savePage(true);
#ifndef USE_QJSENGINE
ScriptEngineManager::instance().scriptEngine()->popContext();
#endif
}
}
@@ -1262,18 +1275,26 @@ void ReportRender::baseDesignIntfToScript(BaseDesignIntf *item)
if (item->metaObject()->indexOfSignal("afterRender()")!=-1)
item->disconnect(SIGNAL(afterRender()));
QScriptEngine* engine = ScriptEngineManager::instance().scriptEngine();
QScriptValue sItem = engine->globalObject().property(item->patternName());
ScriptEngineType* engine = ScriptEngineManager::instance().scriptEngine();
#ifdef USE_QJSENGINE
//sItem = engine->newQObject(item);
ScriptValueType sItem = getCppOwnedJSValue(*engine, item);
engine->globalObject().setProperty(item->patternName(), sItem);
#else
ScriptValueType sItem = engine->globalObject().property(item->patternName());
if (sItem.isValid()){
engine->newQObject(sItem, item);
} else {
sItem = engine->newQObject(item);
engine->globalObject().setProperty(item->patternName(),sItem);
}
#endif
foreach(BaseDesignIntf* child, item->childBaseItems()){
baseDesignIntfToScript(child);
}
}
}
}