mirror of
https://github.com/aclist/dztui.git
synced 2026-08-30 11:47:17 +02:00
Compare commits
No commits in common. "daa4aa00598046056c1e2b685b1526a76f5a8abd" and "0c6421fa6325747051a371209ad3b90954837427" have entirely different histories.
daa4aa0059
...
0c6421fa63
@ -49,10 +49,8 @@ class PageNum(Enum):
|
|||||||
SHORTCUTS = 7
|
SHORTCUTS = 7
|
||||||
FINAL = 8
|
FINAL = 8
|
||||||
|
|
||||||
|
|
||||||
class OptionalPageMixin:
|
class OptionalPageMixin:
|
||||||
"""Marks optional pages as advanceable"""
|
"""Marks optional pages as advanceable"""
|
||||||
|
|
||||||
def _on_map(self, page: "ScrolledWizardPage") -> None:
|
def _on_map(self, page: "ScrolledWizardPage") -> None:
|
||||||
EMITTER.emit("step_complete")
|
EMITTER.emit("step_complete")
|
||||||
|
|
||||||
@ -223,7 +221,7 @@ class APIValidationPage(ScrolledWizardPage):
|
|||||||
self.spinner.stop()
|
self.spinner.stop()
|
||||||
|
|
||||||
|
|
||||||
class BMValidationPage(OptionalPageMixin, APIValidationPage): # type: ignore
|
class BMValidationPage(OptionalPageMixin, APIValidationPage):
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
super().__init__(
|
super().__init__(
|
||||||
enum=PageNum.BM_API,
|
enum=PageNum.BM_API,
|
||||||
@ -453,7 +451,6 @@ class Assistant(Gtk.Assistant):
|
|||||||
else:
|
else:
|
||||||
self.set_default_size(1500, 900)
|
self.set_default_size(1500, 900)
|
||||||
|
|
||||||
self.is_binary = False if os.getenv("PYAPP") is None else True
|
|
||||||
self.config_path = XDG.config
|
self.config_path = XDG.config
|
||||||
|
|
||||||
self.config_values: dict[str, Any] = config_boilerplate
|
self.config_values: dict[str, Any] = config_boilerplate
|
||||||
@ -494,7 +491,7 @@ class Assistant(Gtk.Assistant):
|
|||||||
):
|
):
|
||||||
continue
|
continue
|
||||||
# NOTE: disabled for now on system-provided packages
|
# NOTE: disabled for now on system-provided packages
|
||||||
if isinstance(page, ShortcutCreationPage) and not self.is_binary:
|
if isinstance(page, ShortcutCreationPage) and os.getenv("PYAPP") is None:
|
||||||
continue
|
continue
|
||||||
self._add_page(page, page.get_page_type())
|
self._add_page(page, page.get_page_type())
|
||||||
|
|
||||||
@ -509,33 +506,32 @@ class Assistant(Gtk.Assistant):
|
|||||||
|
|
||||||
def _advance_page(self, index: int) -> int:
|
def _advance_page(self, index: int) -> int:
|
||||||
page = self.get_nth_page(index)
|
page = self.get_nth_page(index)
|
||||||
|
# TODO: use enums/isinstance
|
||||||
match page:
|
match page:
|
||||||
case IntroductionPage():
|
case self.page1:
|
||||||
pass
|
pass
|
||||||
case ConfigMigrationPage():
|
case self.page2:
|
||||||
if page.is_migrated():
|
if self.page2.is_migrated():
|
||||||
steam_path = lookup(self.config_path, Preferences.DEFAULT)
|
steam_path = lookup(self.config_path, Preferences.DEFAULT)
|
||||||
self.page7.set_steam_path(steam_path)
|
self.page7.set_steam_path(steam_path)
|
||||||
offset = 1 if not self.is_binary else 2
|
return self.get_n_pages() - 2
|
||||||
self.setup_complete = True
|
case self.page3:
|
||||||
return self.get_n_pages() - offset
|
|
||||||
case SteamPathPage():
|
|
||||||
self.config_values["default_steam_path"] = page.get_path_from_radio()
|
self.config_values["default_steam_path"] = page.get_path_from_radio()
|
||||||
case SteamValidationPage():
|
case self.page4:
|
||||||
self.config_values["steam_api"] = page.get_api_key()
|
self.config_values["steam_api"] = page.get_api_key()
|
||||||
case BMValidationPage():
|
case self.page5:
|
||||||
self.config_values["bm_api"] = page.get_api_key()
|
self.config_values["bm_api"] = page.get_api_key()
|
||||||
case PreferencesPage():
|
|
||||||
# NOTE: collects config values before advancing to last page
|
# NOTE: collects config values before advancing to last page
|
||||||
|
case self.page6:
|
||||||
name, use_miles, client = self.page6.get_prefs()
|
name, use_miles, client = self.page6.get_prefs()
|
||||||
self.config_values["name"] = name
|
self.config_values["name"] = name
|
||||||
self.config_values["use_miles"] = use_miles
|
self.config_values["use_miles"] = use_miles
|
||||||
self.config_values["client"] = client
|
self.config_values["client"] = client
|
||||||
self.write_config()
|
self.write_config()
|
||||||
self.page7.set_steam_path(self.config_values["default_steam_path"])
|
self.page7.set_steam_path(self.config_values["default_steam_path"])
|
||||||
|
case self.page7:
|
||||||
|
self.page7.create_shortcuts()
|
||||||
self.setup_complete = True
|
self.setup_complete = True
|
||||||
case ShortcutCreationPage():
|
|
||||||
page.create_shortcuts()
|
|
||||||
case _:
|
case _:
|
||||||
raise AttributeError("Trying to advance a non-canonical page")
|
raise AttributeError("Trying to advance a non-canonical page")
|
||||||
return index + 1
|
return index + 1
|
||||||
@ -579,7 +575,9 @@ class Assistant(Gtk.Assistant):
|
|||||||
bar.set_fraction(fraction)
|
bar.set_fraction(fraction)
|
||||||
bar.set_text(f"{page_num}/{total}")
|
bar.set_text(f"{page_num}/{total}")
|
||||||
|
|
||||||
if not isinstance(page, IntroductionPage):
|
# NOTE: disable forward action
|
||||||
|
# TODO: use page enums
|
||||||
|
if page != self.page1:
|
||||||
EMITTER.emit("step_pending")
|
EMITTER.emit("step_pending")
|
||||||
|
|
||||||
|
|
||||||
@ -606,7 +604,7 @@ class CheckboxWithLabel(Gtk.Box):
|
|||||||
self.button.set_active(state)
|
self.button.set_active(state)
|
||||||
|
|
||||||
|
|
||||||
class ShortcutCreationPage(OptionalPageMixin, ScrolledWizardPage): # type: ignore
|
class ShortcutCreationPage(OptionalPageMixin, ScrolledWizardPage):
|
||||||
def __init__(self, shortcut: Path) -> None:
|
def __init__(self, shortcut: Path) -> None:
|
||||||
super().__init__(
|
super().__init__(
|
||||||
enum=PageNum.SHORTCUTS,
|
enum=PageNum.SHORTCUTS,
|
||||||
|
|||||||
@ -107,11 +107,11 @@ config-settings-package = { pygobject-stubs = { config = "Gtk3,Gdk3,Soup2" } }
|
|||||||
|
|
||||||
[tool.pytest.ini_options]
|
[tool.pytest.ini_options]
|
||||||
markers = [
|
markers = [
|
||||||
"apitest: checks remote endpoints",
|
|
||||||
"config: config file keys/values",
|
"config: config file keys/values",
|
||||||
"mods: tests mod metadata/link creation",
|
"mods: tests mod metadata/link creation",
|
||||||
"pefile: validate PE files",
|
"pefile: validate PE files",
|
||||||
"post_install: requires a completed installation",
|
"post_install: requires a completed installation",
|
||||||
"redact: log redaction mechanisms",
|
"redact: log redaction mechanisms",
|
||||||
"slow: long-running tests",
|
"slow: long-running tests",
|
||||||
|
"webtest: checks remote endpoints"
|
||||||
]
|
]
|
||||||
|
|||||||
@ -4,7 +4,7 @@ from dzgui.config.query import get_config
|
|||||||
from dzgui.config.xdg import get_xdg_paths, parse_filepaths
|
from dzgui.config.xdg import get_xdg_paths, parse_filepaths
|
||||||
from dzgui.api import probe
|
from dzgui.api import probe
|
||||||
|
|
||||||
pytestmark = pytest.mark.apitest
|
pytestmark = pytest.mark.webtest
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user