Browse Source

frontend-plugins: Only show script file names in script dialog

Showing the full directory path is sort of unnecessary and makes the
list look pretty unsightly.
jp9000 7 years ago
parent
commit
f09f94b8a8
1 changed files with 17 additions and 5 deletions
  1. 17 5
      UI/frontend-plugins/frontend-tools/scripts.cpp

+ 17 - 5
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<QListWidgetItem *> 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<QListWidgetItem *> 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);