Browse Source

UI: Refresh multiview projector menu per click

Shaolin 7 years ago
parent
commit
229feefbb9
2 changed files with 13 additions and 4 deletions
  1. 10 4
      UI/window-basic-main.cpp
  2. 3 0
      UI/window-basic-main.hpp

+ 10 - 4
UI/window-basic-main.cpp

@@ -1647,15 +1647,21 @@ void OBSBasic::OBSInit()
 
 
 	ui->viewMenu->addSeparator();
 	ui->viewMenu->addSeparator();
 
 
-	QMenu *multiviewProjectorMenu = new QMenu(QTStr("MultiviewProjector"));
-	AddProjectorMenuMonitors(multiviewProjectorMenu, this,
-			SLOT(OpenMultiviewProjector()));
+	multiviewProjectorMenu = new QMenu(QTStr("MultiviewProjector"));
 	ui->viewMenu->addMenu(multiviewProjectorMenu);
 	ui->viewMenu->addMenu(multiviewProjectorMenu);
-
+	connect(ui->viewMenu->menuAction(), &QAction::hovered, this,
+			&OBSBasic::UpdateMultiviewProjectorMenu);
 	ui->viewMenu->addAction(QTStr("MultiviewWindowed"),
 	ui->viewMenu->addAction(QTStr("MultiviewWindowed"),
 			this, SLOT(OpenMultiviewWindow()));
 			this, SLOT(OpenMultiviewWindow()));
 }
 }
 
 
+void OBSBasic::UpdateMultiviewProjectorMenu()
+{
+	multiviewProjectorMenu->clear();
+	AddProjectorMenuMonitors(multiviewProjectorMenu, this,
+			SLOT(OpenMultiviewProjector()));
+}
+
 void OBSBasic::InitHotkeys()
 void OBSBasic::InitHotkeys()
 {
 {
 	ProfileScope("OBSBasic::InitHotkeys");
 	ProfileScope("OBSBasic::InitHotkeys");

+ 3 - 0
UI/window-basic-main.hpp

@@ -186,6 +186,9 @@ private:
 	QPointer<QAction>         exit;
 	QPointer<QAction>         exit;
 	QPointer<QMenu>           trayMenu;
 	QPointer<QMenu>           trayMenu;
 
 
+	QPointer<QMenu> multiviewProjectorMenu;
+	void          UpdateMultiviewProjectorMenu();
+
 	void          DrawBackdrop(float cx, float cy);
 	void          DrawBackdrop(float cx, float cy);
 
 
 	void          SetupEncoders();
 	void          SetupEncoders();