Files
RFP_Infinity-Vis/app/ui/preview_fullscreen.py

53 lines
1.8 KiB
Python

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)