comparison src/browser/sat_browser/xmlui.py @ 589:a5019e62c3e9 frontends_multi_profiles

browser side: big refactoring to base Libervia on QuickFrontend, first draft: /!\ not finished, partially working and highly instable - add collections module with an OrderedDict like class - SatWebFrontend inherit from QuickApp - general sat_frontends tools.jid module is used - bridge/json methods have moved to json module - UniBox is partially removed (should be totally removed before merge to trunk) - Signals are now register with the generic registerSignal method (which is called mainly in QuickFrontend) - the generic getOrCreateWidget method from QuickWidgetsManager is used instead of Libervia's specific methods - all Widget are now based more or less directly on QuickWidget - with the new QuickWidgetsManager.getWidgets method, it's no more necessary to check all widgets which are instance of a particular class - ChatPanel and related moved to chat module - MicroblogPanel and related moved to blog module - global and overcomplicated send method has been disabled: each class should manage its own sending - for consistency with other frontends, former ContactPanel has been renamed to ContactList and vice versa - for the same reason, ChatPanel has been renamed to Chat - for compatibility with QuickFrontend, a fake profile is used in several places, it is set to C.PROF_KEY_NONE (real profile is managed server side for obvious security reasons) - changed default url for web panel to SàT website, and contact address to generic SàT contact address - ContactList is based on QuickContactList, UI changes are done in update method - bride call (now json module) have been greatly improved, in particular call can be done in the same way as for other frontends (bridge.method_name(arg1, arg2, ..., callback=cb, errback=eb). Blocking method must be called like async methods due to javascript architecture - in bridge calls, a callback can now exists without errback - hard reload on BridgeSignals remote error has been disabled, a better option should be implemented - use of constants where that make sens, some style improvments - avatars are temporarily disabled - lot of code disabled, will be fixed or removed before merge - various other changes, check diff for more details server side: manage remote exception on getEntityData, removed getProfileJid call, added getWaitingConf, added getRoomsSubjects
author Goffi <goffi@goffi.org>
date Sat, 24 Jan 2015 01:45:39 +0100
parents fed185c95f1c
children ebb602d8b3f2
comparison
equal deleted inserted replaced
585:bade589dbd5a 589:a5019e62c3e9
405 405
406 406
407 class XMLUIPanel(LiberviaXMLUIBase, xmlui.XMLUIPanel, VerticalPanel): 407 class XMLUIPanel(LiberviaXMLUIBase, xmlui.XMLUIPanel, VerticalPanel):
408 widget_factory = WidgetFactory() 408 widget_factory = WidgetFactory()
409 409
410 def __init__(self, host, parsed_xml, title=None, flags=None): 410 def __init__(self, host, parsed_xml, title=None, flags=None, callback=None, profile=C.PROF_KEY_NONE):
411 self.widget_factory._xmlui_main = self 411 self.widget_factory._xmlui_main = self
412 VerticalPanel.__init__(self) 412 VerticalPanel.__init__(self)
413 self.setSize('100%', '100%') 413 self.setSize('100%', '100%')
414 xmlui.XMLUIPanel.__init__(self, host, parsed_xml, title, flags) 414 xmlui.XMLUIPanel.__init__(self, host, parsed_xml, title, flags, callback, profile)
415 415
416 def setCloseCb(self, close_cb): 416 def setCloseCb(self, close_cb):
417 self.close_cb = close_cb 417 self.close_cb = close_cb
418 418
419 def _xmluiClose(self): 419 def _xmluiClose(self):
443 hpanel.add(Button('Cancel', lambda ignore: self._xmluiClose())) 443 hpanel.add(Button('Cancel', lambda ignore: self._xmluiClose()))
444 self.add(hpanel) 444 self.add(hpanel)
445 445
446 def show(self): 446 def show(self):
447 options = ['NO_CLOSE'] if self.type == C.XMLUI_FORM else [] 447 options = ['NO_CLOSE'] if self.type == C.XMLUI_FORM else []
448 _dialog = dialog.GenericDialog(self.title, self, options=options) 448 _dialog = dialog.GenericDialog(self.xmlui_title, self, options=options)
449 self.setCloseCb(_dialog.close) 449 self.setCloseCb(_dialog.close)
450 _dialog.show() 450 _dialog.show()
451 451
452 452
453 class XMLUIDialog(LiberviaXMLUIBase, xmlui.XMLUIDialog): 453 class XMLUIDialog(LiberviaXMLUIBase, xmlui.XMLUIDialog):
454 dialog_factory = GenericFactory() 454 dialog_factory = GenericFactory()
455 455
456 def __init__(self, host, parsed_dom, title = None, flags = None): 456 def __init__(self, host, parsed_dom, title = None, flags = None, callback=None, profile=C.PROF_KEY_NONE):
457 xmlui.XMLUIDialog.__init__(self, host, parsed_dom, title, flags) 457 xmlui.XMLUIDialog.__init__(self, host, parsed_dom, title, flags, callback, profile)
458 458
459 xmlui.registerClass(xmlui.CLASS_PANEL, XMLUIPanel) 459 xmlui.registerClass(xmlui.CLASS_PANEL, XMLUIPanel)
460 xmlui.registerClass(xmlui.CLASS_DIALOG, XMLUIDialog) 460 xmlui.registerClass(xmlui.CLASS_DIALOG, XMLUIDialog)
461 461
462 def create(*args, **kwargs): 462 def create(*args, **kwargs):