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