mirror of
https://github.com/aclist/dztui.git
synced 2026-08-27 10:17:31 +02:00
chore: additional error handling
This commit is contained in:
parent
5e2d3d1a88
commit
59a84e9e3a
@ -35,3 +35,6 @@
|
||||
.masked-tree {
|
||||
background-color: transparent;
|
||||
}
|
||||
.error-frame border {
|
||||
border: 2px solid red;
|
||||
}
|
||||
|
||||
@ -6,7 +6,6 @@ This wizard is going to help you set up some common config options before launch
|
||||
|
||||
### SteamPathPage
|
||||
# TODO
|
||||
error_steam_path = "ERROR TEXT HERE"
|
||||
heading_steam_path = "Steam path"
|
||||
blurb_steam_path = """
|
||||
DZGUI needs to find the location to your default Steam installation.
|
||||
@ -36,6 +35,7 @@ config_import_box = (
|
||||
)
|
||||
config_new_button = "Create new DZGUI 7 config from scratch"
|
||||
config_new_box = "A new config file will be created. Proceed to the next step."
|
||||
config_error_box = "Something went wrong while writing a new config file to the system."
|
||||
|
||||
### APIValidationPage
|
||||
entry_placeholder = "Enter API key here"
|
||||
|
||||
@ -20,7 +20,7 @@ from dzgui.managers.threading import call_on_thread, StoredFunc, ThreadingManage
|
||||
from dzgui.strings import wizard
|
||||
from dzgui.util._json import write_json
|
||||
from dzgui.util.open_links import open_link_by_url
|
||||
from dzgui.util.css import add_class
|
||||
from dzgui.util.css import add_class, load_css
|
||||
from dzgui.views.components.buttons import WebButton
|
||||
from dzgui.views.components.entry import APIEntry
|
||||
from dzgui.views.components.misc import ClientCombo
|
||||
@ -138,7 +138,6 @@ class NotificationFrame(Gtk.Frame):
|
||||
self.add(self.box)
|
||||
|
||||
if error:
|
||||
# TODO: custom css file only for wizard
|
||||
add_class(self, "error-frame")
|
||||
|
||||
|
||||
@ -250,11 +249,7 @@ class IntroductionPage(ScrolledWizardPage):
|
||||
class Heading(Gtk.Label):
|
||||
def __init__(self, label: str):
|
||||
super().__init__(label=label)
|
||||
|
||||
# add_class(self, "heading")
|
||||
# font weight
|
||||
# TODO: set css em size
|
||||
# TODO: bold text
|
||||
add_class(self, "settings-subheading")
|
||||
|
||||
|
||||
class ChunkyButton(Gtk.Button):
|
||||
@ -317,17 +312,18 @@ class ConfigMigrationPage(ScrolledWizardPage):
|
||||
|
||||
self.add_start(self.grid)
|
||||
|
||||
self.err_box = NotificationFrame(wizard.config_error_box, error=True)
|
||||
self.success_box = NotificationFrame(wizard.config_import_box)
|
||||
self.from_scratch_box = NotificationFrame(wizard.config_new_box)
|
||||
self.add_start(self.success_box)
|
||||
self.add_start(self.from_scratch_box)
|
||||
for box in self.err_box, self.success_box, self.from_scratch_box:
|
||||
self.add_start(box)
|
||||
|
||||
self.connect("map", self._hide_boxes)
|
||||
self.import_button.connect("clicked", self._on_import_clicked)
|
||||
self.new_button.connect("clicked", self._on_new_clicked)
|
||||
|
||||
def _hide_boxes(self, page: Self) -> None:
|
||||
for box in self.success_box, self.from_scratch_box:
|
||||
for box in self.success_box, self.from_scratch_box, self.err_box:
|
||||
box.set_visible(False)
|
||||
|
||||
def _on_new_clicked(self, button: Gtk.Button) -> None:
|
||||
@ -346,7 +342,9 @@ class ConfigMigrationPage(ScrolledWizardPage):
|
||||
self.migrated = True
|
||||
self.success_box.set_visible(True)
|
||||
except Exception:
|
||||
pass
|
||||
self.err_box.set_visible(True)
|
||||
EMITTER.emit("step_pending")
|
||||
return
|
||||
EMITTER.emit("step_complete")
|
||||
EMITTER.emit("config", True)
|
||||
|
||||
@ -467,6 +465,7 @@ class Assistant(Gtk.Assistant):
|
||||
self.connect("cancel", self.destroy_and_quit)
|
||||
self.connect("close", self.destroy_and_quit)
|
||||
self.show_all()
|
||||
load_css()
|
||||
|
||||
def write_config(self) -> None:
|
||||
write_json(self.config_values, self.config_path)
|
||||
@ -546,15 +545,13 @@ class SteamPathPage(ScrolledWizardPage):
|
||||
)
|
||||
|
||||
self.page_type = Gtk.AssistantPageType.INTRO
|
||||
|
||||
# TODO: add custom CSS class to Gtk.Frame so that only this one is styled
|
||||
err_box = NotificationFrame(wizard.error_steam_path, error=True)
|
||||
self.err = err_box
|
||||
self.err_box = NotificationFrame(wizard.no_valid_paths, error=True)
|
||||
|
||||
self.scan_button = Gtk.Button(label=wizard.button_scan, halign=Gtk.Align.CENTER)
|
||||
self.scan_button.connect("clicked", self._on_scan_clicked)
|
||||
|
||||
self.add_start(self.scan_button)
|
||||
self.add_start(self.err_box)
|
||||
self.connect("map", self._start_incomplete)
|
||||
|
||||
def _on_scan_clicked(self, button: Gtk.Button) -> None:
|
||||
@ -567,9 +564,8 @@ class SteamPathPage(ScrolledWizardPage):
|
||||
spacing=10,
|
||||
)
|
||||
total = len(paths)
|
||||
err_box = NotificationFrame(wizard.no_valid_paths)
|
||||
if total == 0:
|
||||
self.add_start(err_box)
|
||||
self.err_box.set_visible(True)
|
||||
else:
|
||||
button_box.add(Gtk.Label(label=f"Steam paths found: {total} total."))
|
||||
for i, button_path in enumerate(paths):
|
||||
@ -589,11 +585,7 @@ class SteamPathPage(ScrolledWizardPage):
|
||||
return active.get_label()
|
||||
|
||||
def _start_incomplete(self, page: Self) -> None:
|
||||
self.err.set_visible(False)
|
||||
|
||||
def _test_error_func(self, button: Gtk.CheckButton) -> None:
|
||||
self.err.set_visible(True)
|
||||
EMITTER.emit("step_incomplete")
|
||||
self.err_box.set_visible(False)
|
||||
|
||||
|
||||
class SetupWizard(Gtk.Application):
|
||||
@ -628,6 +620,3 @@ class Emitter(GObject.GObject):
|
||||
|
||||
|
||||
EMITTER = Emitter()
|
||||
|
||||
# TODO: Ctrl-q
|
||||
# TODO: change behavior of global emitter
|
||||
|
||||
Loading…
Reference in New Issue
Block a user