diff --git a/UI/forms/OBSBasicFilters.ui b/UI/forms/OBSBasicFilters.ui
index 76f8fd90b..572a31f9d 100644
--- a/UI/forms/OBSBasicFilters.ui
+++ b/UI/forms/OBSBasicFilters.ui
@@ -437,6 +437,30 @@
Del
+
+
+
+ :/res/images/up.png:/res/images/up.png
+
+
+ Basic.MainMenu.Edit.Order.MoveUp
+
+
+ Ctrl+Up
+
+
+
+
+
+ :/res/images/down.png:/res/images/down.png
+
+
+ Basic.MainMenu.Edit.Order.MoveDown
+
+
+ Ctrl+Down
+
+
diff --git a/UI/window-basic-filters.cpp b/UI/window-basic-filters.cpp
index e2f837082..8d41229a8 100644
--- a/UI/window-basic-filters.cpp
+++ b/UI/window-basic-filters.cpp
@@ -77,6 +77,8 @@ OBSBasicFilters::OBSBasicFilters(QWidget *parent, OBSSource source_)
#endif // QT_NO_SHORTCUT
addAction(ui->actionRemoveFilter);
+ addAction(ui->actionMoveUp);
+ addAction(ui->actionMoveDown);
installEventFilter(CreateShortcutFilter());
@@ -682,6 +684,22 @@ void OBSBasicFilters::on_actionRemoveFilter_triggered()
on_removeEffectFilter_clicked();
}
+void OBSBasicFilters::on_actionMoveUp_triggered()
+{
+ if (ui->asyncFilters->hasFocus())
+ on_moveAsyncFilterUp_clicked();
+ else if (ui->effectFilters->hasFocus())
+ on_moveEffectFilterUp_clicked();
+}
+
+void OBSBasicFilters::on_actionMoveDown_triggered()
+{
+ if (ui->asyncFilters->hasFocus())
+ on_moveAsyncFilterDown_clicked();
+ else if (ui->effectFilters->hasFocus())
+ on_moveEffectFilterDown_clicked();
+}
+
void OBSBasicFilters::CustomContextMenu(const QPoint &pos, bool async)
{
QListWidget *list = async ? ui->asyncFilters : ui->effectFilters;
diff --git a/UI/window-basic-filters.hpp b/UI/window-basic-filters.hpp
index 09beb7cad..5ab28a09d 100644
--- a/UI/window-basic-filters.hpp
+++ b/UI/window-basic-filters.hpp
@@ -101,6 +101,8 @@ private slots:
void on_effectFilters_GotFocus();
void on_actionRemoveFilter_triggered();
+ void on_actionMoveUp_triggered();
+ void on_actionMoveDown_triggered();
void AsyncFilterNameEdited(QWidget *editor,
QAbstractItemDelegate::EndEditHint endHint);