Mercurial > libervia-backend
diff frontends/primitivus/primitivus @ 166:b318d2b58887
Primitivus: parameters management via XMLUI
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 09 Aug 2010 21:39:41 +0800 |
parents | 2fa58703f1b7 |
children | a2655a0a4eac |
line wrap: on
line diff
--- a/frontends/primitivus/primitivus Mon Aug 09 21:36:31 2010 +0800 +++ b/frontends/primitivus/primitivus Mon Aug 09 21:39:41 2010 +0800 @@ -81,7 +81,7 @@ def __init__(self): self.CM = QuickContactManagement() #FIXME: not the best place - QuickApp.__init__(self) + QuickApp.__init__(self) ## main loop setup ## self.main_widget = ProfileManager(self) @@ -183,6 +183,7 @@ general = _("General") menu.addMenu(general, _("Connect"), self.onConnectRequest) menu.addMenu(general, _("Disconnect"), self.onDisconnectRequest) + menu.addMenu(general, _("Parameters"), self.onParam) menu.addMenu(general, _("About"), self.onAboutRequest) menu.addMenu(general, _("Exit"), self.onExitRequest, 'ctrl x') contact = _("Contact") @@ -236,8 +237,28 @@ self.notBar.addPopUp(pop_up_widget) def notify(self, message): + """"Notify message to user via notification bar""" self.notBar.addMessage(message) + def addWindow(self, widget): + """Display a window if possible, + else add it in the notification bar queue + @param widget: BoxWidget""" + assert(len(self.center_part.widget_list)<=2) + wid_idx = len(self.center_part.widget_list)-1 + self.center_part.widget_list[wid_idx] = widget + self.menu_roller.removeMenu(_('Chat menu')) + self.contactList.unselectAll() + self.redraw() + + def removeWindow(self): + """Remove window showed on the right column""" + #TODO: to a better Window management than this crappy hack + assert(len(self.center_part.widget_list)<=2) + wid_idx = len(self.center_part.widget_list)-1 + self.center_part.widget_list[wid_idx] = urwid.Filler(urwid.Text('')) + self.redraw() + def contactSelected(self, contact_list): contact = contact_list.get_contact() if contact: @@ -299,11 +320,7 @@ misc['target'] = data['target'] misc['action_back'] = self.bridge.gatewayRegister ui = XMLUI(self, title=title, xml_data = data['xml'], misc = misc) - assert(len(self.center_part.widget_list)==2) - self.center_part.widget_list[1] = ui - self.menu_roller.removeMenu(_('Chat menu')) - self.contactList.selected = None - self.redraw() + self.addWindow(ui) else: error (_("FIXME FIXME FIXME: type [%s] not implemented") % type) raise NotImplementedError @@ -341,6 +358,10 @@ def onDisconnectRequest(self, menu): self.bridge.disconnect(self.profile) + def onParam(self, menu): + params = XMLUI(self,xml_data=self.bridge.getParamsUI(self.profile)) + self.addWindow(params) + def onExitRequest(self, menu): raise urwid.ExitMainLoop()