chore: reroute connect method

This commit is contained in:
aclist committed 2026-02-28 22:34:25 +09:00
1 parent 3b40ea1846
commit 2fa51c80f4
5 files changed
+45 -20

No files matched your search

+2 -1
View File
@@ -464,11 +464,12 @@ def response_to_fq_ip(res: dict) -> str:
def query_by_id(addr: str, key: str) -> Optional[dict]: def query_by_id(addr: str, key: str) -> Optional[dict]:
try: try:
resolved = map_id_to_record(key, addr) resolved = map_id_to_record(key, addr)
res = query_direct(resolved.ip, resolved.qport) return query_direct(resolved.ip, resolved.qport)
except Exception as e: except Exception as e:
logger.critical(e) logger.critical(e)
return None return None
def query_by_ip(addr: str) -> Optional[dict]: def query_by_ip(addr: str) -> Optional[dict]:
try: try:
record = addr.split(":") record = addr.split(":")
+24 -5
View File
@@ -12,6 +12,7 @@ from warnings import deprecated
import dzgui.api.pefile as PeFile import dzgui.api.pefile as PeFile
import dzgui.util._json as JSON # noqa import dzgui.util._json as JSON # noqa
from dzgui.api.mods import ( from dzgui.api.mods import (
get_delimited_mods, get_delimited_mods,
get_local_mod_path, get_local_mod_path,
@@ -40,6 +41,7 @@ from dzgui.config.query import lookup
from dzgui.config.userprefs import UserPrefs from dzgui.config.userprefs import UserPrefs
from dzgui.controllers.emitter import Emitter from dzgui.controllers.emitter import Emitter
from dzgui.managers.config import ConfigManager from dzgui.managers.config import ConfigManager
from dzgui.managers.connection import ConnectionManager
from dzgui.managers.contextmenu import ContextMenuManager from dzgui.managers.contextmenu import ContextMenuManager
from dzgui.model.proxy_model import ProxyModelManager from dzgui.model.proxy_model import ProxyModelManager
from dzgui.model.servers import ServerModelManager from dzgui.model.servers import ServerModelManager
@@ -290,13 +292,13 @@ class Controller(GObject.GObject):
def toggle_config(self, key: Preferences) -> None: def toggle_config(self, key: Preferences) -> None:
self.config_man.toggle_config(key) self.config_man.toggle_config(key)
#config = self.prefs.paths.config # config = self.prefs.paths.config
#try: # try:
# update.toggle_config(config, context) # update.toggle_config(config, context)
# # NOTE: 'use_miles' key is updated dynamically for statusbar unit # # NOTE: 'use_miles' key is updated dynamically for statusbar unit
# if context == Preferences.DIST: # if context == Preferences.DIST:
# self.prefs.use_miles = not self.prefs.use_miles # self.prefs.use_miles = not self.prefs.use_miles
#except Exception as e: # except Exception as e:
# logger.critical(e) # logger.critical(e)
# trace = traceback.format_exc() # trace = traceback.format_exc()
# dialog = ExceptionDialog(self, trace) # dialog = ExceptionDialog(self, trace)
@@ -304,9 +306,9 @@ class Controller(GObject.GObject):
def update_config(self, key: Preferences, value: str) -> None: def update_config(self, key: Preferences, value: str) -> None:
self.config_man.update_config(key, value) self.config_man.update_config(key, value)
#try: # try:
# update.write_config(self.prefs.paths.config, key, value) # update.write_config(self.prefs.paths.config, key, value)
#except Exception as e: # except Exception as e:
# logger.critical(e) # logger.critical(e)
# trace = traceback.format_exc() # trace = traceback.format_exc()
# dialog = ExceptionDialog(self, trace) # dialog = ExceptionDialog(self, trace)
@@ -588,6 +590,7 @@ class Controller(GObject.GObject):
return treeview.get_model() is not None return treeview.get_model() is not None
def _on_check_toggled(self, emitter: Emitter, label: str, state: bool) -> None: def _on_check_toggled(self, emitter: Emitter, label: str, state: bool) -> None:
print('check toggled, refiltering')
filter_man = self.get_filter_man() filter_man = self.get_filter_man()
filter_man.set_filter(label, state) filter_man.set_filter(label, state)
@@ -595,6 +598,7 @@ class Controller(GObject.GObject):
ServerModelManager(self, self.get_active_treeview()).refilter(mode, label) ServerModelManager(self, self.get_active_treeview()).refilter(mode, label)
def _on_map_selection_changed(self, emitter: Emitter, selection: str) -> None: def _on_map_selection_changed(self, emitter: Emitter, selection: str) -> None:
print("map sel changed, refiltering")
smm = ServerModelManager(self, self.get_active_treeview()) smm = ServerModelManager(self, self.get_active_treeview())
smm.refilter(FilterMode.MAP, selection) smm.refilter(FilterMode.MAP, selection)
@@ -615,3 +619,18 @@ class Controller(GObject.GObject):
def get_config_man(self) -> ConfigManager: def get_config_man(self) -> ConfigManager:
return self.config_man return self.config_man
def add_server(self, addr: str) -> None:
saved_tree = self.get_servers().get_saved()
if addr.isdigit():
ServerModelManager(self, saved).add_by_id(addr)
else:
ServerModelManager(self, saved).add_by_ip(addr)
def connect_server(self, addr: str) -> None:
if addr.isdigit():
config_man = self.get_config_man()
key = config_man.lookup(Preferences.BM)
ConnectionManager(self).connect_by_id(addr, key)
else:
ConnectionManager(self).connect_by_ip(addr)
+10
View File
@@ -21,12 +21,22 @@ class ConnectionManager:
self.controller = controller self.controller = controller
self.thread_man = ThreadingManager(parent=controller) self.thread_man = ThreadingManager(parent=controller)
@call_on_thread(dialog.querying)
def connect_by_id(self, addr: str, key: str) -> None:
res = Servers.query_by_id(addr, key)
if res is None:
self.thread_man.set_cleanup_func(StoredFunc(self._connection_failure))
# TODO: add to history if successful
print("CONNECT")
print(res)
@call_on_thread(dialog.querying) @call_on_thread(dialog.querying)
def connect_by_ip(self, addr: str) -> None: def connect_by_ip(self, addr: str) -> None:
res = Servers.query_by_ip(addr) res = Servers.query_by_ip(addr)
if res is None: if res is None:
self.thread_man.set_cleanup_func(StoredFunc(self._connection_failure)) self.thread_man.set_cleanup_func(StoredFunc(self._connection_failure))
# TODO: add to history if successful # TODO: add to history if successful
print("CONNECT")
print(res) print(res)
def _connection_failure(self) -> None: def _connection_failure(self) -> None:
+1
View File
@@ -67,6 +67,7 @@ class ProxyModelManager:
# return store # return store
# #
def filter(self, mode: FilterMode, *args, **kwargs) -> None: def filter(self, mode: FilterMode, *args, **kwargs) -> None:
print("proxy model filtering now")
""" """
Native Gtk.TreeView.refilter() method was not performant enough Native Gtk.TreeView.refilter() method was not performant enough
when running in the main loop with 40k+ records when running in the main loop with 40k+ records
+8 -14
View File
@@ -1,6 +1,5 @@
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from dzgui.managers.connection import ConnectionManager
from dzgui.model.servers import ServerModelManager from dzgui.model.servers import ServerModelManager
from dzgui.util.strings import connect_panel, fav_panel, lan_panel from dzgui.util.strings import connect_panel, fav_panel, lan_panel
from dzgui.views.components.buttons import ( from dzgui.views.components.buttons import (
@@ -125,7 +124,7 @@ class FavPanel(Gtk.Frame):
self.server_name, self.server_ip = ( self.server_name, self.server_ip = (
self.controller.get_config_man().get_favorite() self.controller.get_config_man().get_favorite()
) # self.controller.get_favorite() )
server_name = ( server_name = (
f"{self.server_name} ({self.server_ip})" f"{self.server_name} ({self.server_ip})"
if self.server_name is not None if self.server_name is not None
@@ -204,26 +203,21 @@ class AddPanel(Gtk.Frame):
self.add(self.grid) self.add(self.grid)
def _on_connect_clicked(self, button: Gtk.Button) -> None: def _on_connect_clicked(self, button: Gtk.Button) -> None:
text = self.entry.get_text()
ConnectionManager(self.controller).connect_by_id_or_ip(text)
def _submit_query(self) -> None:
addr = self.entry.get_text() addr = self.entry.get_text()
# TODO: grabs ServerTab.SAVED ServerTreeView self.controller.connect_server(addr)
tree = self.controller.get_servers().get_saved()
if addr.isdigit(): def _add_server(self) -> None:
ServerModelManager(self.controller, tree).add_by_id(addr) addr = self.entry.get_text()
else: self.controller.add_server(addr)
ServerModelManager(self.controller, tree).add_by_ip(addr)
def _on_activate(self, entry: Gtk.Entry) -> None: def _on_activate(self, entry: Gtk.Entry) -> None:
# NOTE: default action is to add a record, not connect # NOTE: default action is to add a record, not connect
if not self.add_server.is_sensitive(): if not self.add_server.is_sensitive():
return return
self._submit_query() self._add_server()
def _on_add_clicked(self, button: Gtk.Button) -> None: def _on_add_clicked(self, button: Gtk.Button) -> None:
self._submit_query() self._add_server()
def _on_ip_validated(self, entry: Gtk.Entry, state: bool) -> None: def _on_ip_validated(self, entry: Gtk.Entry, state: bool) -> None:
self.conn_server.set_sensitive(state) self.conn_server.set_sensitive(state)