Skip to content

Commit

Permalink
feat: add bulk loop commands
Browse files Browse the repository at this point in the history
  • Loading branch information
vzhd1701 committed Jun 22, 2022
1 parent 3ea89b5 commit 26150bd
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 1 deletion.
45 changes: 45 additions & 0 deletions gridplayer/player/managers/actions.py
Original file line number Diff line number Diff line change
Expand Up @@ -439,6 +439,51 @@
"func": ("all", "seek_shift_ms", -30000),
"show_if": "is_any_videos_seekable",
},
"Random Loop [ALL]": {
"title": translate("Actions", "Random Loop"),
"icon": "loop-random",
"func": ("all", "toggle_loop_random"),
"show_if": "is_any_videos_seekable",
},
"Set Loop Start [ALL]": {
"title": translate("Actions", "Set Loop Start"),
"key": "Shift+,",
"icon": "loop-start",
"func": ("all", "set_loop_start"),
"show_if": "is_any_videos_seekable",
},
"Set Loop End [ALL]": {
"title": translate("Actions", "Set Loop End"),
"key": "Shift+.",
"icon": "loop-end",
"func": ("all", "set_loop_end"),
"show_if": "is_any_videos_seekable",
},
"Loop Reset [ALL]": {
"title": translate("Actions", "Loop Reset"),
"key": "Shift+/",
"icon": "loop-reset",
"func": ("all", "reset_loop"),
"show_if": "is_any_videos_seekable",
},
"Repeat Single File [ALL]": {
"title": translate("Actions", "Repeat Single File"),
"icon": "loop-single",
"func": ("all", "set_repeat_mode", VideoRepeat.SINGLE_FILE),
"show_if": "is_any_videos_local_file",
},
"Repeat Directory [ALL]": {
"title": translate("Actions", "Repeat Directory"),
"icon": "loop-dir",
"func": ("all", "set_repeat_mode", VideoRepeat.DIR),
"show_if": "is_any_videos_local_file",
},
"Repeat Directory (Shuffle) [ALL]": {
"title": translate("Actions", "Repeat Directory (Shuffle)"),
"icon": "loop-dir-shuffle",
"func": ("all", "set_repeat_mode", VideoRepeat.DIR_SHUFFLE),
"show_if": "is_any_videos_local_file",
},
"Faster [ALL]": {
"title": translate("Actions", "Faster"),
"key": "Shift+C",
Expand Down
12 changes: 12 additions & 0 deletions gridplayer/player/managers/menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,18 @@
"-15s [ALL]",
"-30s [ALL]",
),
(
"Loop",
"Random Loop [ALL]",
"---",
"Set Loop Start [ALL]",
"Set Loop End [ALL]",
"Loop Reset [ALL]",
"---",
"Repeat Single File [ALL]",
"Repeat Directory [ALL]",
"Repeat Directory (Shuffle) [ALL]",
),
(
"Speed",
"Faster [ALL]",
Expand Down
13 changes: 12 additions & 1 deletion gridplayer/player/managers/video_blocks.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from gridplayer.dialogs.input_dialog import QCustomSpinboxTimeInput
from gridplayer.models.video import Video
from gridplayer.params.static import SeekSyncMode, VideoAspect
from gridplayer.params.static import SeekSyncMode, VideoAspect, VideoRepeat
from gridplayer.player.managers.base import ManagerBase
from gridplayer.settings import Settings
from gridplayer.utils.qt import qt_connect
Expand Down Expand Up @@ -83,6 +83,12 @@ class VideoBlocksManager(ManagerBase):
all_next_frame = pyqtSignal()
all_previous_frame = pyqtSignal()

all_toggle_loop_random = pyqtSignal()
all_set_loop_start = pyqtSignal()
all_set_loop_end = pyqtSignal()
all_reset_loop = pyqtSignal()
all_set_repeat_mode = pyqtSignal(VideoRepeat)

all_rate_increase = pyqtSignal()
all_rate_decrease = pyqtSignal()
all_rate_reset = pyqtSignal()
Expand Down Expand Up @@ -239,6 +245,11 @@ def _add_video_block(self, video):
(self.all_seek, vb.seek),
(self.all_next_frame, vb.next_frame),
(self.all_previous_frame, vb.previous_frame),
(self.all_toggle_loop_random, vb.toggle_loop_random),
(self.all_set_loop_start, vb.set_loop_start),
(self.all_set_loop_end, vb.set_loop_end),
(self.all_reset_loop, vb.reset_loop),
(self.all_set_repeat_mode, vb.set_repeat_mode),
(self.all_rate_increase, vb.rate_increase),
(self.all_rate_decrease, vb.rate_decrease),
(self.all_rate_reset, vb.rate_reset),
Expand Down

0 comments on commit 26150bd

Please sign in to comment.