diff --git a/UI/frontend-plugins/frontend-tools/data/locale/en-US.ini b/UI/frontend-plugins/frontend-tools/data/locale/en-US.ini
index 9eefe2c05..b43843591 100644
--- a/UI/frontend-plugins/frontend-tools/data/locale/en-US.ini
+++ b/UI/frontend-plugins/frontend-tools/data/locale/en-US.ini
@@ -32,6 +32,7 @@ AddScripts="Add Scripts"
RemoveScripts="Remove Scripts"
ReloadScripts="Reload Scripts"
LoadedScripts="Loaded Scripts"
+EditScript="Edit Script"
Reload="Reload"
OpenFileLocation="Open file location"
PythonSettings="Python Settings"
diff --git a/UI/frontend-plugins/frontend-tools/forms/scripts.ui b/UI/frontend-plugins/frontend-tools/forms/scripts.ui
index e4c299a6e..4217b90b3 100644
--- a/UI/frontend-plugins/frontend-tools/forms/scripts.ui
+++ b/UI/frontend-plugins/frontend-tools/forms/scripts.ui
@@ -146,6 +146,13 @@
+ -
+
+
+ EditScript
+
+
+
-
diff --git a/UI/frontend-plugins/frontend-tools/scripts.cpp b/UI/frontend-plugins/frontend-tools/scripts.cpp
index cafca8866..0a1fa0ece 100644
--- a/UI/frontend-plugins/frontend-tools/scripts.cpp
+++ b/UI/frontend-plugins/frontend-tools/scripts.cpp
@@ -427,6 +427,16 @@ void ScriptsTool::on_scripts_customContextMenuRequested(const QPoint &pos)
popup.exec(QCursor::pos());
}
+void ScriptsTool::on_editScript_clicked()
+{
+ int row = ui->scripts->currentRow();
+ if (row == -1)
+ return;
+ QUrl url = QUrl::fromLocalFile(
+ ui->scripts->item(row)->data(Qt::UserRole).toString());
+ QDesktopServices::openUrl(url);
+}
+
void ScriptsTool::on_scriptLog_clicked()
{
scriptLogWindow->show();
diff --git a/UI/frontend-plugins/frontend-tools/scripts.hpp b/UI/frontend-plugins/frontend-tools/scripts.hpp
index c511b378e..8d03fc4f1 100644
--- a/UI/frontend-plugins/frontend-tools/scripts.hpp
+++ b/UI/frontend-plugins/frontend-tools/scripts.hpp
@@ -45,6 +45,7 @@ public slots:
void on_addScripts_clicked();
void on_removeScripts_clicked();
void on_reloadScripts_clicked();
+ void on_editScript_clicked();
void on_scriptLog_clicked();
void on_defaults_clicked();