From 6fd05e3581c4537c4dd638983ca726da614e4ae0 Mon Sep 17 00:00:00 2001 From: Erriez Date: Sun, 26 Feb 2023 21:30:33 +0100 Subject: [PATCH 1/2] Add Caja Meld compare example --- examples/meld.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 examples/meld.py diff --git a/examples/meld.py b/examples/meld.py new file mode 100644 index 0000000..b6d6e1a --- /dev/null +++ b/examples/meld.py @@ -0,0 +1,48 @@ +# Examples: https://github.com/mate-desktop/python-caja/tree/master/examples + +import os + +from gi.repository import Caja, GObject + + +class MeldMenuProvider(GObject.GObject, Caja.MenuProvider): + MELD_EXECUTABLE = 'meld' + MELD_ICON = '/usr/share/icons/hicolor/scalable/apps/org.gnome.Meld.svg' + + def __init__(self): + pass + + def menu_activate_cb(self, menu, files=None): + args = '' + + if files and len(files): + # Set working directory + os.chdir(os.path.dirname(files[0].get_location().get_path())) + + # Start Meld with two files or directories + for i in range(0, 3): + if i >= len(files): + break + args += '"{}" '.format(files[i].get_location().get_path()) + + # Start Meld + cmd = '{} {} &'.format(self.MELD_EXECUTABLE, args) + os.system(cmd) + + def get_file_items(self, window, files): + top_menuitem = Caja.MenuItem(name='MeldMenuProvider::Meld', + label='Meld compare', + tip='', + icon=self.MELD_ICON) + top_menuitem.connect('activate', self.menu_activate_cb, files) + + return top_menuitem, + + def get_background_items(self, window, file): + bg_menuitem_meld = Caja.MenuItem(name='MeldMenuProvider::MeldBg', + label='Meld', + tip='', + icon=self.MELD_ICON) + bg_menuitem_meld.connect('activate', self.menu_activate_cb) + + return bg_menuitem_meld, From 89dc1f4acc5a885192725f470613f392fb70e0c6 Mon Sep 17 00:00:00 2001 From: Erriez Date: Sun, 26 Feb 2023 21:35:29 +0100 Subject: [PATCH 2/2] Fix comment number of files/dirs --- examples/meld.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/meld.py b/examples/meld.py index b6d6e1a..843b299 100644 --- a/examples/meld.py +++ b/examples/meld.py @@ -19,7 +19,7 @@ def menu_activate_cb(self, menu, files=None): # Set working directory os.chdir(os.path.dirname(files[0].get_location().get_path())) - # Start Meld with two files or directories + # Start Meld with 1..3 files or directories for i in range(0, 3): if i >= len(files): break