diff --git a/gridplayer/dialogs/settings.py b/gridplayer/dialogs/settings.py
index 347f6ff..1c4963e 100644
--- a/gridplayer/dialogs/settings.py
+++ b/gridplayer/dialogs/settings.py
@@ -62,6 +62,7 @@ def __init__(self, parent):
"video_defaults/random_loop": self.videoRandomLoop,
"video_defaults/muted": self.videoMuted,
"video_defaults/paused": self.videoPaused,
+ "misc/overlay_hide": self.timeoutOverlayFlag,
"misc/overlay_timeout": self.timeoutOverlay,
"misc/mouse_hide": self.timeoutMouseHideFlag,
"misc/mouse_hide_timeout": self.timeoutMouseHide,
@@ -115,6 +116,7 @@ def ui_fill(self):
def ui_customize_dynamic(self):
self.driver_selected(self.playerVideoDriver.currentIndex())
self.timeoutMouseHide.setEnabled(self.timeoutMouseHideFlag.isChecked())
+ self.timeoutOverlay.setEnabled(self.timeoutOverlayFlag.isChecked())
self.playerVideoDriverPlayers.setRange(1, MAX_VLC_PROCESSES)
self.timeoutOverlay.setRange(1, 60)
@@ -127,6 +129,7 @@ def ui_connect(self):
qt_connect(
(self.playerVideoDriver.currentIndexChanged, self.driver_selected),
(self.timeoutMouseHideFlag.stateChanged, self.timeoutMouseHide.setEnabled),
+ (self.timeoutOverlayFlag.stateChanged, self.timeoutOverlay.setEnabled),
(self.logFileOpen.clicked, self.open_logfile),
)
diff --git a/gridplayer/dialogs/settings_dialog_ui.py b/gridplayer/dialogs/settings_dialog_ui.py
index 6d60239..6a52f3b 100644
--- a/gridplayer/dialogs/settings_dialog_ui.py
+++ b/gridplayer/dialogs/settings_dialog_ui.py
@@ -4,7 +4,7 @@
class Ui_SettingsDialog(object):
def setupUi(self, SettingsDialog):
SettingsDialog.setObjectName("SettingsDialog")
- SettingsDialog.resize(440, 505)
+ SettingsDialog.resize(442, 541)
self.lay_main = QtWidgets.QVBoxLayout(SettingsDialog)
self.lay_main.setSizeConstraint(QtWidgets.QLayout.SetFixedSize)
self.lay_main.setObjectName("lay_main")
@@ -172,6 +172,9 @@ def setupUi(self, SettingsDialog):
self.section_timeouts.setFont(font)
self.section_timeouts.setObjectName("section_timeouts")
self.lay_section_timeouts.addWidget(self.section_timeouts)
+ self.timeoutOverlayFlag = QtWidgets.QCheckBox(SettingsDialog)
+ self.timeoutOverlayFlag.setObjectName("timeoutOverlayFlag")
+ self.lay_section_timeouts.addWidget(self.timeoutOverlayFlag)
self.lay_timeoutOverlay = QtWidgets.QHBoxLayout()
self.lay_timeoutOverlay.setObjectName("lay_timeoutOverlay")
self.timeoutOverlay = QtWidgets.QSpinBox(SettingsDialog)
@@ -317,6 +320,9 @@ def retranslateUi(self, SettingsDialog):
_translate("SettingsDialog", "Videos per process")
)
self.section_timeouts.setText(_translate("SettingsDialog", "Timeouts"))
+ self.timeoutOverlayFlag.setText(
+ _translate("SettingsDialog", "Hide overlay after timeout")
+ )
self.timeoutOverlayLabel.setText(
_translate("SettingsDialog", "Video overlay timeout (sec)")
)
diff --git a/gridplayer/settings.py b/gridplayer/settings.py
index 26ea651..4c21e49 100644
--- a/gridplayer/settings.py
+++ b/gridplayer/settings.py
@@ -31,6 +31,7 @@
"video_defaults/random_loop": False,
"video_defaults/muted": True,
"video_defaults/paused": False,
+ "misc/overlay_hide": True,
"misc/overlay_timeout": 1,
"misc/mouse_hide": True,
"misc/mouse_hide_timeout": 3,
diff --git a/gridplayer/widgets/video_block.py b/gridplayer/widgets/video_block.py
index b8ba011..e341856 100644
--- a/gridplayer/widgets/video_block.py
+++ b/gridplayer/widgets/video_block.py
@@ -212,6 +212,10 @@ def mouseReleaseEvent(self, event) -> None:
def hideEvent(self, event):
self.hide_overlay()
+ def showEvent(self, event):
+ if self.is_video_initialized and not Settings().get("misc/overlay_hide"):
+ self.show_overlay()
+
def is_under_cursor(self):
return self.rect().contains(self.mapFromGlobal(QCursor.pos()))
@@ -255,13 +259,15 @@ def loop_end(self):
def show_overlay(self):
self.overlay.show()
- self.overlay_hide_timer.start(1000 * Settings().get("misc/overlay_timeout"))
+ if Settings().get("misc/overlay_hide"):
+ self.overlay_hide_timer.start(1000 * Settings().get("misc/overlay_timeout"))
def hide_overlay(self):
+ if not Settings().get("misc/overlay_hide"):
+ return
+
if self.is_active:
- self.overlay_hide_timer.start(
- 1000 * Settings().get("misc/overlay_timeout"),
- )
+ self.overlay_hide_timer.start(1000 * Settings().get("misc/overlay_timeout"))
return
self.overlay.hide()
@@ -329,6 +335,7 @@ def load_video_finish(self): # noqa: WPS213
self.set_pause(self.video_params.is_paused)
self.status_label.hide()
+ self.show_overlay()
def set_aspect(self, aspect):
self.video_params.aspect_mode = aspect
diff --git a/resources/ui/settings_dialog.ui b/resources/ui/settings_dialog.ui
index 455a947..05d2da5 100644
--- a/resources/ui/settings_dialog.ui
+++ b/resources/ui/settings_dialog.ui
@@ -6,8 +6,8 @@
0
0
- 440
- 505
+ 442
+ 541
@@ -326,6 +326,13 @@
+ -
+
+
+ Hide overlay after timeout
+
+
+
-
-