MCPcopy Create free account
hub / github.com/altairwei/WizNotePlus / executeModuleScript

Method executeModuleScript

src/jsplugin/JSPluginManager.cpp:352–386  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

350}
351
352void JSPluginManager::executeModuleScript(JSPluginModule *moduleData)
353{
354 QString scriptFile = moduleData->spec()->scriptFileName();
355 QString scriptContent;
356 if (!WizLoadUnicodeTextFromFile(scriptFile, scriptContent)) {
357 qWarning() << tr("Can't read script file: ") + scriptFile;
358 return;
359 }
360
361 QJSEngine jsEngine;
362 jsEngine.installExtensions(QJSEngine::AllExtensions);
363 jsEngine.globalObject().setProperty("global", jsEngine.globalObject());
364
365 WizWebEngineInjectObjectCollection objects = {
366 {"JSPlugin", moduleData->parentPlugin()},
367 {"JSPluginModule", moduleData},
368 {"WizExplorerApp", m_mainWindow->publicAPIsObject()}
369 };
370
371 auto i = objects.constBegin();
372 while (i != objects.constEnd()) {
373 QQmlEngine::setObjectOwnership(i.value(), QQmlEngine::CppOwnership);
374 jsEngine.globalObject().setProperty(i.key(), jsEngine.newQObject(i.value()));
375 ++i;
376 }
377
378 QJSValue result = jsEngine.evaluate(scriptContent, scriptFile);
379
380 if (result.isError())
381 QMessageBox::critical(
382 nullptr, "QJSEngine Error",
383 QString("Uncaught exception at line %1:\n%2")
384 .arg(result.property("lineNumber").toInt())
385 .arg(result.toString()));
386}

Callers

nothing calls this directly

Calls 9

scriptFileNameMethod · 0.80
setPropertyMethod · 0.80
parentPluginMethod · 0.80
QStringClass · 0.50
specMethod · 0.45
publicAPIsObjectMethod · 0.45
keyMethod · 0.45
toStringMethod · 0.45

Tested by

no test coverage detected