mirror of
https://github.com/aclist/dztui.git
synced 2026-08-27 10:17:31 +02:00
feat: remove history entries (WIP)
This commit is contained in:
parent
6b50b1e933
commit
4bccaec427
@ -597,6 +597,10 @@ class Controller(GObject.GObject):
|
||||
saved_tree = self.get_servers().get_saved()
|
||||
ServerModelManager(self, saved_tree).remove_by_record(record)
|
||||
|
||||
def remove_from_history(self, record: "Record") -> None:
|
||||
tv = self.get_active_treeview()
|
||||
ServerModelManager(self, tv).remove_from_history(record)
|
||||
|
||||
def connect_by_str(self, addr: str) -> None:
|
||||
if addr.isdigit():
|
||||
config_man = self.get_config_man()
|
||||
|
||||
@ -48,6 +48,10 @@ class ConfigManager:
|
||||
ips.append(record)
|
||||
self.update_config(Preferences.IP_LIST, ips)
|
||||
|
||||
def remove_history_server(self, record: str) -> None:
|
||||
print(record)
|
||||
pass
|
||||
|
||||
def remove_saved_server(self, record: str) -> None:
|
||||
ips = self.lookup(Preferences.IP_LIST)
|
||||
ips.remove(record)
|
||||
|
||||
@ -68,10 +68,8 @@ class ContextMenuManager:
|
||||
record = self.treeview.get_record()
|
||||
self.controller.refresh_players(record)
|
||||
case ContextMenu.REMOVE_HISTORY:
|
||||
print("DEBUG: unimplemented")
|
||||
# update history model, update tab label, pop off of queue, write new list into file
|
||||
# see dq.py
|
||||
pass
|
||||
record = self.treeview.get_record()
|
||||
self.controller.remove_from_history(record)
|
||||
case ContextMenu.REMOVE_SERVER:
|
||||
record = self.treeview.get_record()
|
||||
self.controller.remove_by_record(record)
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import re
|
||||
|
||||
from collections import deque
|
||||
from typing import Any, Optional, TYPE_CHECKING
|
||||
from warnings import deprecated
|
||||
|
||||
@ -51,6 +52,7 @@ class ProxyModelManager:
|
||||
for record in self.control_model:
|
||||
if row[7] == record[7] and row[8] == record[8]:
|
||||
self.control_model.remove(record)
|
||||
break
|
||||
self.wipe_cache()
|
||||
self.filter(FilterMode.INITIAL, skip_cache=True)
|
||||
|
||||
@ -59,6 +61,23 @@ class ProxyModelManager:
|
||||
self.proxy_model[treeiter][4] = playercount.players
|
||||
self.proxy_model[treeiter][6] = playercount.queue
|
||||
|
||||
# def append_to_history(self, row: list) -> None:
|
||||
# if len(self.control_model) == 10:
|
||||
# del self.control_model[0]
|
||||
# self.control_model.append(row)
|
||||
|
||||
# TODO: consolidate with remove_row_from_control()
|
||||
def remove_from_history(self, record: "Record") -> None:
|
||||
print(record)
|
||||
addr = f"{record.ip}:{record.gameport}"
|
||||
qport = record.qport
|
||||
for record in self.control_model:
|
||||
if addr == record[7] and qport == record[8]:
|
||||
self.control_model.remove(record)
|
||||
break
|
||||
self.wipe_cache()
|
||||
self.filter(FilterMode.INITIAL, skip_cache=True)
|
||||
|
||||
def clear_proxy_model(self) -> None:
|
||||
self.proxy_model.clear()
|
||||
|
||||
|
||||
@ -211,6 +211,33 @@ class ServerModelManager:
|
||||
res = Servers.query_by_record(record)
|
||||
self._parse_single_record(res, delete=True)
|
||||
|
||||
def remove_from_history(self, record: Servers.Record) -> None:
|
||||
"""Fully unthreaded, just removes a row"""
|
||||
port = record.ip
|
||||
gport = record.gameport
|
||||
qport = record.qport
|
||||
|
||||
fqip = f"{port}:{gport}:{qport}"
|
||||
config_man = self.controller.get_config_man()
|
||||
config_man.remove_history_server(fqip)
|
||||
|
||||
proxy_man = self._get_proxy_man()
|
||||
proxy_man.remove_from_history(record)
|
||||
control_model = proxy_man.get_control()
|
||||
|
||||
self._sort_unique_maps(control_model)
|
||||
proxy = proxy_man.get_proxy_model()
|
||||
self.tv.set_model(proxy)
|
||||
|
||||
self.emitter.emit("servers_loaded", self.enum)
|
||||
|
||||
filter_man = self.tv.get_filter_man()
|
||||
maps = self._get_new_maps()
|
||||
filter_man.set_unique_maps(maps)
|
||||
|
||||
self.first_iteration = False
|
||||
self.emitter.emit("servers_loaded_init")
|
||||
|
||||
def add_by_str(self, addr: str) -> None:
|
||||
if addr.isdigit():
|
||||
self.add_by_id(addr)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user