Browse Source

UI: Add option to hide cursor over projector windows

jp9000 9 years ago
parent
commit
c2257e0a0f

+ 1 - 0
obs/data/locale/en-US.ini

@@ -359,6 +359,7 @@ Basic.Settings.General.Theme="Theme"
 Basic.Settings.General.Language="Language"
 Basic.Settings.General.WarnBeforeStartingStream="Show confirmation dialog when starting streams"
 Basic.Settings.General.WarnBeforeStoppingStream="Show confirmation dialog when stopping streams"
+Basic.Settings.General.HideProjectorCursor="Hide cursor over projectors"
 Basic.Settings.General.Snapping="Source Alignment Snapping"
 Basic.Settings.General.ScreenSnapping="Snap Sources to edge of screen"
 Basic.Settings.General.CenterSnapping="Snap Sources to horizontal and vertical center"

+ 7 - 0
obs/forms/OBSBasicSettings.ui

@@ -285,6 +285,13 @@
            </layout>
           </widget>
          </item>
+         <item row="5" column="1">
+          <widget class="QCheckBox" name="hideProjectorCursor">
+           <property name="text">
+            <string>Basic.Settings.General.HideProjectorCursor</string>
+           </property>
+          </widget>
+         </item>
         </layout>
        </widget>
        <widget class="QWidget" name="streamPage">

+ 9 - 0
obs/window-basic-settings.cpp

@@ -271,6 +271,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
 	HookWidget(ui->theme, 		     COMBO_CHANGED,  GENERAL_CHANGED);
 	HookWidget(ui->warnBeforeStreamStart,CHECK_CHANGED,  GENERAL_CHANGED);
 	HookWidget(ui->warnBeforeStreamStop, CHECK_CHANGED,  GENERAL_CHANGED);
+	HookWidget(ui->hideProjectorCursor,  CHECK_CHANGED,  GENERAL_CHANGED);
 	HookWidget(ui->snappingEnabled,      CHECK_CHANGED,  GENERAL_CHANGED);
 	HookWidget(ui->screenSnapping,       CHECK_CHANGED,  GENERAL_CHANGED);
 	HookWidget(ui->centerSnapping,       CHECK_CHANGED,  GENERAL_CHANGED);
@@ -823,6 +824,10 @@ void OBSBasicSettings::LoadGeneralSettings()
 			"BasicWindow", "WarnBeforeStoppingStream");
 	ui->warnBeforeStreamStop->setChecked(warnBeforeStreamStop);
 
+	bool hideProjectorCursor = config_get_bool(GetGlobalConfig(),
+			"BasicWindow", "HideProjectorCursor");
+	ui->hideProjectorCursor->setChecked(hideProjectorCursor);
+
 	loading = false;
 }
 
@@ -2157,6 +2162,10 @@ void OBSBasicSettings::SaveGeneralSettings()
 	config_set_bool(GetGlobalConfig(), "BasicWindow",
 			"WarnBeforeStoppingStream",
 			ui->warnBeforeStreamStop->isChecked());
+
+	config_set_bool(GetGlobalConfig(), "BasicWindow",
+			"HideProjectorCursor",
+			ui->hideProjectorCursor->isChecked());
 }
 
 void OBSBasicSettings::SaveStream1Settings()

+ 8 - 0
obs/window-projector.cpp

@@ -26,6 +26,14 @@ OBSProjector::OBSProjector(QWidget *widget, obs_source_t *source_)
 
 	connect(this, &OBSQTDisplay::DisplayCreated, addDrawCallback);
 
+	bool hideCursor = config_get_bool(GetGlobalConfig(),
+			"BasicWindow", "HideProjectorCursor");
+	if (hideCursor) {
+		QPixmap empty(16, 16);
+		empty.fill(Qt::transparent);
+		setCursor(QCursor(empty));
+	}
+
 	App()->IncrementSleepInhibition();
 }