mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-02 09:33:33 +00:00
UI: Unify filters clipboard of main window and filters menu
Previously, the filters window and the main window had separate clipboards where copied filters would live. With previous changes to how filters are copied in the main window, we can now easily unify the two.
This commit is contained in:
parent
f402f7a091
commit
5a9f9af9ad
|
@ -945,7 +945,7 @@ void OBSBasicFilters::CustomContextMenu(const QPoint &pos, bool async)
|
|||
}
|
||||
|
||||
QAction *pasteAction = new QAction(QTStr("Paste"));
|
||||
pasteAction->setEnabled(main->copyFilter);
|
||||
pasteAction->setEnabled(!main->filtersClipboard.empty());
|
||||
connect(pasteAction, &QAction::triggered, this,
|
||||
&OBSBasicFilters::PasteFilter);
|
||||
pasteAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_V));
|
||||
|
@ -1165,26 +1165,13 @@ void OBSBasicFilters::CopyFilter()
|
|||
else
|
||||
filter = GetFilter(ui->effectFilters->currentRow(), false);
|
||||
|
||||
main->copyFilter = OBSGetWeakRef(filter);
|
||||
main->filtersClipboard.clear();
|
||||
main->filtersClipboard.push_back(OBSGetWeakRef(filter));
|
||||
}
|
||||
|
||||
void OBSBasicFilters::PasteFilter()
|
||||
{
|
||||
OBSSource filter = OBSGetStrongRef(main->copyFilter);
|
||||
if (!filter)
|
||||
return;
|
||||
|
||||
OBSDataArrayAutoRelease undo_array = obs_source_backup_filters(source);
|
||||
obs_source_copy_single_filter(source, filter);
|
||||
OBSDataArrayAutoRelease redo_array = obs_source_backup_filters(source);
|
||||
|
||||
const char *filterName = obs_source_get_name(filter);
|
||||
const char *sourceName = obs_source_get_name(source);
|
||||
QString text =
|
||||
QTStr("Undo.Filters.Paste.Single").arg(filterName, sourceName);
|
||||
|
||||
main->CreateFilterPasteUndoRedoAction(text, source, undo_array,
|
||||
redo_array);
|
||||
main->SourcePasteFilters(source);
|
||||
}
|
||||
|
||||
void OBSBasicFilters::delete_filter(OBSSource filter)
|
||||
|
|
|
@ -5104,7 +5104,6 @@ void OBSBasic::ClearSceneData()
|
|||
|
||||
clipboard.clear();
|
||||
filtersClipboard.clear();
|
||||
copyFilter = nullptr;
|
||||
|
||||
auto cb = [](void *, obs_source_t *source) {
|
||||
obs_source_remove(source);
|
||||
|
|
|
@ -245,7 +245,6 @@ private:
|
|||
ContextBarSize contextBarSize = ContextBarSize_Normal;
|
||||
|
||||
std::deque<SourceCopyInfo> clipboard;
|
||||
std::vector<OBSWeakSource> filtersClipboard;
|
||||
bool copyVisible = true;
|
||||
obs_transform_info copiedTransformInfo;
|
||||
obs_sceneitem_crop copiedCropInfo;
|
||||
|
@ -807,8 +806,6 @@ private slots:
|
|||
void on_actionPasteFilters_triggered();
|
||||
void AudioMixerCopyFilters();
|
||||
void AudioMixerPasteFilters();
|
||||
void SourceCopyFilters(OBSSource source);
|
||||
void SourcePasteFilters(OBSSource dstSource);
|
||||
|
||||
void ColorChange();
|
||||
|
||||
|
@ -1016,7 +1013,9 @@ public:
|
|||
QIcon GetGroupIcon() const;
|
||||
QIcon GetSceneIcon() const;
|
||||
|
||||
OBSWeakSource copyFilter;
|
||||
std::vector<OBSWeakSource> filtersClipboard;
|
||||
void SourceCopyFilters(OBSSource source);
|
||||
void SourcePasteFilters(OBSSource dstSource);
|
||||
|
||||
void ShowStatusBarMessage(const QString &message);
|
||||
|
||||
|
|
Loading…
Reference in a new issue