-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcopyfilename.py
35 lines (29 loc) · 1.02 KB
/
copyfilename.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from gi.repository import Caja, Gdk, GObject, Gtk
class CopyFileName(
GObject.GObject,
Caja.InfoProvider,
Caja.ColumnProvider,
Caja.MenuProvider,
Caja.PropertyPageProvider,
Caja.LocationWidgetProvider,
):
emblem = "favorite-symbolic.symbolic" # Use one of the stock emblems.
@staticmethod
def _copy(_, cajafile):
path = cajafile.get_location().get_path()
clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
clipboard.set_text(path, -1)
# Caja.MenuProvider (right-click on file).
def get_file_items(self, _window, cajafiles):
menuitems = []
if len(cajafiles) == 1:
for cajafile in cajafiles:
menuitem = Caja.MenuItem(
name="CopyFileName::FileMenu",
label="Copy Path",
tip="",
icon="edit-copy",
)
menuitem.connect("activate", self._copy, cajafile)
menuitems.append(menuitem)
return menuitems