[packages/mate-mintmenu] poor man's port to new mate-menus (1.22) api; rel 2
atler
atler at pld-linux.org
Wed Mar 20 00:09:45 CET 2019
commit 4771d01abafef546264d31ce0fe223983750fbf3
Author: Jan Palus <atler at pld-linux.org>
Date: Wed Mar 20 00:08:29 2019 +0100
poor man's port to new mate-menus (1.22) api; rel 2
mate-menus-1.22.patch | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++
mate-mintmenu.spec | 6 +-
2 files changed, 160 insertions(+), 2 deletions(-)
---
diff --git a/mate-mintmenu.spec b/mate-mintmenu.spec
index d1a2f25..b8e6e0a 100644
--- a/mate-mintmenu.spec
+++ b/mate-mintmenu.spec
@@ -2,13 +2,14 @@ Summary: Advanced MATE menu
Summary(pl.UTF-8): Zaawansowane menu dla MATE
Name: mate-mintmenu
Version: 5.9.1
-Release: 1
+Release: 2
License: GPL v2
Group: X11/Applications
Source0: http://packages.linuxmint.com/pool/main/m/mintmenu/mintmenu_%{version}.tar.xz
# Source0-md5: 514377f50ec415bb4d1d6db9672ba070
Patch0: %{name}-icon.patch
Patch1: %{name}-disable-apt.patch
+Patch2: mate-menus-1.22.patch
URL: https://github.com/linuxmint/mintmenu
BuildRequires: sed >= 4.0
BuildRequires: tar >= 1:1.22
@@ -17,11 +18,11 @@ Requires(post,postun): glib2 >= 1:2.26
Requires: gtk+3
Requires: gvfs
Requires: mate-desktop-libs >= 1.18.0
+Requires: mate-menus-libs >= 1.22.0
Requires: mate-panel >= 1.18.0
Requires: mozo
Requires: python-Xlib
Requires: python-configobj
-Requires: python-matemenu
Requires: python-modules
Requires: python-pygobject3
Requires: python-pyxdg
@@ -41,6 +42,7 @@ Zaawansowane menu dla MATE.
%setup -qc
%patch0 -p1
%patch1 -p1
+%patch2 -p1
mv mintmenu/* .
%{__sed} -i 's,version = commands.getoutput("/usr/lib/linuxmint/common/version.py mintmenu"),version = "%{version}",' usr/lib/linuxmint/mintMenu/mintMenu.py
diff --git a/mate-menus-1.22.patch b/mate-menus-1.22.patch
new file mode 100644
index 0000000..1bf50e6
--- /dev/null
+++ b/mate-menus-1.22.patch
@@ -0,0 +1,156 @@
+--- mate-mintmenu-5.9.1.orig/mintmenu/usr/lib/linuxmint/mintMenu/plugins/applications.py 2019-03-19 23:11:55.748303593 +0100
++++ mate-mintmenu-5.9.1/mintmenu/usr/lib/linuxmint/mintMenu/plugins/applications.py 2019-03-20 00:04:22.751620910 +0100
+@@ -2,8 +2,9 @@
+
+ import gi
+ gi.require_version("Gtk", "3.0")
++gi.require_version("MateMenu", "2.0")
+
+-from gi.repository import Gtk, Pango, Gdk, Gio, GLib
++from gi.repository import Gtk, Pango, Gdk, Gio, GLib, MateMenu
+
+ import os
+ import time
+@@ -20,8 +21,6 @@
+ import recentHelper as RecentHelper
+ import pipes
+
+-import matemenu
+-
+ from user import home
+
+ # i18n
+@@ -86,7 +85,8 @@
+
+ class Menu:
+ def __init__( self, MenuToLookup ):
+- self.tree = matemenu.lookup_tree( MenuToLookup )
++ self.tree = MateMenu.Tree.new( MenuToLookup, MateMenu.TreeFlags.NONE )
++ self.tree.load_sync()
+ self.directory = self.tree.get_root_directory()
+
+ def getMenus( self, parent=None ):
+@@ -94,19 +94,29 @@
+ #gives top-level "Applications" item
+ yield self.tree.root
+ else:
+- for menu in parent.get_contents():
+- if menu.get_type() == matemenu.TYPE_DIRECTORY and self.__isVisible( menu ):
+- yield menu
++ item_iter = parent.iter()
++ item_type = item_iter.next()
++ while item_type != MateMenu.TreeItemType.INVALID:
++ if item_type == MateMenu.TreeItemType.DIRECTORY:
++ item = item_iter.get_directory()
++ if self.__isVisible( item ):
++ yield item
++ item_type = item_iter.next()
+
+ def getItems( self, menu ):
+- for item in menu.get_contents():
+- if item.get_type() == matemenu.TYPE_ENTRY and item.get_desktop_file_id()[-19:] != '-usercustom.desktop' and self.__isVisible( item ):
+- yield item
++ item_iter = menu.iter()
++ item_type = item_iter.next()
++ while item_type != MateMenu.TreeItemType.INVALID:
++ if item_type == MateMenu.TreeItemType.ENTRY:
++ item = item_iter.get_entry()
++ if item.get_desktop_file_id()[-19:] != '-usercustom.desktop' and self.__isVisible( item ):
++ yield item
+
+ def __isVisible( self, item ):
+- if item.get_type() == matemenu.TYPE_ENTRY:
+- return not ( item.get_is_excluded() or item.get_is_nodisplay() )
+- if item.get_type() == matemenu.TYPE_DIRECTORY and len( item.get_contents() ):
++ if isinstance(item, MateMenu.TreeEntry):
++ app_info = item.get_app_info()
++ return not ( item.get_is_excluded() or app_info.get_nodisplay() )
++ if isinstance(item, MateMenu.TreeDirectory) and item.iter().next() != MateMenu.TreeItemType.INVALID:
+ return True
+
+
+@@ -271,7 +281,7 @@
+
+ for mainitems in [ "mate-applications.menu", "mate-settings.menu" ]:
+ mymenu = Menu( mainitems )
+- mymenu.tree.add_monitor( self.menuChanged, None )
++ mymenu.tree.connect( "changed", self.menuChanged )
+
+ self.refresh_apt_cache()
+ self.suggestions = []
+@@ -1726,13 +1736,14 @@
+ num = 1
+
+ for menu in self.menuFiles:
+- for child in menu.directory.get_contents():
+- if child.get_type() == matemenu.TYPE_DIRECTORY:
+- icon = str(child.icon)
+- #if (icon == "preferences-system"):
+- # self.adminMenu = child.name
+- #if (icon != "applications-system" and icon != "applications-other"):
+- newCategoryList.append( { "name": child.name, "icon": child.icon, "tooltip": child.name, "filter": child.name, "index": num } )
++ item_iter = menu.directory.iter()
++ item_type = item_iter.next()
++ while item_type != MateMenu.TreeItemType.INVALID:
++ if item_type == MateMenu.TreeItemType.DIRECTORY:
++ child = item_iter.get_directory()
++ icon = child.get_icon().get_names()[0]
++ newCategoryList.append( { "name": child.get_name(), "icon": icon, "tooltip": child.get_name(), "filter": child.get_name(), "index": num } )
++ item_type = item_iter.next()
+ num += 1
+
+ return newCategoryList
+@@ -1743,29 +1754,34 @@
+ newApplicationsList = []
+
+ def find_applications_recursively(app_list, directory, catName):
+- for item in directory.get_contents():
+- if item.get_type() == matemenu.TYPE_ENTRY:
++ item_iter = directory.iter()
++ item_type = item_iter.next()
++ while item_type != MateMenu.TreeItemType.INVALID:
++ if item_type == MateMenu.TreeItemType.ENTRY:
++ item = item_iter.get_entry()
+ app_list.append( { "entry": item, "category": catName } )
+- elif item.get_type() == matemenu.TYPE_DIRECTORY:
++ elif item_type == MateMenu.TreeItemType.DIRECTORY:
++ item = item_iter.get_directory()
+ find_applications_recursively(app_list, item, catName)
++ item_type = item_iter.next()
+
+ for menu in self.menuFiles:
+ directory = menu.directory
+- for entry in directory.get_contents():
+- if entry.get_type() == matemenu.TYPE_DIRECTORY and len(entry.get_contents()):
+- #Entry is a top-level category
+- #catName = entry.name
+- #icon = str(entry.icon)
+- #if (icon == "applications-system" or icon == "applications-other"):
+- # catName = self.adminMenu
+- for item in entry.get_contents():
+- if item.get_type() == matemenu.TYPE_DIRECTORY:
+- find_applications_recursively(newApplicationsList, item, entry.name)
+- elif item.get_type() == matemenu.TYPE_ENTRY:
+- newApplicationsList.append( { "entry": item, "category": entry.name } )
+- #elif entry.get_type() == matemenu.TYPE_ENTRY:
+- # if not (entry.get_is_excluded() or entry.get_is_nodisplay()):
+- # print "=======>>> " + item.name + " = top level"
+- # newApplicationsList.append( { "entry": item, "category": "" } )
++ entry_iter = directory.iter()
++ entry_type = entry_iter.next()
++ while entry_type != MateMenu.TreeItemType.INVALID:
++ if entry_type == MateMenu.TreeItemType.DIRECTORY:
++ entry = entry_iter.get_directory()
++ item_iter = entry.iter()
++ item_type = item_iter.next()
++ while item_type != MateMenu.TreeItemType.INVALID:
++ if item_type == MateMenu.TreeItemType.ENTRY:
++ item = item_iter.get_entry()
++ newApplicationsList.append( { "entry": item, "category": entry.get_name() } )
++ elif item_type == MateMenu.TreeItemType.DIRECTORY:
++ item = item_iter.get_directory()
++ find_applications_recursively(newApplicationsList, item, entry.get_name())
++ item_type = item_iter.next()
++ entry_type = entry_iter.next()
+
+ return newApplicationsList
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/mate-mintmenu.git/commitdiff/4771d01abafef546264d31ce0fe223983750fbf3
More information about the pld-cvs-commit
mailing list