Mercurial > libervia-backend
diff frontends/primitivus/primitivus @ 128:2240f34f6452
Primitivus: misc fixes + menubar first draft
- Menu bar: first draft of class
- Password widget fixed
- change some str to unicode, notably for JID
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 13 Jul 2010 02:24:59 +0800 |
parents | 55d3ef84f01f |
children | 542682d67282 |
line wrap: on
line diff
--- a/frontends/primitivus/primitivus Mon Jul 12 18:55:27 2010 +0800 +++ b/frontends/primitivus/primitivus Tue Jul 13 02:24:59 2010 +0800 @@ -28,7 +28,7 @@ from profile_manager import ProfileManager from contact_list import ContactList from chat import Chat -from custom_widgets import AdvancedEdit,FocusFrame,InputDialog,Alert +import custom_widgets import pdb """from window import Window from editbox import EditBox @@ -65,6 +65,7 @@ ('date', 'light gray', 'default'), ('my_nick', 'dark red,bold', 'default'), ('other_nick', 'dark cyan,bold', 'default'), + ('menubar', 'light gray,bold', 'dark red'), ] class ChatList(QuickChatList): @@ -118,10 +119,18 @@ def keyHandler(self, input): if input in ('q', 'Q') or input == 'ctrl x': raise urwid.ExitMainLoop() + elif input == 'meta m': + try: + if self.main_widget.header == None: + self.main_widget.header = self.menu + else: + self.main_widget.header = None + except AttributeError: + pass elif input == 'ctrl d' and 'D' in self.bridge.getVersion(): #Debug only for dev versions self.debug() elif input == 'meta j': #user wants to join a room - pop_up_widget = InputDialog(_("Entering a MUC room"), _("Please enter MUC's JID"), default_txt = 'test@conference.necton2.int', cancel_cb=self.removePopUp, ok_cb=self.onJoinRoom) + pop_up_widget = custom_widgets.InputDialog(_("Entering a MUC room"), _("Please enter MUC's JID"), default_txt = 'test@conference.necton2.int', cancel_cb=self.removePopUp, ok_cb=self.onJoinRoom) self.showPopUp(pop_up_widget) elif input == 'f2': #user wants to (un)hide the contact_list try: @@ -136,14 +145,19 @@ except AttributeError: #The main widget is not built (probably in Profile Manager) pass + try: + return self.menu.checkShortcuts(input) + except AttributeError: + return input def __buildMainWidget(self): self.contactList = ContactList(self, self.CM, on_click = self.contactSelected, on_change=lambda w: self.redraw()) #self.center_part = urwid.Columns([('weight',2,self.contactList),('weight',8,Chat('',self))]) self.center_part = urwid.Columns([('weight',2,self.contactList), ('weight',8,urwid.Filler(urwid.Text('')))]) - editBar = AdvancedEdit('> ') + editBar = custom_widgets.AdvancedEdit('> ') urwid.connect_signal(editBar,'click',self.onTextEntered) - self.main_widget = FocusFrame(self.center_part, footer=editBar, focus_part='footer') + self.menu = custom_widgets.Menu() + self.main_widget = custom_widgets.FocusFrame(self.center_part, header=self.menu, footer=editBar, focus_part='footer') return self.main_widget def plug_profile(self, profile_key='@DEFAULT@'): @@ -192,7 +206,7 @@ else: message = _("'%s' is an invalid JID !") % room_jid error (message) - Alert(_("Error"), message, ok_cb=self.removePopUp) + custom_widgets.Alert(_("Error"), message, ok_cb=self.removePopUp) sat = PrimitivusApp() sat.start()