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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
From: Jeremy Bicha <jeremy.bicha@canonical.com>
Date: Mon, 15 Aug 2022 12:23:11 -0400
Subject: Add compatibility for nautilus 43
Drop the property page feature. It needs to be ported
to the new Nautilus 43 API which is briefly described at
https://gitlab.gnome.org/GNOME/nautilus-python/-/raw/master/docs/reference/nautilus-python-migrating-to-4.xml
---
contrib/nautilus-thg.py | 30 ++++++++++++++++++++++++------
1 file changed, 24 insertions(+), 6 deletions(-)
--- a/contrib/nautilus-thg.py
+++ b/contrib/nautilus-thg.py
@@ -22,6 +22,12 @@ from gi.repository import ( # pytype: d
Gtk,
)
+import gi
+if not hasattr(Nautilus, "PropertiesModelProvider"):
+ gi.require_version('Gtk', '3.0')
+else:
+ gi.require_version('Gtk', '4.0')
+
import os
import sys
import typing
@@ -248,13 +254,15 @@ class HgExtensionDefault(GObject.GObject
items.append(item)
return items
- def get_background_items(self, window, vfs_file):
+ def get_background_items(self, *args):
'''Build context menu for current directory'''
+ vfs_file = args[-1]
if vfs_file and self.menu:
return self.buildMenu([vfs_file], True)
- def get_file_items(self, window, vfs_files):
+ def get_file_items(self, *args):
'''Build context menu for selected files/directories'''
+ vfs_files = args[-1]
if vfs_files and self.menu:
return self.buildMenu(vfs_files, False)
@@ -419,8 +427,18 @@ class HgExtensionIcons(HgExtensionDefaul
return True
if hglib.loadui().configbool(b"tortoisehg", b"overlayicons", default=True):
- class HgExtension(HgExtensionIcons, Nautilus.MenuProvider, Nautilus.ColumnProvider, Nautilus.PropertyPageProvider, Nautilus.InfoProvider):
- pass
+ # The property page needs to be ported to Nautilus 43
+ if not hasattr(Nautilus, "PropertiesModelProvider"):
+ class HgExtension(HgExtensionIcons, Nautilus.MenuProvider, Nautilus.ColumnProvider, Nautilus.PropertyPageProvider, Nautilus.InfoProvider):
+ pass
+ else:
+ class HgExtension(HgExtensionIcons, Nautilus.MenuProvider, Nautilus.ColumnProvider, Nautilus.InfoProvider):
+ pass
else:
- class HgExtension(HgExtensionDefault, Nautilus.MenuProvider, Nautilus.ColumnProvider, Nautilus.PropertyPageProvider):
- pass
+ # The property page needs to be ported to Nautilus 43
+ if not hasattr(Nautilus, "PropertiesModelProvider"):
+ class HgExtension(HgExtensionDefault, Nautilus.MenuProvider, Nautilus.ColumnProvider, Nautilus.PropertyPageProvider):
+ pass
+ else:
+ class HgExtension(HgExtensionDefault, Nautilus.MenuProvider, Nautilus.ColumnProvider):
+ pass
|