Skip to content

Commit

Permalink
feat: add options to disable mouse pause & seek
Browse files Browse the repository at this point in the history
  • Loading branch information
vzhd1701 committed Jun 22, 2022
1 parent 9e2a377 commit b3b9bde
Show file tree
Hide file tree
Showing 13 changed files with 106,929 additions and 106,640 deletions.
2 changes: 2 additions & 0 deletions gridplayer/dialogs/settings.py
Expand Up @@ -77,6 +77,8 @@ def __init__(self, parent):
"playlist/save_window": self.playlistSaveWindow,
"playlist/seek_sync_mode": self.playlistSeekSyncMode,
"playlist/track_changes": self.playlistTrackChanges,
"playlist/disable_click_pause": self.playlistDisableClickPause,
"playlist/disable_wheel_seek": self.playlistDisableWheelSeek,
"video_defaults/aspect": self.videoAspect,
"video_defaults/repeat": self.repeatMode,
"video_defaults/random_loop": self.videoRandomLoop,
Expand Down
14 changes: 13 additions & 1 deletion gridplayer/dialogs/settings_dialog_ui.py
Expand Up @@ -4,7 +4,7 @@
class Ui_SettingsDialog(object):
def setupUi(self, SettingsDialog):
SettingsDialog.setObjectName("SettingsDialog")
SettingsDialog.resize(442, 597)
SettingsDialog.resize(442, 621)
self.lay_main = QtWidgets.QVBoxLayout(SettingsDialog)
self.lay_main.setSizeConstraint(QtWidgets.QLayout.SetFixedSize)
self.lay_main.setObjectName("lay_main")
Expand Down Expand Up @@ -55,6 +55,12 @@ def setupUi(self, SettingsDialog):
self.playlistTrackChanges = QtWidgets.QCheckBox(SettingsDialog)
self.playlistTrackChanges.setObjectName("playlistTrackChanges")
self.lay_section_playlist.addWidget(self.playlistTrackChanges)
self.playlistDisableClickPause = QtWidgets.QCheckBox(SettingsDialog)
self.playlistDisableClickPause.setObjectName("playlistDisableClickPause")
self.lay_section_playlist.addWidget(self.playlistDisableClickPause)
self.playlistDisableWheelSeek = QtWidgets.QCheckBox(SettingsDialog)
self.playlistDisableWheelSeek.setObjectName("playlistDisableWheelSeek")
self.lay_section_playlist.addWidget(self.playlistDisableWheelSeek)
self.lay_seek_sync = QtWidgets.QHBoxLayout()
self.lay_seek_sync.setObjectName("lay_seek_sync")
self.playlistSeekSyncModeLabel = QtWidgets.QLabel(SettingsDialog)
Expand Down Expand Up @@ -341,6 +347,12 @@ def retranslateUi(self, SettingsDialog):
self.playlistTrackChanges.setText(
_translate("SettingsDialog", "Warn about unsaved changes")
)
self.playlistDisableClickPause.setText(
_translate("SettingsDialog", "Disable pause with left mouse click")
)
self.playlistDisableWheelSeek.setText(
_translate("SettingsDialog", "Disable seek with mouse wheel")
)
self.playlistSeekSyncModeLabel.setText(
_translate("SettingsDialog", "Seek sync mode")
)
Expand Down
2 changes: 2 additions & 0 deletions gridplayer/models/playlist.py
Expand Up @@ -19,6 +19,8 @@ class Playlist(BaseModel):
videos: Optional[List[Video]]
seek_sync_mode: SeekSyncMode = default_field("playlist/seek_sync_mode")
shuffle_on_load: bool = default_field("playlist/shuffle_on_load")
disable_click_pause: bool = Settings().get("playlist/disable_click_pause")
disable_wheel_seek: bool = Settings().get("playlist/disable_wheel_seek")

@classmethod
def read(cls, filename):
Expand Down
12 changes: 12 additions & 0 deletions gridplayer/player/managers/actions.py
Expand Up @@ -758,6 +758,18 @@
"func": "ask_grid_size",
"value_getter": "get_grid_size",
},
"Disable Click Pause": {
"title": translate("Actions", "Disable Click Pause"),
"icon": "empty",
"func": "toggle_disable_click_pause",
"check_if": "is_disable_click_pause",
},
"Disable Wheel Seek": {
"title": translate("Actions", "Disable Wheel Seek"),
"icon": "empty",
"func": "toggle_disable_wheel_seek",
"check_if": "is_disable_wheel_seek",
},
# Program
"Fullscreen": {
"title": translate("Actions", "Fullscreen"),
Expand Down
9 changes: 9 additions & 0 deletions gridplayer/player/managers/menu.py
Expand Up @@ -27,6 +27,10 @@
"title": translate("Actions", "Percent"),
"icon": "seek-sync-percent",
},
"Playlist Settings": {
"title": translate("Actions", "Playlist Settings"),
"icon": "playlist-settings",
},
}
)

Expand Down Expand Up @@ -209,6 +213,11 @@
"Fit Cells",
"Size: %v",
),
(
"Playlist Settings",
"Disable Click Pause",
"Disable Wheel Seek",
),
],
"program": [
"Fullscreen",
Expand Down
6 changes: 6 additions & 0 deletions gridplayer/player/managers/playlist.py
Expand Up @@ -21,6 +21,8 @@ class PlaylistManager(ManagerBase):
grid_state_loaded = pyqtSignal(GridState)
seek_sync_mode_loaded = pyqtSignal(SeekSyncMode)
shuffle_on_load_loaded = pyqtSignal(bool)
disable_click_pause_loaded = pyqtSignal(bool)
disable_wheel_seek_loaded = pyqtSignal(bool)
videos_loaded = pyqtSignal(list)

alert = pyqtSignal()
Expand Down Expand Up @@ -150,6 +152,8 @@ def load_playlist(self, playlist: Playlist):

self.seek_sync_mode_loaded.emit(playlist.seek_sync_mode)
self.shuffle_on_load_loaded.emit(playlist.shuffle_on_load)
self.disable_click_pause_loaded.emit(playlist.disable_click_pause)
self.disable_wheel_seek_loaded.emit(playlist.disable_wheel_seek)

self.alert.emit()

Expand Down Expand Up @@ -203,4 +207,6 @@ def _make_playlist(self):
videos=videos,
seek_sync_mode=self._ctx.seek_sync_mode,
shuffle_on_load=self._ctx.is_shuffle_on_load,
disable_click_pause=self._ctx.is_disable_click_pause,
disable_wheel_seek=self._ctx.is_disable_wheel_seek,
)
23 changes: 23 additions & 0 deletions gridplayer/player/managers/video_blocks.py
Expand Up @@ -108,6 +108,10 @@ def __init__(self, **kwargs):

self._ctx.seek_sync_mode = Settings().get("playlist/seek_sync_mode")
self._ctx.is_shuffle_on_load = Settings().get("playlist/shuffle_on_load")
self._ctx.is_disable_click_pause = Settings().get(
"playlist/disable_click_pause"
)
self._ctx.is_disable_wheel_seek = Settings().get("playlist/disable_wheel_seek")

self._ctx.video_blocks = VideoBlocks()

Expand All @@ -131,6 +135,12 @@ def commands(self):
"is_shuffle_on_load": lambda: self._ctx.is_shuffle_on_load,
"set_shuffle_on_load": self.set_shuffle_on_load,
"toggle_shuffle_on_load": self.toggle_shuffle_on_load,
"is_disable_click_pause": lambda: self._ctx.is_disable_click_pause,
"set_disable_click_pause": self.set_disable_click_pause,
"toggle_disable_click_pause": self.toggle_disable_click_pause,
"is_disable_wheel_seek": lambda: self._ctx.is_disable_wheel_seek,
"set_disable_wheel_seek": self.set_disable_wheel_seek,
"toggle_disable_wheel_seek": self.toggle_disable_wheel_seek,
}

def cmd_all(self, command, *args):
Expand Down Expand Up @@ -164,6 +174,18 @@ def set_shuffle_on_load(self, is_shuffle_on_load):
def toggle_shuffle_on_load(self):
self._ctx.is_shuffle_on_load = not self._ctx.is_shuffle_on_load

def set_disable_click_pause(self, is_disable_click_pause):
self._ctx.is_disable_click_pause = is_disable_click_pause

def toggle_disable_click_pause(self):
self._ctx.is_disable_click_pause = not self._ctx.is_disable_click_pause

def set_disable_wheel_seek(self, is_disable_wheel_seek):
self._ctx.is_disable_wheel_seek = is_disable_wheel_seek

def toggle_disable_wheel_seek(self):
self._ctx.is_disable_wheel_seek = not self._ctx.is_disable_wheel_seek

def seek_sync_percent(self, percent):
if self._ctx.seek_sync_mode == SeekSyncMode.PERCENT:
self.all_seek_percent.emit(percent)
Expand Down Expand Up @@ -248,6 +270,7 @@ def _add_video_block(self, video):

vb = VideoBlock(
video_driver=self._ctx.video_driver,
context=self._ctx,
parent=self.parent(),
)

Expand Down
2 changes: 2 additions & 0 deletions gridplayer/player/player.py
Expand Up @@ -97,6 +97,8 @@ def __init__(self, **kwargs):
("grid_state_loaded", "grid.set_grid_state"),
("seek_sync_mode_loaded", "video_blocks.set_seek_sync_mode"),
("shuffle_on_load_loaded", "video_blocks.set_shuffle_on_load"),
("disable_click_pause_loaded", "video_blocks.set_disable_click_pause"),
("disable_wheel_seek_loaded", "video_blocks.set_disable_wheel_seek"),
("videos_loaded", "video_blocks.add_videos"),
("alert", "window_state.activate_window"),
("error", "dialogs.error"),
Expand Down

0 comments on commit b3b9bde

Please sign in to comment.