Clean up and add debugging info
This commit is contained in:
parent
877ce3640b
commit
3f1e04c577
5
README
Normal file
5
README
Normal file
@ -0,0 +1,5 @@
|
||||
DEBUGGING
|
||||
---------
|
||||
|
||||
- Remove mintmenu from the panel (it should not run anywhere else).
|
||||
- Run ./test
|
4
test
4
test
@ -4,4 +4,6 @@ sudo rm -rf /usr/lib/linuxmint/mintMenu
|
||||
sudo cp -R usr /
|
||||
sudo glib-compile-schemas /usr/share/glib-2.0/schemas
|
||||
|
||||
python /usr/lib/linuxmint/mintMenu/mintMenu.py
|
||||
mate-terminal --maximize -e /usr/lib/linuxmint/mintMenu/mintMenu.py
|
||||
|
||||
mate-panel-test-applets --iid MintMenuAppletFactory::MintMenuApplet
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
import gi
|
||||
gi.require_version("Gtk", "2.0")
|
||||
|
||||
gi.require_version('MatePanelApplet', '4.0')
|
||||
from gi.repository import Gtk, GdkPixbuf, Gdk, GObject
|
||||
from gi.repository import MatePanelApplet
|
||||
from gi.repository import Gio
|
||||
|
@ -22,10 +22,6 @@ from easyfiles import *
|
||||
|
||||
gtk = CDLL("libgtk-x11-2.0.so.0")
|
||||
|
||||
|
||||
from filemonitor import monitor as filemonitor
|
||||
|
||||
#import xdg.Menu
|
||||
import matemenu
|
||||
|
||||
from user import home
|
||||
@ -48,53 +44,6 @@ def print_timing(func):
|
||||
return res
|
||||
return wrapper
|
||||
|
||||
# Evil patching
|
||||
#def xdgParsePatched(filename=None):
|
||||
# # conver to absolute path
|
||||
# if filename and not os.path.isabs(filename):
|
||||
# filename = xdg.Menu.__getFileName(filename)
|
||||
#
|
||||
# # use default if no filename given
|
||||
# if not filename:
|
||||
# filename = xdg.Menu.__getFileName("applications.menu")
|
||||
#
|
||||
# if not filename:
|
||||
# raise xdg.Menu.ParsingError(_("File not found"), "/etc/xdg/menus/applications.menu")
|
||||
#
|
||||
# # check if it is a .menu file
|
||||
# if not os.path.splitext(filename)[1] == ".menu":
|
||||
# raise xdg.Menu.ParsingError(_("Not a .menu file"), filename)
|
||||
#
|
||||
# # create xml parser
|
||||
# try:
|
||||
# doc = xdg.Menu.xml.dom.minidom.parse(filename)
|
||||
# except xdg.Menu.xml.parsers.expat.ExpatError:
|
||||
# raise xdg.Menu.ParsingError(_("Not a valid .menu file"), filename)
|
||||
#
|
||||
# # parse menufile
|
||||
# xdg.Menu.tmp["Root"] = ""
|
||||
# xdg.Menu.tmp["mergeFiles"] = []
|
||||
# xdg.Menu.tmp["DirectoryDirs"] = []
|
||||
# xdg.Menu.tmp["cache"] = xdg.Menu.MenuEntryCache()
|
||||
#
|
||||
# xdg.Menu.__parse(doc, filename, xdg.Menu.tmp["Root"])
|
||||
# xdg.Menu.__parsemove(xdg.Menu.tmp["Root"])
|
||||
# xdg.Menu.__postparse(xdg.Menu.tmp["Root"])
|
||||
#
|
||||
# xdg.Menu.tmp["Root"].Doc = doc
|
||||
# xdg.Menu.tmp["Root"].Filename = filename
|
||||
#
|
||||
# # generate the menu
|
||||
# xdg.Menu.__genmenuNotOnlyAllocated(xdg.Menu.tmp["Root"])
|
||||
# xdg.Menu.__genmenuOnlyAllocated(xdg.Menu.tmp["Root"])
|
||||
#
|
||||
# # and finally sort
|
||||
# xdg.Menu.sort(xdg.Menu.tmp["Root"])
|
||||
# xdg.Menu.tmp["Root"].Files = xdg.Menu.tmp["mergeFiles"] + [ xdg.Menu.tmp["Root"].Filename ]
|
||||
# return xdg.Menu.tmp["Root"]
|
||||
#
|
||||
#xdg.Menu.parse = xdgParsePatched
|
||||
|
||||
# Helper function for retrieving the user's location for storing new or modified menu items
|
||||
def get_user_item_path():
|
||||
item_dir = None
|
||||
@ -312,7 +261,6 @@ class pluginclass( object ):
|
||||
|
||||
self.categoryList = []
|
||||
self.applicationList = []
|
||||
#self.menuFileMonitors = []
|
||||
|
||||
#dirty ugly hack, to get favorites drag origin position
|
||||
self.drag_origin = None
|
||||
@ -325,10 +273,6 @@ class pluginclass( object ):
|
||||
for mainitems in [ "mate-applications.menu", "mate-settings.menu" ]:
|
||||
mymenu = Menu( mainitems )
|
||||
mymenu.tree.add_monitor( self.menuChanged, None )
|
||||
#for f in mymenu.directory.Files:
|
||||
# self.menuFileMonitors.append( filemonitor.addMonitor(f, self.onMenuChanged, mymenu.directory.Filename ) )
|
||||
#for f in mymenu.directory.AppDirs:
|
||||
# self.menuFileMonitors.append( filemonitor.addMonitor(f, self.onMenuChanged, mymenu.directory.Filename ) )
|
||||
|
||||
self.refresh_apt_cache()
|
||||
self.suggestions = []
|
||||
@ -380,9 +324,6 @@ class pluginclass( object ):
|
||||
|
||||
self.settings.notifyRemoveAll()
|
||||
|
||||
#for mId in self.menuFileMonitors:
|
||||
# filemonitor.removeMonitor( mId )
|
||||
|
||||
def changePluginSize( self, settings, key, args ):
|
||||
if key == "width":
|
||||
self.width = settings.get_int(key)
|
||||
@ -1606,13 +1547,15 @@ class pluginclass( object ):
|
||||
self.favoritesReorder( self.drag_origin, widget.position )
|
||||
|
||||
def menuChanged( self, x, y ):
|
||||
# wait some miliseconds because there a multiple events send at the same time and we don't want to rebuild the menu for each
|
||||
print ("menuChanged")
|
||||
# wait 1s, to avoid building the menu multiple times concurrently
|
||||
if self.menuChangedTimer:
|
||||
GLib.source_remove( self.menuChangedTimer )
|
||||
|
||||
self.menuChangedTimer = GLib.timeout_add( 100, self.updateBoxes, True )
|
||||
self.menuChangedTimer = GLib.timeout_add( 1000, self.updateBoxes, True )
|
||||
|
||||
def updateBoxes( self, menu_has_changed ):
|
||||
print ("updateBoxes")
|
||||
# FIXME: This is really bad!
|
||||
if self.rebuildLock:
|
||||
return
|
||||
@ -1621,6 +1564,8 @@ class pluginclass( object ):
|
||||
|
||||
self.menuChangedTimer = None
|
||||
|
||||
try:
|
||||
|
||||
self.loadMenuFiles()
|
||||
|
||||
# Find added and removed categories than update the category list
|
||||
@ -1774,6 +1719,8 @@ class pluginclass( object ):
|
||||
button.hide()
|
||||
else:
|
||||
launcherNames.append(launcherName)
|
||||
except Exception, e:
|
||||
print e
|
||||
|
||||
self.rebuildLock = False
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user