From 39e3bb8d2d2dfb87d45f568633647b6eb08c9052 Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Sat, 25 Apr 2026 21:59:32 +0900 Subject: [PATCH] chore: move log parse action to LogTreeView --- dzgui/managers/contextmenu.py | 17 ++++------------- dzgui/views/trees/tree_log.py | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/dzgui/managers/contextmenu.py b/dzgui/managers/contextmenu.py index a062c6d..0e9de69 100644 --- a/dzgui/managers/contextmenu.py +++ b/dzgui/managers/contextmenu.py @@ -63,7 +63,6 @@ class ContextMenuManager: case ContextMenu.CONNECT: record = self.treeview.get_record() self.controller.connect_by_record(record) - case ContextMenu.REFRESH_PLAYERS: record = self.treeview.get_record() self.controller.refresh_players(record) @@ -97,16 +96,8 @@ class ContextMenuManager: cmd = self.controller.query_config(Preferences.CLIENT) open_workshop_page(mod, cmd) - def copy_log(self) -> str: - # NOTE: ModTreeView uses Gtk.SelectionMode.MULTIPLE - model, records = self.treeview.get_selection().get_selected_rows() - if len(records) < 1: + def copy_log(self) -> None: + log = self.treeview.concatenate_rows() + if log is None: return - final = [] - for record in records: - record = self.treeview.get_model()[record] - r = [el for el in record] - concat = strings.delimiter.join(r) - final.append(concat) - text = "\n".join(final) - copy_clipboard(text) + copy_clipboard(log) diff --git a/dzgui/views/trees/tree_log.py b/dzgui/views/trees/tree_log.py index 123e925..6208393 100644 --- a/dzgui/views/trees/tree_log.py +++ b/dzgui/views/trees/tree_log.py @@ -81,3 +81,17 @@ class LogTreeView(ContextMixin, TreeView): def _on_log_keypress(self, widget: Gtk.Widget, event: Gdk.EventKey) -> None: self.present_menu(widget, event) + + def concatenate_rows(self) -> str | None: + # NOTE: LogTreeView uses Gtk.SelectionMode.MULTIPLE + final = [] + model, records = self.get_selection().get_selected_rows() + if len(records) < 1: + return None + for record in records: + raw_record = model[record] + r = [el for el in raw_record] + concat = strings.delimiter.join(r) + final.append(concat) + text = "\n".join(final) + return text