Video: - Replace Qt Multimedia with mpv via python-mpv + OpenGL render API - Hardware-accelerated decoding, frame-accurate seeking, proper EOF detection - Translucent overlay controls in both preview and popout - LC_NUMERIC=C for mpv locale compatibility Popout viewer (renamed from slideshow): - Floating toolbar + controls overlay with auto-hide (2s) - Window auto-resizes to content aspect ratio on navigation - Hyprland: hyprctl resizewindowpixel + keep_aspect_ratio prop - Window geometry persisted to DB across sessions - Smart F11 exit sizing (60% monitor, centered) Preview toolbar: - Bookmark, Save, BL Tag, BL Post, Popout buttons above preview - Save opens folder picker menu, shows Save/Unsave state - Blacklist actions have confirmation dialogs - Per-tab button visibility (Library: Save + Popout only) - Cross-tab state management with grid selection clearing Search & pagination: - SearchState dataclass replaces 8 scattered attrs + defensive getattr - Media type filter dropdown (All/Animated/Video/GIF/Audio) - API retry with backoff on 429/503/timeout - Infinite scroll dedup fix (local seen set per backfill round) - Prev/Next buttons hide at boundaries, "(end)" status indicator Grid: - Rubber band drag selection - Saved/bookmarked dots update instantly across all tabs - Library/bookmarks emit signals on file deletion for cross-tab sync Settings & misc: - Default site option - Max thumbnail cache setting (500MB default) - Source URLs clickable in info panel - Long URLs truncated to prevent splitter blowout - Bulk save no longer auto-bookmarks
124 lines
2.4 KiB
CSS
124 lines
2.4 KiB
CSS
/* booru-viewer — Tokyo Night */
|
|
|
|
QWidget {
|
|
background-color: #1a1b26;
|
|
color: #a9b1d6;
|
|
font-size: 13px;
|
|
}
|
|
|
|
QPushButton {
|
|
background-color: #24283b;
|
|
color: #a9b1d6;
|
|
border: 1px solid #3b4261;
|
|
border-radius: 4px;
|
|
padding: 5px 14px;
|
|
}
|
|
QPushButton:hover {
|
|
background-color: #3b4261;
|
|
border-color: #7aa2f7;
|
|
}
|
|
QPushButton:pressed {
|
|
background-color: #7aa2f7;
|
|
color: #1a1b26;
|
|
}
|
|
QPushButton:checked {
|
|
background-color: #7aa2f7;
|
|
color: #1a1b26;
|
|
border-color: #7aa2f7;
|
|
}
|
|
|
|
QLineEdit, QSpinBox, QComboBox, QTextEdit {
|
|
background-color: #24283b;
|
|
color: #a9b1d6;
|
|
border: 1px solid #3b4261;
|
|
border-radius: 4px;
|
|
padding: 4px 8px;
|
|
selection-background-color: #7aa2f7;
|
|
selection-color: #1a1b26;
|
|
}
|
|
QLineEdit:focus, QSpinBox:focus, QTextEdit:focus {
|
|
border-color: #7aa2f7;
|
|
}
|
|
|
|
QComboBox::drop-down { border: none; width: 20px; }
|
|
QComboBox QAbstractItemView {
|
|
background-color: #24283b;
|
|
color: #a9b1d6;
|
|
border: 1px solid #3b4261;
|
|
selection-background-color: #3b4261;
|
|
}
|
|
|
|
QScrollBar:vertical {
|
|
background: #1a1b26;
|
|
width: 10px;
|
|
border: none;
|
|
}
|
|
QScrollBar::handle:vertical {
|
|
background: #3b4261;
|
|
border-radius: 4px;
|
|
min-height: 20px;
|
|
}
|
|
QScrollBar::handle:vertical:hover { background: #7aa2f7; }
|
|
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0; }
|
|
|
|
QScrollBar:horizontal {
|
|
background: #1a1b26;
|
|
height: 10px;
|
|
}
|
|
QScrollBar::handle:horizontal {
|
|
background: #3b4261;
|
|
border-radius: 4px;
|
|
}
|
|
QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0; }
|
|
|
|
QMenuBar, QMenu {
|
|
background-color: #1a1b26;
|
|
color: #a9b1d6;
|
|
border: 1px solid #24283b;
|
|
}
|
|
QMenu::item:selected {
|
|
background-color: #3b4261;
|
|
}
|
|
|
|
QStatusBar {
|
|
background-color: #1a1b26;
|
|
color: #565f89;
|
|
}
|
|
|
|
QSplitter::handle {
|
|
background: #3b4261;
|
|
width: 2px;
|
|
}
|
|
|
|
QLabel { background: transparent; }
|
|
|
|
QSlider::groove:horizontal {
|
|
background: #24283b;
|
|
height: 4px;
|
|
border-radius: 2px;
|
|
}
|
|
QSlider::handle:horizontal {
|
|
background: #7aa2f7;
|
|
width: 12px;
|
|
margin: -4px 0;
|
|
border-radius: 6px;
|
|
}
|
|
|
|
QTabBar::tab {
|
|
background: #24283b;
|
|
color: #a9b1d6;
|
|
border: 1px solid #3b4261;
|
|
padding: 6px 16px;
|
|
}
|
|
QTabBar::tab:selected {
|
|
background: #3b4261;
|
|
color: #7aa2f7;
|
|
}
|
|
|
|
/* Popout & preview overlay controls */
|
|
QWidget#_preview_controls,
|
|
QWidget#_slideshow_toolbar,
|
|
QWidget#_slideshow_controls {
|
|
background: rgba(0, 0, 0, 160);
|
|
}
|