mirror of
https://github.com/aclist/dztui.git
synced 2026-10-30 14:42:54 +01:00
fix: append history queue (WIP)
This commit is contained in:
1 parent
fd9eb33714
commit
2c9b36ba84
6 files changed
+29
-19
No files matched your search
+1
-2
@@ -456,6 +456,5 @@ def get_pretty_version(steam_path: Path, appid: int) -> str | None:
|
|||||||
vers = get_dayz_version(pe_file_path)
|
vers = get_dayz_version(pe_file_path)
|
||||||
dayz_version = dayz_version_to_str(vers)
|
dayz_version = dayz_version_to_str(vers)
|
||||||
return dayz_version
|
return dayz_version
|
||||||
except Exception as e:
|
except Exception:
|
||||||
print(e)
|
|
||||||
return None
|
return None
|
||||||
@@ -409,9 +409,12 @@ class Controller(GObject.GObject):
|
|||||||
saved_tree = self.get_servers().get_saved()
|
saved_tree = self.get_servers().get_saved()
|
||||||
ServerModelManager(self, saved_tree).remove_by_record(record)
|
ServerModelManager(self, saved_tree).remove_by_record(record)
|
||||||
|
|
||||||
def add_to_history(self, record: dict[str, Any]) -> None:
|
def add_to_history(self, row: dict[str, Any], record: "Record") -> None:
|
||||||
tv = self.get_servers().get_recent()
|
tv = self.get_servers().get_recent()
|
||||||
ServerModelManager(self, tv).add_to_history(record)
|
ServerModelManager(self, tv).add_to_history((row, record))
|
||||||
|
|
||||||
|
# def append_to_history(self, record: "Record") -> None:
|
||||||
|
# self.config_man.append_to_history_file(record)
|
||||||
|
|
||||||
def remove_from_history(self, record: "Record") -> None:
|
def remove_from_history(self, record: "Record") -> None:
|
||||||
# NOTE: remove action is only possible from history tree context menu,
|
# NOTE: remove action is only possible from history tree context menu,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import logging
|
import logging
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
|
from collections import deque
|
||||||
from typing import Any, TYPE_CHECKING
|
from typing import Any, TYPE_CHECKING
|
||||||
|
|
||||||
from dzgui.const.constants import (
|
from dzgui.const.constants import (
|
||||||
@@ -52,11 +53,15 @@ class ConfigManager:
|
|||||||
ips.append(record)
|
ips.append(record)
|
||||||
self.update_config(Preferences.IP_LIST, ips)
|
self.update_config(Preferences.IP_LIST, ips)
|
||||||
|
|
||||||
def update_history_file(self, records: list[Any]) -> None:
|
def update_history_file(self, fqip: str) -> None:
|
||||||
|
with open(self.prefs.paths.history, "r") as f:
|
||||||
|
lines = [line.rstrip() for line in f.readlines()]
|
||||||
|
lines.append(fqip)
|
||||||
|
lines = set(lines)
|
||||||
|
dq = deque(lines, maxlen=10)
|
||||||
with open(self.prefs.paths.history, "w") as f:
|
with open(self.prefs.paths.history, "w") as f:
|
||||||
for record in records:
|
for record in dq:
|
||||||
addr = f"{record[7]}:{record[8]}"
|
f.write(f"{record}\n")
|
||||||
f.write(f"{addr}\n")
|
|
||||||
|
|
||||||
def remove_saved_server(self, record: str) -> None:
|
def remove_saved_server(self, record: str) -> None:
|
||||||
ips = self.lookup(Preferences.IP_LIST)
|
ips = self.lookup(Preferences.IP_LIST)
|
||||||
|
|||||||
@@ -290,7 +290,7 @@ class ConnectionManager:
|
|||||||
self.thread_man.set_cleanup_func(func)
|
self.thread_man.set_cleanup_func(func)
|
||||||
|
|
||||||
def _add_to_history_and_return(self) -> None:
|
def _add_to_history_and_return(self) -> None:
|
||||||
self.controller.add_to_history(self.history)
|
self.controller.add_to_history(self.history, self.record)
|
||||||
self.controller.open_page(NotebookPage.SERVERS)
|
self.controller.open_page(NotebookPage.SERVERS)
|
||||||
|
|
||||||
def _update_mods(self, raise_window: bool, menu_only: bool = False) -> None:
|
def _update_mods(self, raise_window: bool, menu_only: bool = False) -> None:
|
||||||
|
|||||||
@@ -85,8 +85,9 @@ class ProxyModelManager:
|
|||||||
|
|
||||||
if found is False:
|
if found is False:
|
||||||
self.control_model.append(history)
|
self.control_model.append(history)
|
||||||
if len(self.control_model) == 11:
|
|
||||||
del self.control_model[0]
|
# if len(self.control_model) == 11:
|
||||||
|
# del self.control_model[0]
|
||||||
|
|
||||||
self.filter(FilterMode.INITIAL, skip_cache=True)
|
self.filter(FilterMode.INITIAL, skip_cache=True)
|
||||||
|
|
||||||
|
|||||||
+10
-8
@@ -23,7 +23,7 @@ gi.require_version("Gtk", "3.0")
|
|||||||
from gi.repository import Gtk # noqa E402
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.api.servers import A2SInfo
|
from dzgui.api.servers import A2SInfo, Record
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
from dzgui.model.proxy_model import ProxyModelManager
|
from dzgui.model.proxy_model import ProxyModelManager
|
||||||
from dzgui.views.trees.tree_servers import ServerTreeView
|
from dzgui.views.trees.tree_servers import ServerTreeView
|
||||||
@@ -225,15 +225,12 @@ class ServerModelManager:
|
|||||||
) = None,
|
) = None,
|
||||||
) -> None:
|
) -> None:
|
||||||
proxy_man = self._get_proxy_man()
|
proxy_man = self._get_proxy_man()
|
||||||
config_man = self.controller.get_config_man()
|
|
||||||
if rows is not None:
|
if rows is not None:
|
||||||
records = rows
|
records = rows
|
||||||
else:
|
else:
|
||||||
control_model = proxy_man.get_control()
|
control_model = proxy_man.get_control()
|
||||||
records = control_model
|
records = control_model
|
||||||
|
|
||||||
config_man.update_history_file(records)
|
|
||||||
config_man.update_history_file(records)
|
|
||||||
self._sort_unique_maps(records)
|
self._sort_unique_maps(records)
|
||||||
proxy = proxy_man.get_proxy_model()
|
proxy = proxy_man.get_proxy_model()
|
||||||
self.tv.set_model(proxy)
|
self.tv.set_model(proxy)
|
||||||
@@ -249,15 +246,20 @@ class ServerModelManager:
|
|||||||
self.emitter.emit("load_maps", store)
|
self.emitter.emit("load_maps", store)
|
||||||
# self.emitter.emit("servers_loaded_init")
|
# self.emitter.emit("servers_loaded_init")
|
||||||
|
|
||||||
def add_to_history(self, record: dict[str, Any]) -> None:
|
# TODO: dataclass for record rows; check for other dict annotations
|
||||||
|
def add_to_history(self, data: tuple[dict[str, Any], "Record"]) -> None:
|
||||||
|
row, record = data
|
||||||
proxy_man = self._get_proxy_man()
|
proxy_man = self._get_proxy_man()
|
||||||
rows = Servers.parse_json([record])
|
rows = Servers.parse_json([row])
|
||||||
try:
|
try:
|
||||||
proxy_man.append_row_to_history(rows[0])
|
proxy_man.append_row_to_history(rows[0])
|
||||||
|
self.update_history()
|
||||||
except Exception:
|
except Exception:
|
||||||
self.update_history(rows)
|
self.update_history(rows)
|
||||||
return
|
|
||||||
self.update_history()
|
fqip = Servers.record_to_fqip(record)
|
||||||
|
config_man = self.controller.get_config_man()
|
||||||
|
config_man.update_history_file(fqip)
|
||||||
|
|
||||||
def remove_from_history(self, record: Servers.Record) -> None:
|
def remove_from_history(self, record: Servers.Record) -> None:
|
||||||
proxy_man = self._get_proxy_man()
|
proxy_man = self._get_proxy_man()
|
||||||
|
|||||||
Reference in new issue
Block a user