import apps
from icon import Icon
from icongrid import IconGrid
+from sig import Disconnector
# Restore path
sys.path=orig_path
# IconGrid must be before HomePluginItem for its connect()
# and do_button_*() to override those of HomePluginItem
-class DrlaunchPlugin(IconGrid, HomePluginItem, FremantleRotation):
+class DrlaunchPlugin(IconGrid, HomePluginItem, FremantleRotation, Disconnector):
def __init__(self):
IconGrid.__init__(self)
HomePluginItem.__init__(self)
FremantleRotation.__init__(self, 'DrlaunchPlugin',
mode=FremantleRotation.AUTOMATIC, dontrotate=True)
+ Disconnector.__init__(self)
self.winConfig=None
self.set_colormap(screen.get_rgba_colormap())
self.set_app_paintable(True)
- self.connect('show-settings', self.slot_show_settings)
- self.connect('long-press', self.signalLongpress)
- self.connect('click', self.signalClick)
- self.connect('notify', self.signalNotify)
+ self.c(self, 'show-settings', self.slot_show_settings)
+ self.c(self, 'long-press', self.signalLongpress)
+ self.c(self, 'click', self.signalClick)
+ self.c(self, 'notify', self.signalNotify)
HomePluginItem.do_realize(self)
s=WinConfig(self.get_config())
s.show_all()
- s.connect('destroy', self.slotConfigDestroy)
+ #s.c(s, 'delete-event', self.slotConfigDestroy)
+ self.c(s, 'delete-event', self.slotConfigDestroy)
+ #s.connect('destroy', self.slotConfigDestroy)
self.winConfig=s
- def slotConfigDestroy(self, sender):
- self.winConfig=None
-
+ def slotConfigDestroy(self, sender, event):
+# print "Sender:", sender
dt=sender.getData()
- config=self.get_config()
+ # Disconnect signals for that object in order to be deleted
+ self.dis_finish(self.winConfig)
+ #self.winConfig.finish()
+ #self.winConfig.destroy()
- config.setSize(dt['size'])
- config.setApps(dt['apps'])
- config.setIndiv(dt['indiv'])
- config.setLongpress(dt['longpress'])
- config.setAnimate(dt['animate'])
- config.setNoBg(dt['nobg'])
- config.setThemeBg(dt['themebg'])
- config.setIconSize(dt['iconsize'])
- config.setIconPadding(dt['iconpadding'])
- config.setIconMargin(dt['iconmargin'])
- config.save()
+ self.winConfig=None
+
+ cfg=self.get_config()
+
+ cfg.setSize(dt['size'])
+ cfg.setApps(dt['apps'])
+ cfg.setIndiv(dt['indiv'])
+ cfg.setLongpress(dt['longpress'])
+ cfg.setAnimate(dt['animate'])
+ cfg.setNoBg(dt['nobg'])
+ cfg.setThemeBg(dt['themebg'])
+ cfg.setIconSize(dt['iconsize'])
+ cfg.setIconPadding(dt['iconpadding'])
+ cfg.setIconMargin(dt['iconmargin'])
+ cfg.save()
# Resize widget
self.setSize(dt['size'])
self.queue_draw()
+# print "slot-config-destroy-end"
+
+ return(False)
+
def handle_click(self, sender, icon):
""" common handler for longpress and click """
- if icon.name!=None and icon.name!='':
- launcher.launch(icon.name)
+ if icon.appname!=None and icon.appname!='':
+ launcher.launch(icon.appname)
def signalLongpress(self, sender, icon):
self.handle_click(sender, icon)