Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
feat(cli): add info window
  • Loading branch information
jeertmans committed Aug 21, 2023
commit d0f0d11b5013cd1c53ffb340320dcb963fb86a76
1 change: 0 additions & 1 deletion manim_slides/present/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ def _list_scenes(folder: Path) -> List[str]:
logger.warn(
f"Something went wrong with parsing presentation config `{filepath}`: {e}"
)
pass

logger.debug(f"Found {len(scenes)} valid scene configuration files in `{folder}`.")

Expand Down
48 changes: 41 additions & 7 deletions manim_slides/present/player.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,38 @@
from pathlib import Path
from typing import List, Optional
from typing import Any, List, Optional

from PySide6.QtCore import Qt, QUrl, Signal, Slot
from PySide6.QtGui import QIcon, QKeyEvent, QScreen
from PySide6.QtGui import QCloseEvent, QIcon, QKeyEvent, QScreen
from PySide6.QtMultimedia import QMediaPlayer
from PySide6.QtMultimediaWidgets import QVideoWidget
from PySide6.QtWidgets import QMainWindow
from PySide6.QtWidgets import QDialog, QGridLayout, QLabel, QMainWindow

from ..config import Config, PresentationConfig, SlideConfig
from ..logger import logger
from ..resources import * # noqa: F401, F403

WINDOW_NAME = "Manim Slides"
WINDOW_INFO_NAME = f"{WINDOW_NAME}: Info"


class Info(QDialog): # type: ignore[misc]
def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)

layout = QGridLayout()
self.scene_label = QLabel()
self.slide_label = QLabel()

layout.addWidget(QLabel("Scene:"), 1, 1)
layout.addWidget(QLabel("Slide:"), 2, 1)
layout.addWidget(self.scene_label, 1, 2)
layout.addWidget(self.slide_label, 2, 2)
self.setLayout(layout)
self.setFixedWidth(150)
self.setFixedHeight(80)

if parent := self.parent():
self.closeEvent = parent.closeEvent
self.keyPressEvent = parent.keyPressEvent


class Player(QMainWindow): # type: ignore[misc]
Expand Down Expand Up @@ -84,6 +104,8 @@ def __init__(
self.presentation_changed.connect(self.presentation_changed_callback)
self.slide_changed.connect(self.slide_changed_callback)

self.info = Info(parent=self)

# Connecting key callbacks

self.config.keys.QUIT.connect(self.quit)
Expand Down Expand Up @@ -253,15 +275,24 @@ def load_reversed_slide(self) -> None:

@Slot()
def presentation_changed_callback(self) -> None:
pass
index = self.current_presentation_index
count = self.presentations_count
self.info.scene_label.setText(f"{index+1:4d}/{count:4<d}")

@Slot()
def slide_changed_callback(self) -> None:
pass
index = self.current_slide_index
count = self.current_slides_count
self.info.slide_label.setText(f"{index+1:4d}/{count:4<d}")

def show(self) -> None:
super().show()
self.info.show()

@Slot()
def quit(self) -> None:
logger.info("Closing gracefully...")
self.info.deleteLater()
self.deleteLater()

@Slot()
Expand All @@ -282,6 +313,7 @@ def reverse(self) -> None:
@Slot()
def replay(self) -> None:
self.media_player.setPosition(0)
self.media_player.play()

@Slot()
def play_pause(self) -> None:
Expand All @@ -305,7 +337,9 @@ def hide_mouse(self) -> None:
else:
self.setCursor(Qt.BlankCursor)

@Slot()
def closeEvent(self, event: QCloseEvent) -> None:
self.quit()

def keyPressEvent(self, event: QKeyEvent) -> None:
key = event.key()
self.dispatch(key)
Expand Down
2 changes: 1 addition & 1 deletion manim_slides/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def merge_basenames(files: List[Path]) -> Path:
# https://github.com/jeertmans/manim-slides/issues/123
basename = hashlib.sha256(basenames_str.encode()).hexdigest()

logger.info(f"Generated a new basename for basenames: {basenames} -> '{basename}'")
logger.debug(f"Generated a new basename for basenames: {basenames} -> '{basename}'")

return dirname.joinpath(basename + ext)

Expand Down
2 changes: 1 addition & 1 deletion manim_slides/wizard.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ def __init__(self, config: Config):
# Create label for key name information
label = QLabel()
key_info = value["name"] or key
label.setText(key_info)
label.setText(key_info.title())
self.layout.addWidget(label, i, 0)

# Create button that will pop-up a dialog and ask to input a new key
Expand Down
Binary file modified static/wizard_dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified static/wizard_light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.