File: nautilus43.patch

package info (click to toggle)
tortoisehg 7.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 22,204 kB
  • sloc: python: 48,988; xml: 444; makefile: 107; sh: 5
file content (67 lines) | stat: -rw-r--r-- 2,749 bytes parent folder | download
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