Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/libinputactions/config/ConfigIssue.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ QString UnusedPropertyConfigIssue::message() const

UncaughtScriptErrorConfigIssue::UncaughtScriptErrorConfigIssue(const Node *node, QJSValue error)
: ConfigIssue(node)
, m_message(g_scriptingEngine->errorToString(error))
, m_message(ScriptingEngine::errorToString(error))
{
}

Expand All @@ -209,7 +209,7 @@ QString MissingRequiredPropertyConfigException::message() const

UncaughtScriptErrorConfigException::UncaughtScriptErrorConfigException(const Node *node, QJSValue error)
: ConfigException(node)
, m_message(g_scriptingEngine->errorToString(error))
, m_message(ScriptingEngine::errorToString(error))
{
}

Expand Down
4 changes: 2 additions & 2 deletions src/libinputactions/config/ConfigLoader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -154,8 +154,8 @@ ConfigData ConfigLoader::createConfig(const QString &raw)
}

const auto rootDirectory = file.dir().absolutePath();
const auto defaultFuncResult = g_scriptingEngine->call(defaultFunc,
{g_scriptingEngine->ensureEngine().newQObject(new Script(rootDirectory))});
const auto defaultFuncResult = ScriptingEngine::call(defaultFunc,
{g_scriptingEngine->ensureEngine().newQObject(new Script(rootDirectory))});
if (defaultFuncResult.isError()) {
throw UncaughtScriptErrorConfigException(fileNode, defaultFuncResult);
}
Expand Down
2 changes: 1 addition & 1 deletion src/libinputactions/scripting/JSFunctionAction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ JSFunctionAction::JSFunctionAction(QJSValue function, std::shared_ptr<const Node

void JSFunctionAction::doExecute(const ActionExecutionArguments &args)
{
const auto result = g_scriptingEngine->call(m_function);
const auto result = ScriptingEngine::call(m_function);
if (result.isError() && m_sourceNode) {
g_configIssueManager->addIssue(UncaughtScriptErrorConfigIssue(m_sourceNode.get(), result));
}
Expand Down
2 changes: 1 addition & 1 deletion src/libinputactions/scripting/JSFunctionCondition.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ JSFunctionCondition::JSFunctionCondition(QJSValue function, std::shared_ptr<cons

bool JSFunctionCondition::doEvaluate(const ConditionEvaluationArguments &arguments)
{
const auto result = g_scriptingEngine->call(m_function);
const auto result = ScriptingEngine::call(m_function);
if (result.isError() && m_sourceNode) {
g_configIssueManager->addIssue(UncaughtScriptErrorConfigIssue(m_sourceNode.get(), result));
return false;
Expand Down
4 changes: 2 additions & 2 deletions src/libinputactions/scripting/Promise.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ void Promise::fulfill() const
QThreadHelpers::mainThread(),
[this]() {
if (m_fulfill.isCallable()) {
m_engine->call(m_fulfill);
ScriptingEngine::call(m_fulfill);
}
},
true);
Expand All @@ -54,7 +54,7 @@ void Promise::reject(const QString &errorMessage) const
void Promise::reject(const QJSValue &error) const
{
if (m_reject.isCallable()) {
m_engine->call(m_reject, {error});
ScriptingEngine::call(m_reject, {error});
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/libinputactions/scripting/Promise.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ class Promise
QThreadHelpers::mainThread(),
[this, value = std::move(value)]() {
if (m_fulfill.isCallable()) {
m_engine->call(m_fulfill, {m_engine->ensureEngine().toScriptValue(value)});
ScriptingEngine::call(m_fulfill, {m_engine->ensureEngine().toScriptValue(value)});
}
},
true);
Expand Down
6 changes: 3 additions & 3 deletions src/libinputactions/scripting/ScriptingEngine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ QJSValue ScriptingEngine::importModule(const QString &fileName)
return result;
}

QJSValue ScriptingEngine::call(const QJSValue &function, const QJSValueList &args) const
QJSValue ScriptingEngine::call(const QJSValue &function, const QJSValueList &args)
{
const auto result = function.call(args);
if (result.isError()) {
Expand All @@ -204,7 +204,7 @@ QJSValue ScriptingEngine::call(const QJSValue &function, const QJSValueList &arg
return result;
}

QString ScriptingEngine::errorToString(const QJSValue &error) const
QString ScriptingEngine::errorToString(const QJSValue &error)
{
const auto name = error.property("name").toString();
const auto message = error.property("message").toString();
Expand All @@ -218,7 +218,7 @@ QString ScriptingEngine::errorToString(const QJSValue &error) const
return QString("%1: %2\nFile: %3\nLine: %4\nStack:\n%5\n").arg(name, message, file, QString::number(lineNumber), QStringHelpers::indented(stack, 4));
}

void ScriptingEngine::logError(const QJSValue &error) const
void ScriptingEngine::logError(const QJSValue &error)
{
qCCritical(INPUTACTIONS_SCRIPTING).nospace().noquote() << "Uncaught script error\n" << errorToString(error);
}
Expand Down
16 changes: 8 additions & 8 deletions src/libinputactions/scripting/ScriptingEngine.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,14 +61,6 @@ class ScriptingEngine : public QObject
*/
QJSValue importModule(const QString &fileName);

/**
* Same as QJSValue::call but with error logging.
*/
QJSValue call(const QJSValue &function, const QJSValueList &args = {}) const;

QString errorToString(const QJSValue &error) const;
void logError(const QJSValue &error) const;

template<typename TReturn, typename... TArgs, typename TFunction>
QJSValue newFunction(TFunction &&function)
{
Expand All @@ -91,6 +83,14 @@ class ScriptingEngine : public QObject
*/
QJSEngine &ensureEngine();

/**
* Same as QJSValue::call but with error logging.
*/
static QJSValue call(const QJSValue &function, const QJSValueList &args = {});

static QString errorToString(const QJSValue &error);
static void logError(const QJSValue &error);

static inline bool disabled = false; // temporary

private slots:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ VariableWrapper *VariableRegistryWrapper::registerComputedVariable(const QString
}

const auto getterWrapper = [this, name, type, getter = std::move(getter)](QVariant &value) {
const auto returnedValue = m_engine.call(getter);
const auto returnedValue = ScriptingEngine::call(getter);
const auto variant = jsValueToVariant(returnedValue, type);

if (!variant) {
Expand Down