提交 55dc235d 编写于 作者: J jp9000

UI: Add ability to add directories to editable lists

上级 9948eee6
......@@ -220,7 +220,9 @@ Basic.PropertiesWindow.ConfirmTitle="Settings Changed"
Basic.PropertiesWindow.Confirm="There are unsaved changes. Do you want to keep them?"
Basic.PropertiesWindow.NoProperties="No properties available"
Basic.PropertiesWindow.AddFiles="Add Files"
Basic.PropertiesWindow.AddDir="Add Directory"
Basic.PropertiesWindow.AddURL="Add Path/URL"
Basic.PropertiesWindow.AddEditableListDir="Add directory to '%1'"
Basic.PropertiesWindow.AddEditableListFiles="Add files to '%1'"
Basic.PropertiesWindow.AddEditableListEntry="Add entry to '%1'"
Basic.PropertiesWindow.EditEditableListEntry="Edit entry from '%1'"
......
......@@ -1772,10 +1772,6 @@ void WidgetInfo::EditListAdd()
if (type == OBS_EDITABLE_LIST_TYPE_STRINGS) {
EditListAddText();
return;
} else if (type == OBS_EDITABLE_LIST_TYPE_FILES) {
EditListAddFiles();
return;
}
/* Files and URLs */
......@@ -1788,11 +1784,19 @@ void WidgetInfo::EditListAdd()
this, &WidgetInfo::EditListAddFiles);
popup.addAction(action);
action = new QAction(QTStr("Basic.PropertiesWindow.AddURL"), this);
action = new QAction(QTStr("Basic.PropertiesWindow.AddDir"), this);
connect(action, &QAction::triggered,
this, &WidgetInfo::EditListAddText);
this, &WidgetInfo::EditListAddDir);
popup.addAction(action);
if (type == OBS_EDITABLE_LIST_TYPE_FILES_AND_URLS) {
action = new QAction(QTStr("Basic.PropertiesWindow.AddURL"),
this);
connect(action, &QAction::triggered,
this, &WidgetInfo::EditListAddText);
popup.addAction(action);
}
popup.exec(QCursor::pos());
}
......@@ -1838,6 +1842,26 @@ void WidgetInfo::EditListAddFiles()
EditableListChanged();
}
void WidgetInfo::EditListAddDir()
{
QListWidget *list = reinterpret_cast<QListWidget*>(widget);
const char *desc = obs_property_description(property);
const char *default_path =
obs_property_editable_list_default_path(property);
QString title = QTStr("Basic.PropertiesWindow.AddEditableListDir")
.arg(QT_UTF8(desc));
QString dir = QFileDialog::getExistingDirectory(
App()->GetMainWindow(), title, QT_UTF8(default_path));
if (dir.isEmpty())
return;
list->addItem(dir);
EditableListChanged();
}
void WidgetInfo::EditListRemove()
{
QListWidget *list = reinterpret_cast<QListWidget*>(widget);
......
......@@ -52,6 +52,7 @@ public slots:
void EditListAdd();
void EditListAddText();
void EditListAddFiles();
void EditListAddDir();
void EditListRemove();
void EditListEdit();
void EditListUp();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册