提交 e86754c2 编写于 作者: C cg2121 提交者: jp9000

UI: Add ability to rename audio sources from the mixer

This adds the ability for users to change the names of audio sources
from the mixer including desktop and mic/aux sources.

Closes jp9000/obs-studio#1055
上级 fc61e6ed
......@@ -344,6 +344,11 @@ AddProfile.Text="Please enter the name of the profile"
# rename profile dialog
RenameProfile.Title="Rename Profile"
# rename audio source in mixer
Basic.Main.MixerRename.Title="Rename Audio Source"
Basic.Main.MixerRename.Text="Please enter the name of the audio source"
# preview window disabled
Basic.Main.PreviewDisabled="Preview is currently disabled"
......
......@@ -2285,6 +2285,48 @@ void OBSBasic::ToggleHideMixer()
}
}
void OBSBasic::MixerRenameSource()
{
QAction *action = reinterpret_cast<QAction*>(sender());
VolControl *vol = action->property("volControl").value<VolControl*>();
OBSSource source = vol->GetSource();
const char *prevName = obs_source_get_name(source);
for (;;) {
string name;
bool accepted = NameDialog::AskForName(this,
QTStr("Basic.Main.MixerRename.Title"),
QTStr("Basic.Main.MixerRename.Text"),
name,
QT_UTF8(prevName));
if (!accepted)
return;
if (name.empty()) {
OBSMessageBox::information(this,
QTStr("NoNameEntered.Title"),
QTStr("NoNameEntered.Text"));
continue;
}
obs_source_t *sourceTest =
obs_get_source_by_name(name.c_str());
if (sourceTest) {
OBSMessageBox::information(this,
QTStr("NameExists.Title"),
QTStr("NameExists.Text"));
continue;
}
obs_source_set_name(source, name.c_str());
obs_source_release(sourceTest);
break;
}
}
void OBSBasic::VolControlContextMenu()
{
VolControl *vol = reinterpret_cast<VolControl*>(sender());
......@@ -2293,6 +2335,7 @@ void OBSBasic::VolControlContextMenu()
QAction hideAction(QTStr("Hide"), this);
QAction unhideAllAction(QTStr("UnhideAll"), this);
QAction mixerRenameAction(QTStr("Rename"), this);
QAction filtersAction(QTStr("Filters"), this);
QAction propertiesAction(QTStr("Properties"), this);
......@@ -2306,6 +2349,9 @@ void OBSBasic::VolControlContextMenu()
connect(&unhideAllAction, &QAction::triggered,
this, &OBSBasic::UnhideAllAudioControls,
Qt::DirectConnection);
connect(&mixerRenameAction, &QAction::triggered,
this, &OBSBasic::MixerRenameSource,
Qt::DirectConnection);
connect(&filtersAction, &QAction::triggered,
this, &OBSBasic::GetAudioSourceFilters,
......@@ -2321,6 +2367,8 @@ void OBSBasic::VolControlContextMenu()
hideAction.setProperty("volControl",
QVariant::fromValue<VolControl*>(vol));
mixerRenameAction.setProperty("volControl",
QVariant::fromValue<VolControl*>(vol));
filtersAction.setProperty("volControl",
QVariant::fromValue<VolControl*>(vol));
......@@ -2332,6 +2380,7 @@ void OBSBasic::VolControlContextMenu()
QMenu popup(this);
popup.addAction(&unhideAllAction);
popup.addAction(&hideAction);
popup.addAction(&mixerRenameAction);
popup.addSeparator();
popup.addAction(&filtersAction);
popup.addAction(&propertiesAction);
......
......@@ -434,6 +434,8 @@ private slots:
void UnhideAllAudioControls();
void ToggleHideMixer();
void MixerRenameSource();
void on_mixerScrollArea_customContextMenuRequested();
void on_actionCopySource_triggered();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册