mirror of
https://github.com/aclist/dztui.git
synced 2026-08-27 02:07:18 +02:00
chore: reroute connect method
This commit is contained in:
parent
3b40ea1846
commit
2fa51c80f4
@ -464,11 +464,12 @@ def response_to_fq_ip(res: dict) -> str:
|
||||
def query_by_id(addr: str, key: str) -> Optional[dict]:
|
||||
try:
|
||||
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:
|
||||
logger.critical(e)
|
||||
return None
|
||||
|
||||
|
||||
def query_by_ip(addr: str) -> Optional[dict]:
|
||||
try:
|
||||
record = addr.split(":")
|
||||
|
||||
@ -12,6 +12,7 @@ from warnings import deprecated
|
||||
import dzgui.api.pefile as PeFile
|
||||
import dzgui.util._json as JSON # noqa
|
||||
|
||||
|
||||
from dzgui.api.mods import (
|
||||
get_delimited_mods,
|
||||
get_local_mod_path,
|
||||
@ -40,6 +41,7 @@ from dzgui.config.query import lookup
|
||||
from dzgui.config.userprefs import UserPrefs
|
||||
from dzgui.controllers.emitter import Emitter
|
||||
from dzgui.managers.config import ConfigManager
|
||||
from dzgui.managers.connection import ConnectionManager
|
||||
from dzgui.managers.contextmenu import ContextMenuManager
|
||||
from dzgui.model.proxy_model import ProxyModelManager
|
||||
from dzgui.model.servers import ServerModelManager
|
||||
@ -290,13 +292,13 @@ class Controller(GObject.GObject):
|
||||
|
||||
def toggle_config(self, key: Preferences) -> None:
|
||||
self.config_man.toggle_config(key)
|
||||
#config = self.prefs.paths.config
|
||||
#try:
|
||||
# config = self.prefs.paths.config
|
||||
# try:
|
||||
# update.toggle_config(config, context)
|
||||
# # NOTE: 'use_miles' key is updated dynamically for statusbar unit
|
||||
# if context == Preferences.DIST:
|
||||
# self.prefs.use_miles = not self.prefs.use_miles
|
||||
#except Exception as e:
|
||||
# except Exception as e:
|
||||
# logger.critical(e)
|
||||
# trace = traceback.format_exc()
|
||||
# dialog = ExceptionDialog(self, trace)
|
||||
@ -304,9 +306,9 @@ class Controller(GObject.GObject):
|
||||
|
||||
def update_config(self, key: Preferences, value: str) -> None:
|
||||
self.config_man.update_config(key, value)
|
||||
#try:
|
||||
# try:
|
||||
# update.write_config(self.prefs.paths.config, key, value)
|
||||
#except Exception as e:
|
||||
# except Exception as e:
|
||||
# logger.critical(e)
|
||||
# trace = traceback.format_exc()
|
||||
# dialog = ExceptionDialog(self, trace)
|
||||
@ -588,6 +590,7 @@ class Controller(GObject.GObject):
|
||||
return treeview.get_model() is not 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.set_filter(label, state)
|
||||
|
||||
@ -595,6 +598,7 @@ class Controller(GObject.GObject):
|
||||
ServerModelManager(self, self.get_active_treeview()).refilter(mode, label)
|
||||
|
||||
def _on_map_selection_changed(self, emitter: Emitter, selection: str) -> None:
|
||||
print("map sel changed, refiltering")
|
||||
smm = ServerModelManager(self, self.get_active_treeview())
|
||||
smm.refilter(FilterMode.MAP, selection)
|
||||
|
||||
@ -615,3 +619,18 @@ class Controller(GObject.GObject):
|
||||
|
||||
def get_config_man(self) -> ConfigManager:
|
||||
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)
|
||||
|
||||
@ -21,12 +21,22 @@ class ConnectionManager:
|
||||
self.controller = 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)
|
||||
def connect_by_ip(self, addr: str) -> None:
|
||||
res = Servers.query_by_ip(addr)
|
||||
if res is None:
|
||||
self.thread_man.set_cleanup_func(StoredFunc(self._connection_failure))
|
||||
# TODO: add to history if successful
|
||||
print("CONNECT")
|
||||
print(res)
|
||||
|
||||
def _connection_failure(self) -> None:
|
||||
|
||||
@ -67,6 +67,7 @@ class ProxyModelManager:
|
||||
# return store
|
||||
#
|
||||
def filter(self, mode: FilterMode, *args, **kwargs) -> None:
|
||||
print("proxy model filtering now")
|
||||
"""
|
||||
Native Gtk.TreeView.refilter() method was not performant enough
|
||||
when running in the main loop with 40k+ records
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from dzgui.managers.connection import ConnectionManager
|
||||
from dzgui.model.servers import ServerModelManager
|
||||
from dzgui.util.strings import connect_panel, fav_panel, lan_panel
|
||||
from dzgui.views.components.buttons import (
|
||||
@ -125,7 +124,7 @@ class FavPanel(Gtk.Frame):
|
||||
|
||||
self.server_name, self.server_ip = (
|
||||
self.controller.get_config_man().get_favorite()
|
||||
) # self.controller.get_favorite()
|
||||
)
|
||||
server_name = (
|
||||
f"{self.server_name} ({self.server_ip})"
|
||||
if self.server_name is not None
|
||||
@ -204,26 +203,21 @@ class AddPanel(Gtk.Frame):
|
||||
self.add(self.grid)
|
||||
|
||||
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()
|
||||
# TODO: grabs ServerTab.SAVED ServerTreeView
|
||||
tree = self.controller.get_servers().get_saved()
|
||||
if addr.isdigit():
|
||||
ServerModelManager(self.controller, tree).add_by_id(addr)
|
||||
else:
|
||||
ServerModelManager(self.controller, tree).add_by_ip(addr)
|
||||
self.controller.connect_server(addr)
|
||||
|
||||
def _add_server(self) -> None:
|
||||
addr = self.entry.get_text()
|
||||
self.controller.add_server(addr)
|
||||
|
||||
def _on_activate(self, entry: Gtk.Entry) -> None:
|
||||
# NOTE: default action is to add a record, not connect
|
||||
if not self.add_server.is_sensitive():
|
||||
return
|
||||
self._submit_query()
|
||||
self._add_server()
|
||||
|
||||
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:
|
||||
self.conn_server.set_sensitive(state)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user