]> git.pld-linux.org Git - packages/mate-mintmenu.git/blame - mate-menus-1.22.patch
poor man's port to new mate-menus (1.22) api; rel 2
[packages/mate-mintmenu.git] / mate-menus-1.22.patch
CommitLineData
4771d01a
JP
1--- mate-mintmenu-5.9.1.orig/mintmenu/usr/lib/linuxmint/mintMenu/plugins/applications.py 2019-03-19 23:11:55.748303593 +0100
2+++ mate-mintmenu-5.9.1/mintmenu/usr/lib/linuxmint/mintMenu/plugins/applications.py 2019-03-20 00:04:22.751620910 +0100
3@@ -2,8 +2,9 @@
4
5 import gi
6 gi.require_version("Gtk", "3.0")
7+gi.require_version("MateMenu", "2.0")
8
9-from gi.repository import Gtk, Pango, Gdk, Gio, GLib
10+from gi.repository import Gtk, Pango, Gdk, Gio, GLib, MateMenu
11
12 import os
13 import time
14@@ -20,8 +21,6 @@
15 import recentHelper as RecentHelper
16 import pipes
17
18-import matemenu
19-
20 from user import home
21
22 # i18n
23@@ -86,7 +85,8 @@
24
25 class Menu:
26 def __init__( self, MenuToLookup ):
27- self.tree = matemenu.lookup_tree( MenuToLookup )
28+ self.tree = MateMenu.Tree.new( MenuToLookup, MateMenu.TreeFlags.NONE )
29+ self.tree.load_sync()
30 self.directory = self.tree.get_root_directory()
31
32 def getMenus( self, parent=None ):
33@@ -94,19 +94,29 @@
34 #gives top-level "Applications" item
35 yield self.tree.root
36 else:
37- for menu in parent.get_contents():
38- if menu.get_type() == matemenu.TYPE_DIRECTORY and self.__isVisible( menu ):
39- yield menu
40+ item_iter = parent.iter()
41+ item_type = item_iter.next()
42+ while item_type != MateMenu.TreeItemType.INVALID:
43+ if item_type == MateMenu.TreeItemType.DIRECTORY:
44+ item = item_iter.get_directory()
45+ if self.__isVisible( item ):
46+ yield item
47+ item_type = item_iter.next()
48
49 def getItems( self, menu ):
50- for item in menu.get_contents():
51- if item.get_type() == matemenu.TYPE_ENTRY and item.get_desktop_file_id()[-19:] != '-usercustom.desktop' and self.__isVisible( item ):
52- yield item
53+ item_iter = menu.iter()
54+ item_type = item_iter.next()
55+ while item_type != MateMenu.TreeItemType.INVALID:
56+ if item_type == MateMenu.TreeItemType.ENTRY:
57+ item = item_iter.get_entry()
58+ if item.get_desktop_file_id()[-19:] != '-usercustom.desktop' and self.__isVisible( item ):
59+ yield item
60
61 def __isVisible( self, item ):
62- if item.get_type() == matemenu.TYPE_ENTRY:
63- return not ( item.get_is_excluded() or item.get_is_nodisplay() )
64- if item.get_type() == matemenu.TYPE_DIRECTORY and len( item.get_contents() ):
65+ if isinstance(item, MateMenu.TreeEntry):
66+ app_info = item.get_app_info()
67+ return not ( item.get_is_excluded() or app_info.get_nodisplay() )
68+ if isinstance(item, MateMenu.TreeDirectory) and item.iter().next() != MateMenu.TreeItemType.INVALID:
69 return True
70
71
72@@ -271,7 +281,7 @@
73
74 for mainitems in [ "mate-applications.menu", "mate-settings.menu" ]:
75 mymenu = Menu( mainitems )
76- mymenu.tree.add_monitor( self.menuChanged, None )
77+ mymenu.tree.connect( "changed", self.menuChanged )
78
79 self.refresh_apt_cache()
80 self.suggestions = []
81@@ -1726,13 +1736,14 @@
82 num = 1
83
84 for menu in self.menuFiles:
85- for child in menu.directory.get_contents():
86- if child.get_type() == matemenu.TYPE_DIRECTORY:
87- icon = str(child.icon)
88- #if (icon == "preferences-system"):
89- # self.adminMenu = child.name
90- #if (icon != "applications-system" and icon != "applications-other"):
91- newCategoryList.append( { "name": child.name, "icon": child.icon, "tooltip": child.name, "filter": child.name, "index": num } )
92+ item_iter = menu.directory.iter()
93+ item_type = item_iter.next()
94+ while item_type != MateMenu.TreeItemType.INVALID:
95+ if item_type == MateMenu.TreeItemType.DIRECTORY:
96+ child = item_iter.get_directory()
97+ icon = child.get_icon().get_names()[0]
98+ newCategoryList.append( { "name": child.get_name(), "icon": icon, "tooltip": child.get_name(), "filter": child.get_name(), "index": num } )
99+ item_type = item_iter.next()
100 num += 1
101
102 return newCategoryList
103@@ -1743,29 +1754,34 @@
104 newApplicationsList = []
105
106 def find_applications_recursively(app_list, directory, catName):
107- for item in directory.get_contents():
108- if item.get_type() == matemenu.TYPE_ENTRY:
109+ item_iter = directory.iter()
110+ item_type = item_iter.next()
111+ while item_type != MateMenu.TreeItemType.INVALID:
112+ if item_type == MateMenu.TreeItemType.ENTRY:
113+ item = item_iter.get_entry()
114 app_list.append( { "entry": item, "category": catName } )
115- elif item.get_type() == matemenu.TYPE_DIRECTORY:
116+ elif item_type == MateMenu.TreeItemType.DIRECTORY:
117+ item = item_iter.get_directory()
118 find_applications_recursively(app_list, item, catName)
119+ item_type = item_iter.next()
120
121 for menu in self.menuFiles:
122 directory = menu.directory
123- for entry in directory.get_contents():
124- if entry.get_type() == matemenu.TYPE_DIRECTORY and len(entry.get_contents()):
125- #Entry is a top-level category
126- #catName = entry.name
127- #icon = str(entry.icon)
128- #if (icon == "applications-system" or icon == "applications-other"):
129- # catName = self.adminMenu
130- for item in entry.get_contents():
131- if item.get_type() == matemenu.TYPE_DIRECTORY:
132- find_applications_recursively(newApplicationsList, item, entry.name)
133- elif item.get_type() == matemenu.TYPE_ENTRY:
134- newApplicationsList.append( { "entry": item, "category": entry.name } )
135- #elif entry.get_type() == matemenu.TYPE_ENTRY:
136- # if not (entry.get_is_excluded() or entry.get_is_nodisplay()):
137- # print "=======>>> " + item.name + " = top level"
138- # newApplicationsList.append( { "entry": item, "category": "" } )
139+ entry_iter = directory.iter()
140+ entry_type = entry_iter.next()
141+ while entry_type != MateMenu.TreeItemType.INVALID:
142+ if entry_type == MateMenu.TreeItemType.DIRECTORY:
143+ entry = entry_iter.get_directory()
144+ item_iter = entry.iter()
145+ item_type = item_iter.next()
146+ while item_type != MateMenu.TreeItemType.INVALID:
147+ if item_type == MateMenu.TreeItemType.ENTRY:
148+ item = item_iter.get_entry()
149+ newApplicationsList.append( { "entry": item, "category": entry.get_name() } )
150+ elif item_type == MateMenu.TreeItemType.DIRECTORY:
151+ item = item_iter.get_directory()
152+ find_applications_recursively(newApplicationsList, item, entry.get_name())
153+ item_type = item_iter.next()
154+ entry_type = entry_iter.next()
155
156 return newApplicationsList
This page took 0.075876 seconds and 4 git commands to generate.