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)