From 79d89f9e3e41c81cf6046b77c74263bde88ec180 Mon Sep 17 00:00:00 2001 From: WenGuoyao <59599625+WenGuoyao@users.noreply.github.com> Date: Tue, 7 Jan 2020 17:30:19 +0800 Subject: [PATCH 1/4] Add context menu 'Copy File Names' During directory comparison, sometimes need to copy the names of the files to clipboard. --- meld/resources/gtk/menus.ui | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meld/resources/gtk/menus.ui b/meld/resources/gtk/menus.ui index 4486098d7..29e061e28 100644 --- a/meld/resources/gtk/menus.ui +++ b/meld/resources/gtk/menus.ui @@ -38,6 +38,10 @@ Open Externally view.open-external + + Copy File Names + view.copy-file-names +
find-section From 0ed355ba91b7fed3a62e9f6b70a614a67127cda9 Mon Sep 17 00:00:00 2001 From: WenGuoyao <59599625+WenGuoyao@users.noreply.github.com> Date: Tue, 7 Jan 2020 17:45:05 +0800 Subject: [PATCH 2/4] Add context menu 'Copy File Names' During directory comparison, sometimes need to copy the names of the files to clipboard. --- meld/resources/ui/dirdiff-menus.ui | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meld/resources/ui/dirdiff-menus.ui b/meld/resources/ui/dirdiff-menus.ui index ece808cec..94fc09219 100644 --- a/meld/resources/ui/dirdiff-menus.ui +++ b/meld/resources/ui/dirdiff-menus.ui @@ -40,6 +40,10 @@ _Open Externally view.open-external + + _Copy File Names + view.copy-file-names +
From 7d04f345e3e822c9d32d5836e8a2c0e39de4d93a Mon Sep 17 00:00:00 2001 From: WenGuoyao <59599625+WenGuoyao@users.noreply.github.com> Date: Tue, 7 Jan 2020 17:50:40 +0800 Subject: [PATCH 3/4] Add context menu 'Copy File Names' During directory comparison, sometimes need to copy the names of the files to clipboard. Needs to import pyperclip. --- meld/dirdiff.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/meld/dirdiff.py b/meld/dirdiff.py index 5d5c74287..1576f9e1d 100644 --- a/meld/dirdiff.py +++ b/meld/dirdiff.py @@ -25,6 +25,7 @@ from collections import namedtuple from decimal import Decimal from mmap import ACCESS_COPY, mmap +import pyperclip from gi.repository import Gdk, Gio, GLib, GObject, Gtk @@ -423,6 +424,7 @@ def __init__(self, num_panes): ('previous-change', self.action_previous_change), ('previous-pane', self.action_prev_pane), ('refresh', self.action_refresh), + ('copy-file-names', self.action_copy_file_names), ) for name, callback in actions: action = Gio.SimpleAction.new(name, None) @@ -1353,6 +1355,17 @@ def action_open_external(self, *args): files = [f for f in files if f] if files: self._open_files(files) + def action_copy_file_names(self, *args): + pane = self._get_focused_pane() + if pane is None: + return + files = [ + self.model.value_path(self.model.get_iter(p), pane) + for p in self._get_selected_paths(pane) + ] + files = [f for f in files if f] + if files: + pyperclip.copy(''.join([str(f) for f in files])) def action_ignore_case_change(self, action, value): action.set_state(value) From 9a8079237b11a49517423a9f7b59edd8337d6960 Mon Sep 17 00:00:00 2001 From: WenGuoyao <59599625+WenGuoyao@users.noreply.github.com> Date: Tue, 7 Jan 2020 17:52:31 +0800 Subject: [PATCH 4/4] Add context menu 'Copy File Names' add space to split file names --- meld/dirdiff.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meld/dirdiff.py b/meld/dirdiff.py index 1576f9e1d..363e01e3e 100644 --- a/meld/dirdiff.py +++ b/meld/dirdiff.py @@ -1365,7 +1365,7 @@ def action_copy_file_names(self, *args): ] files = [f for f in files if f] if files: - pyperclip.copy(''.join([str(f) for f in files])) + pyperclip.copy(' '.join([str(f) for f in files])) def action_ignore_case_change(self, action, value): action.set_state(value)