diff --git a/UI/frontend-plugins/frontend-tools/forms/scripts.ui b/UI/frontend-plugins/frontend-tools/forms/scripts.ui index 0ac1576be..4625044b5 100644 --- a/UI/frontend-plugins/frontend-tools/forms/scripts.ui +++ b/UI/frontend-plugins/frontend-tools/forms/scripts.ui @@ -136,6 +136,13 @@ + + + + Defaults + + + diff --git a/UI/frontend-plugins/frontend-tools/scripts.cpp b/UI/frontend-plugins/frontend-tools/scripts.cpp index ede1fa42e..f8c3b9e46 100644 --- a/UI/frontend-plugins/frontend-tools/scripts.cpp +++ b/UI/frontend-plugins/frontend-tools/scripts.cpp @@ -255,6 +255,22 @@ void ScriptsTool::RefreshLists() } } +void ScriptsTool::SetScriptDefaults(const char *path) +{ + for (OBSScript &script : scriptData->scripts) { + const char *script_path = obs_script_get_path(script); + if (strcmp(script_path, path) == 0) { + obs_data_t *settings = obs_script_get_settings(script); + obs_data_clear(settings); + obs_data_release(settings); + + obs_script_update(script, nullptr); + on_reloadScripts_clicked(); + break; + } + } +} + void ScriptsTool::on_close_clicked() { close(); @@ -433,6 +449,16 @@ void ScriptsTool::on_scripts_currentRowChanged(int row) ui->description->setText(obs_script_get_description(script)); } +void ScriptsTool::on_defaults_clicked() +{ + QListWidgetItem *item = ui->scripts->currentItem(); + if (!item) + return; + + SetScriptDefaults( + item->data(Qt::UserRole).toString().toUtf8().constData()); +} + /* ----------------------------------------------------------------- */ extern "C" void FreeScripts() diff --git a/UI/frontend-plugins/frontend-tools/scripts.hpp b/UI/frontend-plugins/frontend-tools/scripts.hpp index e6e5560b3..dd7d18b27 100644 --- a/UI/frontend-plugins/frontend-tools/scripts.hpp +++ b/UI/frontend-plugins/frontend-tools/scripts.hpp @@ -37,6 +37,7 @@ public: void RemoveScript(const char *path); void ReloadScript(const char *path); void RefreshLists(); + void SetScriptDefaults(const char *path); public slots: void on_close_clicked(); @@ -45,6 +46,7 @@ public slots: void on_removeScripts_clicked(); void on_reloadScripts_clicked(); void on_scriptLog_clicked(); + void on_defaults_clicked(); void on_scripts_currentRowChanged(int row);