X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fwidget.py;fp=src%2Fwidget.py;h=6fc1430a7ef39b92d1213dfa3f0e7a5bad7c42d4;hb=6cf311bec98c1ccc0cf512ead71526e1ab223085;hp=56605d4763ddf4fd9022fe2aad863b6d17faeda6;hpb=2ce2f31557eb98311c886f58d0c9da1dd45897b6;p=drlaunch diff --git a/src/widget.py b/src/widget.py index 56605d4..6fc1430 100755 --- a/src/widget.py +++ b/src/widget.py @@ -55,18 +55,20 @@ import config 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 @@ -123,10 +125,10 @@ class DrlaunchPlugin(IconGrid, HomePluginItem, FremantleRotation): 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) @@ -153,27 +155,35 @@ class DrlaunchPlugin(IconGrid, HomePluginItem, FremantleRotation): 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']) @@ -189,10 +199,14 @@ class DrlaunchPlugin(IconGrid, HomePluginItem, FremantleRotation): 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)