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