Improve error message when failing to find API scripts

This commit is contained in:
GriffinR 2025-08-12 16:51:43 -04:00
parent 4a12dd7f30
commit f47fc02b82
2 changed files with 11 additions and 7 deletions

View File

@ -81,7 +81,7 @@ private:
QMap<QString, const QImage*> imageCache;
ScriptUtility *scriptUtility;
void loadModules(QStringList moduleFiles);
void loadModules(const QStringList &moduleFiles);
void invokeCallback(CallbackType type, QJSValueList args);
};

View File

@ -58,13 +58,17 @@ Scripting::~Scripting() {
delete this->scriptUtility;
}
void Scripting::loadModules(QStringList moduleFiles) {
for (QString filepath : moduleFiles) {
void Scripting::loadModules(const QStringList &moduleFiles) {
for (const auto &filepath : moduleFiles) {
if (filepath.isEmpty()) continue;
QJSValue module;
QString validPath = Project::getExistingFilepath(filepath);
if (!validPath.isEmpty()) filepath = validPath; // Otherwise allow it to fail with the original path
QJSValue module = this->engine->importModule(filepath);
if (tryErrorJS(module)) {
if (validPath.isEmpty()) {
logError(QString("Failed to find script file '%1'.").arg(filepath));
} else {
module = this->engine->importModule(validPath);
}
if (validPath.isEmpty() || tryErrorJS(module)) {
QMessageBox messageBox(this->mainWindow);
messageBox.setText("Failed to load script");
messageBox.setInformativeText(QString("An error occurred while loading custom script file '%1'").arg(filepath));