浏览代码

UI: Regroup and Reorder source right-click menus

Visually, the Scale Filtering, Blending Mode & Method, and Deinterlacing
menus are now grouped together, with "Hide in Mixer" being its own group
until a better place for it has been found.
Projector and Screenshot menus have been moved down.

As a related code cleanup, the creation of sourceProjector and
sourceWindow has been moved down and partially inlined.
gxalpha 3 年之前
父节点
当前提交
889ca0fc04
共有 1 个文件被更改,包括 17 次插入25 次删除
  1. 17 25
      UI/window-basic-main.cpp

+ 17 - 25
UI/window-basic-main.cpp

@@ -5577,19 +5577,10 @@ void OBSBasic::CreateSourcePopupMenu(int idx, bool preview)
 		popup.addAction(QTStr("Remove"), this,
 		popup.addAction(QTStr("Remove"), this,
 				SLOT(on_actionRemoveSource_triggered()));
 				SLOT(on_actionRemoveSource_triggered()));
 		popup.addSeparator();
 		popup.addSeparator();
-		popup.addMenu(ui->orderMenu);
 
 
+		popup.addMenu(ui->orderMenu);
 		popup.addMenu(ui->transformMenu);
 		popup.addMenu(ui->transformMenu);
 
 
-		sourceProjector = new QMenu(QTStr("SourceProjector"));
-		AddProjectorMenuMonitors(sourceProjector, this,
-					 SLOT(OpenSourceProjector()));
-
-		QAction *sourceWindow = popup.addAction(
-			QTStr("SourceWindow"), this, SLOT(OpenSourceWindow()));
-
-		popup.addAction(sourceWindow);
-
 		popup.addSeparator();
 		popup.addSeparator();
 
 
 		if (hasAudio) {
 		if (hasAudio) {
@@ -5598,37 +5589,38 @@ void OBSBasic::CreateSourcePopupMenu(int idx, bool preview)
 						SLOT(ToggleHideMixer()));
 						SLOT(ToggleHideMixer()));
 			actionHideMixer->setCheckable(true);
 			actionHideMixer->setCheckable(true);
 			actionHideMixer->setChecked(SourceMixerHidden(source));
 			actionHideMixer->setChecked(SourceMixerHidden(source));
-		}
-
-		if (isAsyncVideo) {
-			deinterlaceMenu = new QMenu(QTStr("Deinterlacing"));
-			popup.addMenu(
-				AddDeinterlacingMenu(deinterlaceMenu, source));
 			popup.addSeparator();
 			popup.addSeparator();
 		}
 		}
 
 
 		scaleFilteringMenu = new QMenu(QTStr("ScaleFiltering"));
 		scaleFilteringMenu = new QMenu(QTStr("ScaleFiltering"));
 		popup.addMenu(
 		popup.addMenu(
 			AddScaleFilteringMenu(scaleFilteringMenu, sceneItem));
 			AddScaleFilteringMenu(scaleFilteringMenu, sceneItem));
-		popup.addSeparator();
-
+		blendingModeMenu = new QMenu(QTStr("BlendingMode"));
+		popup.addMenu(AddBlendingModeMenu(blendingModeMenu, sceneItem));
 		blendingMethodMenu = new QMenu(QTStr("BlendingMethod"));
 		blendingMethodMenu = new QMenu(QTStr("BlendingMethod"));
 		popup.addMenu(
 		popup.addMenu(
 			AddBlendingMethodMenu(blendingMethodMenu, sceneItem));
 			AddBlendingMethodMenu(blendingMethodMenu, sceneItem));
-		blendingModeMenu = new QMenu(QTStr("BlendingMode"));
-		popup.addMenu(AddBlendingModeMenu(blendingModeMenu, sceneItem));
+		if (isAsyncVideo) {
+			deinterlaceMenu = new QMenu(QTStr("Deinterlacing"));
+			popup.addMenu(
+				AddDeinterlacingMenu(deinterlaceMenu, source));
+		}
+		popup.addSeparator();
+
+		popup.addMenu(CreateVisibilityTransitionMenu(true));
+		popup.addMenu(CreateVisibilityTransitionMenu(false));
 		popup.addSeparator();
 		popup.addSeparator();
 
 
+		sourceProjector = new QMenu(QTStr("SourceProjector"));
+		AddProjectorMenuMonitors(sourceProjector, this,
+					 SLOT(OpenSourceProjector()));
 		popup.addMenu(sourceProjector);
 		popup.addMenu(sourceProjector);
-		popup.addAction(sourceWindow);
+		popup.addAction(QTStr("SourceWindow"), this,
+				SLOT(OpenSourceWindow()));
 		popup.addAction(QTStr("Screenshot.Source"), this,
 		popup.addAction(QTStr("Screenshot.Source"), this,
 				SLOT(ScreenshotSelectedSource()));
 				SLOT(ScreenshotSelectedSource()));
 		popup.addSeparator();
 		popup.addSeparator();
 
 
-		popup.addMenu(CreateVisibilityTransitionMenu(true));
-		popup.addMenu(CreateVisibilityTransitionMenu(false));
-		popup.addSeparator();
-
 		if (flags & OBS_SOURCE_INTERACTION)
 		if (flags & OBS_SOURCE_INTERACTION)
 			popup.addAction(QTStr("Interact"), this,
 			popup.addAction(QTStr("Interact"), this,
 					SLOT(on_actionInteract_triggered()));
 					SLOT(on_actionInteract_triggered()));