0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00

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
This commit is contained in:
cg2121 2017-10-20 14:23:07 -05:00 committed by jp9000
parent fc61e6ed69
commit e86754c2a0
3 changed files with 56 additions and 0 deletions

View File

@ -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"

View File

@ -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);

View File

@ -434,6 +434,8 @@ private slots:
void UnhideAllAudioControls();
void ToggleHideMixer();
void MixerRenameSource();
void on_mixerScrollArea_customContextMenuRequested();
void on_actionCopySource_triggered();