mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-20 04:42:18 +02:00
UI: Add ability to copy & paste filters from the mixer
This commit is contained in:
parent
484c3847fc
commit
ad55f413bb
@ -2775,6 +2775,9 @@ void OBSBasic::VolControlContextMenu()
|
||||
QAction unhideAllAction(QTStr("UnhideAll"), this);
|
||||
QAction mixerRenameAction(QTStr("Rename"), this);
|
||||
|
||||
QAction copyFiltersAction(QTStr("Copy.Filters"), this);
|
||||
QAction pasteFiltersAction(QTStr("Paste.Filters"), this);
|
||||
|
||||
QAction filtersAction(QTStr("Filters"), this);
|
||||
QAction propertiesAction(QTStr("Properties"), this);
|
||||
QAction advPropAction(QTStr("Basic.MainMenu.Edit.AdvAudio"), this);
|
||||
@ -2796,6 +2799,13 @@ void OBSBasic::VolControlContextMenu()
|
||||
this, &OBSBasic::MixerRenameSource,
|
||||
Qt::DirectConnection);
|
||||
|
||||
connect(©FiltersAction, &QAction::triggered,
|
||||
this, &OBSBasic::AudioMixerCopyFilters,
|
||||
Qt::DirectConnection);
|
||||
connect(&pasteFiltersAction, &QAction::triggered,
|
||||
this, &OBSBasic::AudioMixerPasteFilters,
|
||||
Qt::DirectConnection);
|
||||
|
||||
connect(&filtersAction, &QAction::triggered,
|
||||
this, &OBSBasic::GetAudioSourceFilters,
|
||||
Qt::DirectConnection);
|
||||
@ -2819,6 +2829,11 @@ void OBSBasic::VolControlContextMenu()
|
||||
mixerRenameAction.setProperty("volControl",
|
||||
QVariant::fromValue<VolControl*>(vol));
|
||||
|
||||
copyFiltersAction.setProperty("volControl",
|
||||
QVariant::fromValue<VolControl*>(vol));
|
||||
pasteFiltersAction.setProperty("volControl",
|
||||
QVariant::fromValue<VolControl*>(vol));
|
||||
|
||||
filtersAction.setProperty("volControl",
|
||||
QVariant::fromValue<VolControl*>(vol));
|
||||
propertiesAction.setProperty("volControl",
|
||||
@ -2826,11 +2841,19 @@ void OBSBasic::VolControlContextMenu()
|
||||
|
||||
/* ------------------- */
|
||||
|
||||
if (copyFiltersString == nullptr)
|
||||
pasteFiltersAction.setEnabled(false);
|
||||
else
|
||||
pasteFiltersAction.setEnabled(true);
|
||||
|
||||
QMenu popup;
|
||||
popup.addAction(&unhideAllAction);
|
||||
popup.addAction(&hideAction);
|
||||
popup.addAction(&mixerRenameAction);
|
||||
popup.addSeparator();
|
||||
popup.addAction(©FiltersAction);
|
||||
popup.addAction(&pasteFiltersAction);
|
||||
popup.addSeparator();
|
||||
popup.addAction(&toggleControlLayoutAction);
|
||||
popup.addSeparator();
|
||||
popup.addAction(&filtersAction);
|
||||
@ -6727,6 +6750,30 @@ void OBSBasic::on_actionPasteDup_triggered()
|
||||
on_actionPasteTransform_triggered();
|
||||
}
|
||||
|
||||
void OBSBasic::AudioMixerCopyFilters()
|
||||
{
|
||||
QAction *action = reinterpret_cast<QAction*>(sender());
|
||||
VolControl *vol = action->property("volControl").value<VolControl*>();
|
||||
obs_source_t *source = vol->GetSource();
|
||||
|
||||
copyFiltersString = obs_source_get_name(source);
|
||||
}
|
||||
|
||||
void OBSBasic::AudioMixerPasteFilters()
|
||||
{
|
||||
QAction *action = reinterpret_cast<QAction*>(sender());
|
||||
VolControl *vol = action->property("volControl").value<VolControl*>();
|
||||
obs_source_t *dstSource = vol->GetSource();
|
||||
|
||||
OBSSource source = obs_get_source_by_name(copyFiltersString);
|
||||
obs_source_release(source);
|
||||
|
||||
if (source == dstSource)
|
||||
return;
|
||||
|
||||
obs_source_copy_filters(dstSource, source);
|
||||
}
|
||||
|
||||
void OBSBasic::on_actionCopyFilters_triggered()
|
||||
{
|
||||
OBSSceneItem item = GetCurrentSceneItem();
|
||||
|
@ -155,7 +155,7 @@ private:
|
||||
bool fullscreenInterface = false;
|
||||
|
||||
const char *copyString;
|
||||
const char *copyFiltersString;
|
||||
const char *copyFiltersString = nullptr;
|
||||
bool copyVisible = true;
|
||||
|
||||
QScopedPointer<QThread> updateCheckThread;
|
||||
@ -518,6 +518,9 @@ private slots:
|
||||
|
||||
void on_actionShowAbout_triggered();
|
||||
|
||||
void AudioMixerCopyFilters();
|
||||
void AudioMixerPasteFilters();
|
||||
|
||||
private:
|
||||
/* OBS Callbacks */
|
||||
static void SceneReordered(void *data, calldata_t *params);
|
||||
|
Loading…
Reference in New Issue
Block a user