From efa10bfce33cba711e84fcbaae06e2fd4b8bf8ca Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Mon, 8 Sep 2025 17:32:48 +0200 Subject: [PATCH] Implement fullscreen --- croppa/main.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/croppa/main.py b/croppa/main.py index 0056aef..b85b496 100644 --- a/croppa/main.py +++ b/croppa/main.py @@ -123,6 +123,9 @@ class VideoEditor: # Display offset for panning when zoomed self.display_offset = [0, 0] + # Fullscreen state + self.is_fullscreen = False + # Progress bar state self.progress_bar_visible = False self.progress_bar_progress = 0.0 # 0.0 to 1.0 @@ -764,6 +767,25 @@ class VideoEditor: self.feedback_message_time = time.time() self.display_needs_update = True + def toggle_fullscreen(self): + """Toggle between windowed and fullscreen mode""" + window_title = "Image Editor" if self.is_image_mode else "Video Editor" + + if self.is_fullscreen: + # Switch to windowed mode + self.is_fullscreen = False + cv2.namedWindow(window_title, cv2.WINDOW_NORMAL) + cv2.resizeWindow(window_title, 1200, 800) + print("Switched to windowed mode") + else: + # Switch to fullscreen mode - just maximize the window + self.is_fullscreen = True + cv2.namedWindow(window_title, cv2.WINDOW_NORMAL) + cv2.setWindowProperty(window_title, cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN) + print("Switched to fullscreen mode") + + self.display_needs_update = True + def draw_feedback_message(self, frame): """Draw feedback message on frame if visible""" if not self.feedback_message or not self.feedback_message_time: @@ -1927,6 +1949,7 @@ class VideoEditor: print("Other Controls:") print(" Ctrl+Scroll: Zoom in/out") print(" Shift+S: Save screenshot") + print(" f: Toggle fullscreen") if len(self.video_files) > 1: print(" N: Next file") print(" n: Previous file") @@ -1956,6 +1979,7 @@ class VideoEditor: print("Other Controls:") print(" Ctrl+Scroll: Zoom in/out") print(" Shift+S: Save screenshot") + print(" f: Toggle fullscreen") print(" 1: Set cut start point") print(" 2: Set cut end point") print(" T: Toggle loop between markers") @@ -2040,6 +2064,8 @@ class VideoEditor: elif key == ord("-") or key == ord("_"): self.rotate_clockwise() print(f"Rotated to {self.rotation_angle}°") + elif key == ord("f"): + self.toggle_fullscreen() elif key == ord("s"): # Shift+S - Save screenshot self.save_current_frame() elif key == ord("W"):