mirror of
https://github.com/aclist/dztui.git
synced 2026-10-30 14:42:54 +01:00
chore: move method into config manager
This commit is contained in:
1 parent
f25982ab7a
commit
3d33d4f1e0
3 files changed
+27
-17
No files matched your search
+4
-15
@@ -150,7 +150,7 @@ class Controller(GObject.GObject):
|
|||||||
return self.prefs
|
return self.prefs
|
||||||
|
|
||||||
def set_prefs(self, prefs: UserPrefs) -> None:
|
def set_prefs(self, prefs: UserPrefs) -> None:
|
||||||
self.config_man = ConfigManager(prefs)
|
self.config_man = ConfigManager(prefs, self)
|
||||||
self.notes_man = NoteManager(self, prefs.paths.notes)
|
self.notes_man = NoteManager(self, prefs.paths.notes)
|
||||||
self.prefs = prefs
|
self.prefs = prefs
|
||||||
|
|
||||||
@@ -404,6 +404,7 @@ class Controller(GObject.GObject):
|
|||||||
def get_mod_store(self) -> Gtk.ListStore:
|
def get_mod_store(self) -> Gtk.ListStore:
|
||||||
return self.mediator.modtreeview.get_model()
|
return self.mediator.modtreeview.get_model()
|
||||||
|
|
||||||
|
# TODO: delegate to configman
|
||||||
def set_fav(self) -> None:
|
def set_fav(self) -> None:
|
||||||
treeview = self.get_active_treeview()
|
treeview = self.get_active_treeview()
|
||||||
name = treeview.get_value_at_index(0)
|
name = treeview.get_value_at_index(0)
|
||||||
@@ -456,20 +457,8 @@ class Controller(GObject.GObject):
|
|||||||
dialog = ExceptionDialog(self, str(e))
|
dialog = ExceptionDialog(self, str(e))
|
||||||
dialog.run()
|
dialog.run()
|
||||||
|
|
||||||
# TODO: move to ConfigMan
|
def update_api_key(self, key: Preferences, text: str) -> None:
|
||||||
@call_on_thread(strings.dialog.working)
|
self.config_man.update_api_key(key, text)
|
||||||
def update_api_key(self, text: str, key: Preferences) -> None:
|
|
||||||
if key is Preferences.STEAM:
|
|
||||||
res = test_steam_api(text)
|
|
||||||
else:
|
|
||||||
res = test_bm_api(text)
|
|
||||||
|
|
||||||
if res is True:
|
|
||||||
self.update_config(key, text)
|
|
||||||
else:
|
|
||||||
self.cleanup_func = StoredFunc(
|
|
||||||
lambda: self.emitter.emit("api_change_failed")
|
|
||||||
)
|
|
||||||
|
|
||||||
def set_resolution(self, window: "OuterWindow") -> None:
|
def set_resolution(self, window: "OuterWindow") -> None:
|
||||||
self.config_man.set_resolution(window)
|
self.config_man.set_resolution(window)
|
||||||
|
|||||||
@@ -10,7 +10,9 @@ from dzgui.const.constants import (
|
|||||||
WINDOW_DEFAULT_X,
|
WINDOW_DEFAULT_X,
|
||||||
WINDOW_DEFAULT_Y,
|
WINDOW_DEFAULT_Y,
|
||||||
)
|
)
|
||||||
|
from dzgui.api.probe import test_steam_api, test_bm_api
|
||||||
from dzgui.const.enum import Preferences
|
from dzgui.const.enum import Preferences
|
||||||
|
from dzgui.managers.threading import call_on_thread, StoredFunc, ThreadingManager
|
||||||
from dzgui.views.dialogs.generic import ExceptionDialog
|
from dzgui.views.dialogs.generic import ExceptionDialog
|
||||||
from dzgui.util._json import read_json, write_json
|
from dzgui.util._json import read_json, write_json
|
||||||
|
|
||||||
@@ -22,6 +24,7 @@ from gi.repository.Gtk import main_quit # noqa E402
|
|||||||
# import dzgui.api.servers as Servers
|
# import dzgui.api.servers as Servers
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.config.userprefs import UserPrefs
|
from dzgui.config.userprefs import UserPrefs
|
||||||
|
from dzgui.controllers.mc import Controller
|
||||||
from dzgui.views.base import OuterWindow
|
from dzgui.views.base import OuterWindow
|
||||||
from dzgui.views.trees.tree_servers import ServerTreeView
|
from dzgui.views.trees.tree_servers import ServerTreeView
|
||||||
|
|
||||||
@@ -29,9 +32,11 @@ logger = logging.getLogger(__name__)
|
|||||||
|
|
||||||
|
|
||||||
class ConfigManager:
|
class ConfigManager:
|
||||||
def __init__(self, prefs: "UserPrefs") -> None:
|
def __init__(self, prefs: "UserPrefs", controller: "Controller") -> None:
|
||||||
self.prefs = prefs
|
self.prefs = prefs
|
||||||
self.config = prefs.paths.config
|
self.config = prefs.paths.config
|
||||||
|
self.emitter = controller.get_emitter()
|
||||||
|
self.thread_man = ThreadingManager(controller)
|
||||||
|
|
||||||
def lookup(self, enum: Preferences) -> Any:
|
def lookup(self, enum: Preferences) -> Any:
|
||||||
key = self.enum_to_key(enum)
|
key = self.enum_to_key(enum)
|
||||||
@@ -73,6 +78,21 @@ class ConfigManager:
|
|||||||
logger.critical(e)
|
logger.critical(e)
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
|
# TODO: strings
|
||||||
|
@call_on_thread("checking api")
|
||||||
|
def update_api_key(self, key: Preferences, text: str) -> None:
|
||||||
|
if key is Preferences.STEAM:
|
||||||
|
res = test_steam_api(text)
|
||||||
|
else:
|
||||||
|
res = test_bm_api(text)
|
||||||
|
if res is True:
|
||||||
|
self.update_config(key, text)
|
||||||
|
else:
|
||||||
|
self.thread_man.set_cleanup_func(StoredFunc(
|
||||||
|
lambda: self.emitter.emit("api_change_failed")
|
||||||
|
))
|
||||||
|
return
|
||||||
|
|
||||||
def get_favorites(self) -> list[str]:
|
def get_favorites(self) -> list[str]:
|
||||||
return self.lookup(Preferences.IP_LIST)
|
return self.lookup(Preferences.IP_LIST)
|
||||||
|
|
||||||
|
|||||||
@@ -281,10 +281,11 @@ class Options(Gtk.Box):
|
|||||||
self.controller.update_config(enum, value)
|
self.controller.update_config(enum, value)
|
||||||
case Preferences.BM | Preferences.STEAM:
|
case Preferences.BM | Preferences.STEAM:
|
||||||
text = "".join(entry.get_text().split())
|
text = "".join(entry.get_text().split())
|
||||||
self.controller.update_api_key(text, enum)
|
self.controller.update_api_key(enum, text)
|
||||||
|
|
||||||
def _on_api_change_failed(self, emitter: "Emitter") -> None:
|
def _on_api_change_failed(self, emitter: "Emitter") -> None:
|
||||||
self.old_entry.set_text(self.old_text)
|
self.old_entry.set_text(self.old_text)
|
||||||
|
# FIXME: ambiguous error message
|
||||||
dialog = ExceptionDialog(self.controller, strings.api_error)
|
dialog = ExceptionDialog(self.controller, strings.api_error)
|
||||||
dialog.run()
|
dialog.run()
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user