mirror of
https://github.com/SeedSigner/seedsigner.git
synced 2026-09-14 04:45:08 +00:00
Merge pull request #796 from alvroble/auto_detect_screenshot_generator
[Refactor] Enable auto-detection of screenshot generator renderer
This commit is contained in:
@@ -20,6 +20,11 @@ class Renderer(ConfigurableSingleton):
|
||||
lock = Lock()
|
||||
|
||||
|
||||
@property
|
||||
def is_screenshot_generator(self) -> bool:
|
||||
return False
|
||||
|
||||
|
||||
@classmethod
|
||||
def configure_instance(cls):
|
||||
# Instantiate the one and only Renderer instance
|
||||
|
||||
@@ -43,21 +43,18 @@ class LogoScreen(BaseScreen):
|
||||
|
||||
@dataclass
|
||||
class OpeningSplashView(View):
|
||||
is_screenshot_renderer: bool = False
|
||||
force_partner_logos: bool|None = None
|
||||
|
||||
def run(self):
|
||||
self.run_screen(
|
||||
OpeningSplashScreen,
|
||||
is_screenshot_renderer=self.is_screenshot_renderer,
|
||||
force_partner_logos=self.force_partner_logos
|
||||
)
|
||||
|
||||
|
||||
|
||||
class OpeningSplashScreen(LogoScreen):
|
||||
def __init__(self, is_screenshot_renderer=False, force_partner_logos=None):
|
||||
self.is_screenshot_renderer = is_screenshot_renderer
|
||||
def __init__(self, force_partner_logos=None):
|
||||
self.force_partner_logos = force_partner_logos
|
||||
super().__init__()
|
||||
|
||||
@@ -85,7 +82,7 @@ class OpeningSplashScreen(LogoScreen):
|
||||
logo_offset_y = 0
|
||||
|
||||
background = Image.new("RGBA", size=self.logo.size, color="black")
|
||||
if not self.is_screenshot_renderer:
|
||||
if not self.renderer.is_screenshot_generator:
|
||||
# Fade in alpha
|
||||
for i in range(250, -1, -25):
|
||||
self.logo.putalpha(255 - i)
|
||||
@@ -108,11 +105,11 @@ class OpeningSplashScreen(LogoScreen):
|
||||
version_y = int(self.canvas_height/2) + int(logo_height/2) + logo_offset_y + GUIConstants.COMPONENT_PADDING
|
||||
self.renderer.draw.text(xy=(version_x, version_y), text=version, font=font, fill=GUIConstants.ACCENT_COLOR, anchor="mt")
|
||||
|
||||
if not self.is_screenshot_renderer:
|
||||
if not self.renderer.is_screenshot_generator:
|
||||
self.renderer.show_image()
|
||||
|
||||
if show_partner_logos:
|
||||
if not self.is_screenshot_renderer:
|
||||
if not self.renderer.is_screenshot_generator:
|
||||
# Hold on the version num for a moment
|
||||
time.sleep(1)
|
||||
|
||||
@@ -136,7 +133,7 @@ class OpeningSplashScreen(LogoScreen):
|
||||
|
||||
self.renderer.show_image()
|
||||
|
||||
if not self.is_screenshot_renderer:
|
||||
if not self.renderer.is_screenshot_generator:
|
||||
# Hold on the splash screen for a moment
|
||||
time.sleep(2)
|
||||
|
||||
|
||||
@@ -248,12 +248,11 @@ class PowerOptionsView(View):
|
||||
|
||||
@dataclass
|
||||
class RestartView(View):
|
||||
is_screenshot_renderer: bool = False
|
||||
|
||||
def run(self):
|
||||
from seedsigner.gui.screens.screen import ResetScreen
|
||||
|
||||
if not self.is_screenshot_renderer:
|
||||
if not self.renderer.is_screenshot_generator:
|
||||
# We don't want the screenshot generator to actually try to do the restart
|
||||
RestartView.DoResetThread().start()
|
||||
|
||||
|
||||
@@ -285,8 +285,8 @@ def generate_screenshots(locale):
|
||||
|
||||
screenshot_sections = {
|
||||
"Main Menu Views": [
|
||||
ScreenshotConfig(OpeningSplashView, dict(is_screenshot_renderer=True, force_partner_logos=True)),
|
||||
ScreenshotConfig(OpeningSplashView, dict(is_screenshot_renderer=True, force_partner_logos=False), screenshot_name="OpeningSplashView_no_partner_logos"),
|
||||
ScreenshotConfig(OpeningSplashView, dict(force_partner_logos=True)),
|
||||
ScreenshotConfig(OpeningSplashView, dict(force_partner_logos=False), screenshot_name="OpeningSplashView_no_partner_logos"),
|
||||
ScreenshotConfig(MainMenuView),
|
||||
ScreenshotConfig(MainMenuView, screenshot_name='MainMenuView_SDCardStateChangeToast_removed', toast_thread=SDCardStateChangeToastManagerThread(action=MicroSD.ACTION__REMOVED, activation_delay=0, duration=0)),
|
||||
ScreenshotConfig(MainMenuView, screenshot_name='MainMenuView_SDCardStateChangeToast_inserted', toast_thread=SDCardStateChangeToastManagerThread(action=MicroSD.ACTION__INSERTED, activation_delay=0, duration=0)),
|
||||
@@ -298,7 +298,7 @@ def generate_screenshots(locale):
|
||||
ScreenshotConfig(MainMenuView, screenshot_name='MainMenuView_DireWarningToast', toast_thread=DireWarningToast("This is a dire warning toast!", activation_delay=0, duration=0)),
|
||||
ScreenshotConfig(MainMenuView, screenshot_name='MainMenuView_ErrorToast', toast_thread=ErrorToast("This is an error toast!", activation_delay=0, duration=0)),
|
||||
ScreenshotConfig(PowerOptionsView),
|
||||
ScreenshotConfig(RestartView, dict(is_screenshot_renderer=True)),
|
||||
ScreenshotConfig(RestartView),
|
||||
ScreenshotConfig(PowerOffView),
|
||||
],
|
||||
"Seed Views": [
|
||||
|
||||
@@ -22,6 +22,10 @@ class ScreenshotRenderer(Renderer):
|
||||
screenshot_path: str = None
|
||||
screenshot_filename: str = None
|
||||
|
||||
@property
|
||||
def is_screenshot_generator(self) -> bool:
|
||||
return True
|
||||
|
||||
@classmethod
|
||||
def configure_instance(cls):
|
||||
# Instantiate the one and only Renderer instance
|
||||
|
||||
Reference in New Issue
Block a user