diff --git a/dzgui/managers/contextmenu.py b/dzgui/managers/contextmenu.py index 9c84b21..be279c1 100644 --- a/dzgui/managers/contextmenu.py +++ b/dzgui/managers/contextmenu.py @@ -5,6 +5,7 @@ from typing import TYPE_CHECKING from dzgui.const.enum import ContextMenu, Preferences from dzgui.managers.thread_man import ThreadingManager from dzgui.util import strings +from dzgui.util.clip import copy_clipboard from dzgui.util.open_links import open_workshop_page gi.require_version("Gtk", "3.0") @@ -72,17 +73,13 @@ class ContextMenuManager: def copy_server_ip(self) -> None: record = self.treeview.get_simplified_ip() - self.copy_clipboard(record) - - def copy_clipboard(self, text: str) -> None: - self.clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) - self.clipboard.set_text(text, -1) + copy_clipboard(record) def copy_server_name(self) -> None: name = self.treeview.get_value_at_index(0) if name is None: return - self.copy_clipboard(name) + copy_clipboard(name) def open_mod_page(self) -> None: mod = self.treeview.get_selected_mod() @@ -101,4 +98,4 @@ class ContextMenuManager: concat = strings.delimiter.join(r) final.append(concat) text = "\n".join(final) - self.copy_clipboard(text) + copy_clipboard(text) diff --git a/dzgui/util/clip.py b/dzgui/util/clip.py new file mode 100644 index 0000000..58bf68e --- /dev/null +++ b/dzgui/util/clip.py @@ -0,0 +1,10 @@ +import gi + +gi.require_version("Gtk", "3.0") +from gi.repository.Gdk import SELECTION_CLIPBOARD # noqa E402 +from gi.repository.Gtk import Clipboard # noqa E402 + + +def copy_clipboard(text: str) -> None: + clipboard = Clipboard.get(SELECTION_CLIPBOARD) + clipboard.set_text(text, -1) diff --git a/dzgui/views/components/buttons.py b/dzgui/views/components/buttons.py index de6141a..04c88c8 100644 --- a/dzgui/views/components/buttons.py +++ b/dzgui/views/components/buttons.py @@ -1,5 +1,6 @@ from typing import Callable, Literal, Self, TYPE_CHECKING +from dzgui.util.clip import copy_clipboard from dzgui.util.strings import atomic_buttons, connect_panel from dzgui.const.constants import ( CLIPBOARD, @@ -69,7 +70,7 @@ class ClipboardButton(IconTextButton): def _on_button_clicked(self, button: Self, func: Callable) -> None: data = func() - self.controller.copy_clipboard(data) + copy_clipboard(data) class WebButton(IconTextButton):