First upload, 18 controller version
This commit is contained in:
52
app/ui/preview_fullscreen.py
Normal file
52
app/ui/preview_fullscreen.py
Normal file
@@ -0,0 +1,52 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from app.qt_compat import QLabel, Qt, QVBoxLayout, QWidget
|
||||
|
||||
from app.ui.preview_modes import PREVIEW_MODE_TILE
|
||||
from app.ui.preview_widget import PreviewWidget
|
||||
|
||||
|
||||
class FullscreenPreviewWindow(QWidget):
|
||||
def __init__(
|
||||
self,
|
||||
controller,
|
||||
preview_mode: str = PREVIEW_MODE_TILE,
|
||||
scene_role: str = "live",
|
||||
technical_preview: bool | None = None,
|
||||
parent: QWidget | None = None,
|
||||
) -> None:
|
||||
super().__init__(parent)
|
||||
self.setWindowTitle("Infinity Mirror Preview")
|
||||
self.setWindowFlag(Qt.Window, True)
|
||||
self.setAttribute(Qt.WA_DeleteOnClose, False)
|
||||
|
||||
layout = QVBoxLayout(self)
|
||||
layout.setContentsMargins(0, 0, 0, 0)
|
||||
layout.setSpacing(0)
|
||||
|
||||
self.preview_widget = PreviewWidget(
|
||||
controller,
|
||||
preview_mode=preview_mode,
|
||||
scene_role=scene_role,
|
||||
technical_preview=technical_preview,
|
||||
)
|
||||
self.preview_widget.tileClicked.connect(controller.set_selected_tile)
|
||||
layout.addWidget(self.preview_widget, 1)
|
||||
|
||||
hint = QLabel("Press F11 or Escape to leave fullscreen preview")
|
||||
hint.setAlignment(Qt.AlignCenter)
|
||||
hint.setStyleSheet("background: #2D2D30; color: #CCCCCC; padding: 8px; font-size: 12px; border-top: 1px solid #3C3C3C;")
|
||||
layout.addWidget(hint)
|
||||
|
||||
def set_preview_mode(self, mode: str) -> None:
|
||||
self.preview_widget.set_preview_mode(mode)
|
||||
|
||||
def set_technical_preview(self, enabled: bool) -> None:
|
||||
self.preview_widget.set_technical_preview(enabled)
|
||||
|
||||
def keyPressEvent(self, event) -> None:
|
||||
if event.key() in {Qt.Key_F11, Qt.Key_Escape}:
|
||||
self.hide()
|
||||
event.accept()
|
||||
return
|
||||
super().keyPressEvent(event)
|
||||
Reference in New Issue
Block a user