diff --git a/build/data/obs-studio/locale/en.txt b/build/data/obs-studio/locale/en.txt index 0cd55d45d600eaac706a0e7b18d8aab106161a7d..decf1911d3a447e917afc85ba2248b2858bc05c1 100644 --- a/build/data/obs-studio/locale/en.txt +++ b/build/data/obs-studio/locale/en.txt @@ -139,6 +139,11 @@ Basic.MainMenu.Edit.Transform.FlipVertical="Flip &Vertical" Basic.MainMenu.Edit.Transform.FitToScreen="&Fit to screen" Basic.MainMenu.Edit.Transform.StretchToScreen="&Stretch to screen" Basic.MainMenu.Edit.Transform.CenterToScreen="&Center to screen" +Basic.MainMenu.Edit.Order="&Order" +Basic.MainMenu.Edit.Order.MoveUp="Move &Up" +Basic.MainMenu.Edit.Order.MoveDown="Move &Down" +Basic.MainMenu.Edit.Order.MoveToTop="Move to &Top" +Basic.MainMenu.Edit.Order.MoveToBottom="Move to &Bottom" # basic mode help menu Basic.MainMenu.Help="&Help" diff --git a/obs/forms/OBSBasic.ui b/obs/forms/OBSBasic.ui index fbda14f7b2ff65953d66c9a92845bd9e458da2da..3ba575e53f09dae609ef0063a050b2d07981a0bc 100644 --- a/obs/forms/OBSBasic.ui +++ b/obs/forms/OBSBasic.ui @@ -491,10 +491,21 @@ + + + Basic.MainMenu.Edit.Order + + + + + + + + @@ -725,6 +736,38 @@ Basic.MainMenu.Edit.Transform.FlipVertical + + + Basic.MainMenu.Edit.Order.MoveUp + + + Ctrl+Up + + + + + Basic.MainMenu.Edit.Order.MoveDown + + + Ctrl+Down + + + + + Basic.MainMenu.Edit.Order.MoveToTop + + + Ctrl+Home + + + + + Basic.MainMenu.Edit.Order.MoveToBottom + + + Ctrl+End + + diff --git a/obs/window-basic-main.cpp b/obs/window-basic-main.cpp index 5b3821edf6f1b63c7fe2026b7411d827fb607427..1d10183a29e38658268c8b26538d816161125004 100644 --- a/obs/window-basic-main.cpp +++ b/obs/window-basic-main.cpp @@ -1383,6 +1383,8 @@ void OBSBasic::on_sources_customContextMenuRequested(const QPoint &pos) popup.addAction(QTStr("Remove"), this, SLOT(on_actionRemoveSource_triggered()), QKeySequence::Delete); + popup.addSeparator(); + popup.addMenu(ui->orderMenu); popup.addMenu(ui->transformMenu); popup.addSeparator(); popup.addAction(QTStr("Properties"), this, @@ -1493,6 +1495,30 @@ void OBSBasic::on_actionSourceDown_triggered() obs_sceneitem_setorder(item, ORDER_MOVE_DOWN); } +void OBSBasic::on_actionMoveUp_triggered() +{ + OBSSceneItem item = GetCurrentSceneItem(); + obs_sceneitem_setorder(item, ORDER_MOVE_UP); +} + +void OBSBasic::on_actionMoveDown_triggered() +{ + OBSSceneItem item = GetCurrentSceneItem(); + obs_sceneitem_setorder(item, ORDER_MOVE_DOWN); +} + +void OBSBasic::on_actionMoveToTop_triggered() +{ + OBSSceneItem item = GetCurrentSceneItem(); + obs_sceneitem_setorder(item, ORDER_MOVE_TOP); +} + +void OBSBasic::on_actionMoveToBottom_triggered() +{ + OBSSceneItem item = GetCurrentSceneItem(); + obs_sceneitem_setorder(item, ORDER_MOVE_BOTTOM); +} + static char *ReadLogFile(const char *log) { BPtr logDir(os_get_config_path("obs-studio/logs")); diff --git a/obs/window-basic-main.hpp b/obs/window-basic-main.hpp index 7a92b9c7f70a411bcb65852f7c2e1e74de9fce35..e992f18918f6485d98f6e418c4f3cdcad5168d97 100644 --- a/obs/window-basic-main.hpp +++ b/obs/window-basic-main.hpp @@ -241,6 +241,11 @@ private slots: void on_actionSourceUp_triggered(); void on_actionSourceDown_triggered(); + void on_actionMoveUp_triggered(); + void on_actionMoveDown_triggered(); + void on_actionMoveToTop_triggered(); + void on_actionMoveToBottom_triggered(); + void on_streamButton_clicked(); void on_recordButton_clicked(); void on_settingsButton_clicked();