diff --git a/UI/forms/OBSBasicFilters.ui b/UI/forms/OBSBasicFilters.ui index 8f3c157f6..3594ac174 100644 --- a/UI/forms/OBSBasicFilters.ui +++ b/UI/forms/OBSBasicFilters.ui @@ -597,6 +597,9 @@ Del + + false + @@ -622,6 +625,11 @@ Ctrl+Down + + + Rename + + diff --git a/UI/window-basic-filters.cpp b/UI/window-basic-filters.cpp index c83dd921b..5b3caa7b6 100644 --- a/UI/window-basic-filters.cpp +++ b/UI/window-basic-filters.cpp @@ -81,6 +81,7 @@ OBSBasicFilters::OBSBasicFilters(QWidget *parent, OBSSource source_) QApplication::translate("OBSBasicFilters", "Del", nullptr)); #endif // QT_NO_SHORTCUT + addAction(ui->actionRenameFilter); addAction(ui->actionRemoveFilter); addAction(ui->actionMoveUp); addAction(ui->actionMoveDown); @@ -154,24 +155,10 @@ OBSBasicFilters::OBSBasicFilters(QWidget *parent, OBSSource source_) ui->preview->hide(); } - QAction *renameAsync = new QAction(ui->asyncWidget); - renameAsync->setShortcutContext(Qt::WidgetWithChildrenShortcut); - connect(renameAsync, SIGNAL(triggered()), this, - SLOT(RenameAsyncFilter())); - ui->asyncWidget->addAction(renameAsync); - - QAction *renameEffect = new QAction(ui->effectWidget); - renameEffect->setShortcutContext(Qt::WidgetWithChildrenShortcut); - connect(renameEffect, SIGNAL(triggered()), this, - SLOT(RenameEffectFilter())); - ui->effectWidget->addAction(renameEffect); - #ifdef __APPLE__ - renameAsync->setShortcut({Qt::Key_Return}); - renameEffect->setShortcut({Qt::Key_Return}); + ui->actionRenameFilter->setShortcut({Qt::Key_Return}); #else - renameAsync->setShortcut({Qt::Key_F2}); - renameEffect->setShortcut({Qt::Key_F2}); + ui->actionRenameFilter->setShortcut({Qt::Key_F2}); #endif UpdateFilters(); @@ -932,6 +919,14 @@ void OBSBasicFilters::on_actionMoveDown_triggered() on_moveEffectFilterDown_clicked(); } +void OBSBasicFilters::on_actionRenameFilter_triggered() +{ + if (ui->asyncFilters->hasFocus()) + RenameAsyncFilter(); + else if (ui->effectFilters->hasFocus()) + RenameEffectFilter(); +} + void OBSBasicFilters::CustomContextMenu(const QPoint &pos, bool async) { QListWidget *list = async ? ui->asyncFilters : ui->effectFilters; @@ -948,17 +943,11 @@ void OBSBasicFilters::CustomContextMenu(const QPoint &pos, bool async) async ? SLOT(DuplicateAsyncFilter()) : SLOT(DuplicateEffectFilter()); - const char *renameSlot = async ? SLOT(RenameAsyncFilter()) - : SLOT(RenameEffectFilter()); - const char *removeSlot = - async ? SLOT(on_removeAsyncFilter_clicked()) - : SLOT(on_removeEffectFilter_clicked()); - popup.addSeparator(); popup.addAction(QTStr("Duplicate"), this, dulpicateSlot); popup.addSeparator(); - popup.addAction(QTStr("Rename"), this, renameSlot); - popup.addAction(QTStr("Remove"), this, removeSlot); + popup.addAction(ui->actionRenameFilter); + popup.addAction(ui->actionRemoveFilter); popup.addSeparator(); QAction *copyAction = new QAction(QTStr("Copy")); diff --git a/UI/window-basic-filters.hpp b/UI/window-basic-filters.hpp index b3e86b0df..315995e66 100644 --- a/UI/window-basic-filters.hpp +++ b/UI/window-basic-filters.hpp @@ -113,6 +113,8 @@ private slots: void on_actionMoveUp_triggered(); void on_actionMoveDown_triggered(); + void on_actionRenameFilter_triggered(); + void AsyncFilterNameEdited(QWidget *editor); void EffectFilterNameEdited(QWidget *editor);