diff --git a/UI/frontend-plugins/frontend-tools/scripts.cpp b/UI/frontend-plugins/frontend-tools/scripts.cpp index 00da30790..e2d4a23e0 100644 --- a/UI/frontend-plugins/frontend-tools/scripts.cpp +++ b/UI/frontend-plugins/frontend-tools/scripts.cpp @@ -239,8 +239,12 @@ void ScriptsTool::RefreshLists() ui->scripts->clear(); for (OBSScript &script : scriptData->scripts) { + const char *script_file = obs_script_get_file(script); const char *script_path = obs_script_get_path(script); - ui->scripts->addItem(script_path); + + QListWidgetItem *item = new QListWidgetItem(script_file); + item->setData(Qt::UserRole, QString(script_path)); + ui->scripts->addItem(item); } } @@ -305,8 +309,13 @@ void ScriptsTool::on_addScripts_clicked() obs_script_t *script = obs_script_create(path, NULL); if (script) { + const char *script_file = obs_script_get_file(script); + scriptData->scripts.emplace_back(script); - ui->scripts->addItem(file); + + QListWidgetItem *item = new QListWidgetItem(script_file); + item->setData(Qt::UserRole, QString(file)); + ui->scripts->addItem(item); } } } @@ -316,7 +325,8 @@ void ScriptsTool::on_removeScripts_clicked() QList items = ui->scripts->selectedItems(); for (QListWidgetItem *item : items) - RemoveScript(item->text().toUtf8().constData()); + RemoveScript(item->data(Qt::UserRole).toString() + .toUtf8().constData()); RefreshLists(); } @@ -324,7 +334,8 @@ void ScriptsTool::on_reloadScripts_clicked() { QList items = ui->scripts->selectedItems(); for (QListWidgetItem *item : items) - ReloadScript(item->text().toUtf8().constData()); + ReloadScript(item->data(Qt::UserRole).toString() + .toUtf8().constData()); on_scripts_currentRowChanged(ui->scripts->currentRow()); } @@ -383,7 +394,8 @@ void ScriptsTool::on_scripts_currentRowChanged(int row) return; } - QByteArray array = ui->scripts->item(row)->text().toUtf8(); + QByteArray array = ui->scripts->item(row)->data(Qt::UserRole) + .toString().toUtf8(); const char *path = array.constData(); obs_script_t *script = scriptData->FindScript(path);