diff --git a/booru_viewer/gui/app.py b/booru_viewer/gui/app.py deleted file mode 100644 index d546b5d..0000000 --- a/booru_viewer/gui/app.py +++ /dev/null @@ -1,60 +0,0 @@ -"""Main Qt6 application window.""" - -from __future__ import annotations - -import asyncio -import logging -import os -import sys -import threading -from pathlib import Path - -from PySide6.QtCore import Qt, QTimer, Signal, QObject, QUrl, Property -from PySide6.QtGui import QPixmap, QAction, QKeySequence, QDesktopServices, QShortcut, QColor -from PySide6.QtWidgets import ( - QApplication, - QMainWindow, - QWidget, - QVBoxLayout, - QHBoxLayout, - QStackedWidget, - QComboBox, - QLabel, - QPushButton, - QStatusBar, - QSplitter, - QMessageBox, - QTextEdit, - QMenu, - QFileDialog, - QSpinBox, - QScrollArea, - QProgressBar, -) - -from dataclasses import dataclass, field - -from ..core.db import Database, Site -from ..core.api.base import BooruClient, Post -from ..core.api.detect import client_for_type -from ..core.cache import download_image, download_thumbnail, cache_size_bytes, evict_oldest, evict_oldest_thumbnails -from ..core.config import MEDIA_EXTENSIONS - -from .grid import ThumbnailGrid -from .preview import ImagePreview -from .search import SearchBar -from .sites import SiteManagerDialog -from .bookmarks import BookmarksView -from .library import LibraryView -from .settings import SettingsDialog - -log = logging.getLogger("booru") - - -# -- Refactor compatibility shims (deleted in commit 14) -- -from .search_state import SearchState # re-export for refactor compat -from .log_handler import LogHandler # re-export for refactor compat -from .async_signals import AsyncSignals # re-export for refactor compat -from .info_panel import InfoPanel # re-export for refactor compat -from .main_window import BooruApp # re-export for refactor compat -from .app_runtime import run # re-export for refactor compat diff --git a/booru_viewer/gui/main_window.py b/booru_viewer/gui/main_window.py index 60d85fd..a545a85 100644 --- a/booru_viewer/gui/main_window.py +++ b/booru_viewer/gui/main_window.py @@ -41,7 +41,7 @@ from ..core.cache import download_image, download_thumbnail, cache_size_bytes, e from ..core.config import MEDIA_EXTENSIONS from .grid import ThumbnailGrid -from .preview import ImagePreview +from .preview_pane import ImagePreview from .search import SearchBar from .sites import SiteManagerDialog from .bookmarks import BookmarksView @@ -1130,7 +1130,7 @@ class BooruApp(QMainWindow): # the entire multi-MB file to land. Cached videos go through # the normal flow because the local path is already there. from ..core.cache import is_cached - from .preview import VIDEO_EXTENSIONS + from .media.constants import VIDEO_EXTENSIONS is_video = bool( post.file_url and Path(post.file_url.split('?')[0]).suffix.lower() in VIDEO_EXTENSIONS @@ -2058,7 +2058,7 @@ class BooruApp(QMainWindow): idx = self._grid.selected_index if 0 <= idx < len(self._posts): self._info_panel.set_post(self._posts[idx]) - from .preview import FullscreenPreview + from .popout.window import FullscreenPreview # Restore persisted window state saved_geo = self._db.get_setting("slideshow_geometry") saved_fs = self._db.get_setting_bool("slideshow_fullscreen") @@ -2132,7 +2132,7 @@ class BooruApp(QMainWindow): def _on_fullscreen_closed(self) -> None: # Persist popout window state to DB if self._fullscreen_window: - from .preview import FullscreenPreview + from .popout.window import FullscreenPreview fs = FullscreenPreview._saved_fullscreen geo = FullscreenPreview._saved_geometry self._db.set_setting("slideshow_fullscreen", "1" if fs else "0") diff --git a/booru_viewer/gui/preview.py b/booru_viewer/gui/preview.py deleted file mode 100644 index c3ffaaa..0000000 --- a/booru_viewer/gui/preview.py +++ /dev/null @@ -1,28 +0,0 @@ -"""Full media preview — image viewer with zoom/pan and video player.""" - -from __future__ import annotations - -import logging -from pathlib import Path -from typing import NamedTuple - -from PySide6.QtCore import Qt, QPointF, QRect, Signal, QTimer, Property -from PySide6.QtGui import QPixmap, QPainter, QWheelEvent, QMouseEvent, QKeyEvent, QMovie, QColor -from PySide6.QtWidgets import ( - QWidget, QVBoxLayout, QHBoxLayout, QLabel, QMainWindow, - QStackedWidget, QPushButton, QSlider, QMenu, QInputDialog, QStyle, -) - -import mpv as mpvlib - -_log = logging.getLogger("booru") - - -# -- Refactor compatibility shims (deleted in commit 14) -- -from .media.constants import VIDEO_EXTENSIONS, _is_video # re-export for refactor compat -from .popout.viewport import Viewport, _DRIFT_TOLERANCE # re-export for refactor compat -from .media.image_viewer import ImageViewer # re-export for refactor compat -from .media.mpv_gl import _MpvGLWidget, _MpvOpenGLSurface # re-export for refactor compat -from .media.video_player import _ClickSeekSlider, VideoPlayer # re-export for refactor compat -from .popout.window import FullscreenPreview # re-export for refactor compat -from .preview_pane import ImagePreview # re-export for refactor compat diff --git a/booru_viewer/main_gui.py b/booru_viewer/main_gui.py index b0c8660..e4687b6 100644 --- a/booru_viewer/main_gui.py +++ b/booru_viewer/main_gui.py @@ -35,7 +35,7 @@ def main() -> None: file=sys.stderr, ) - from booru_viewer.gui.app import run + from booru_viewer.gui.app_runtime import run run()