comparison frontends/src/tools/xmlui.py @ 1290:faa1129559b8 frontends_multi_profiles

core, frontends: refactoring to base Libervia on QuickFrontend (big mixed commit): /!\ not finished, everything is still instable ! - bridge: DBus bridge has been modified to allow blocking call to be called in the same way as asynchronous calls - bridge: calls with a callback and no errback are now possible, default errback log the error - constants: removed hack to manage presence without OrderedDict, as an OrderedDict like class has been implemented in Libervia - core: getLastResource has been removed and replaced by getMainResource (there is a global better management of resources) - various style improvments: use of constants when possible, fixed variable overlaps, import of module instead of direct class import - frontends: printInfo and printMessage methods in (Quick)Chat are more generic (use of extra instead of timestamp) - frontends: bridge creation and option parsing (command line arguments) are now specified by the frontend in QuickApp __init__ - frontends: ProfileManager manage a more complete plug sequence (some stuff formerly manage in contact_list have moved to ProfileManager) - quick_frontend (quick_widgets): QuickWidgetsManager is now iterable (all widgets are then returned), or can return an iterator on a specific class (return all widgets of this class) with getWidgets - frontends: tools.jid can now be used in Pyjamas, with some care - frontends (XMLUI): profile is now managed - core (memory): big improvment on entities cache management (and specially resource management) - core (params/exceptions): added PermissionError - various fixes and improvments, check diff for more details
author Goffi <goffi@goffi.org>
date Sat, 24 Jan 2015 01:00:29 +0100
parents e3a9ea76de35
children 89dc29afe01c
comparison
equal deleted inserted replaced
1289:653f2e2eea31 1290:faa1129559b8
208 @param host: %(doc_host)s 208 @param host: %(doc_host)s
209 @param parsed_dom: main parsed dom 209 @param parsed_dom: main parsed dom
210 @param title: force the title, or use XMLUI one if None 210 @param title: force the title, or use XMLUI one if None
211 @param flags: list of string which can be: 211 @param flags: list of string which can be:
212 - NO_CANCEL: the UI can't be cancelled 212 - NO_CANCEL: the UI can't be cancelled
213 @param callback: if present, will be use with launchAction 213 @param callback: if present, will be used with launchAction
214 """ 214 """
215 self.host = host 215 self.host = host
216 top=parsed_dom.documentElement 216 top=parsed_dom.documentElement
217 self.session_id = top.getAttribute("session_id") or None 217 self.session_id = top.getAttribute("session_id") or None
218 self.submit_id = top.getAttribute("submit") or None 218 self.submit_id = top.getAttribute("submit") or None
287 if self._main_cont is not None: 287 if self._main_cont is not None:
288 raise ValueError(_("XMLUI can have only one main container")) 288 raise ValueError(_("XMLUI can have only one main container"))
289 self._main_cont = value 289 self._main_cont = value
290 290
291 def _parseChilds(self, _xmlui_parent, current_node, wanted = ('container',), data = None): 291 def _parseChilds(self, _xmlui_parent, current_node, wanted = ('container',), data = None):
292 """Recursively parse childNodes of an elemen 292 """Recursively parse childNodes of an element
293 293
294 @param _xmlui_parent: widget container with '_xmluiAppend' method 294 @param _xmlui_parent: widget container with '_xmluiAppend' method
295 @param current_node: element from which childs will be parsed 295 @param current_node: element from which childs will be parsed
296 @param wanted: list of tag names that can be present in the childs to be SàT XMLUI compliant 296 @param wanted: list of tag names that can be present in the childs to be SàT XMLUI compliant
297 @param data: additionnal data which are needed in some cases 297 @param data: additionnal data which are needed in some cases
693 class_map[type_] = class_ 693 class_map[type_] = class_
694 694
695 695
696 def create(host, xml_data, title=None, flags=None, dom_parse=None, dom_free=None, callback=None, profile=C.PROF_KEY_NONE): 696 def create(host, xml_data, title=None, flags=None, dom_parse=None, dom_free=None, callback=None, profile=C.PROF_KEY_NONE):
697 """ 697 """
698 @param dom_parse: methode equivalent to minidom.parseString (but which must manage unicode), or None to use default one 698 @param dom_parse: methode equivalent to minidom.parseString (but which must manage unicode), or None to use default one
699 @param dom_free: method used to free the parsed DOM 699 @param dom_free: method used to free the parsed DOM
700 """ 700 """
701 if dom_parse is None: 701 if dom_parse is None:
702 from xml.dom import minidom 702 from xml.dom import minidom
703 dom_parse = lambda xml_data: minidom.parseString(xml_data.encode('utf-8')) 703 dom_parse = lambda xml_data: minidom.parseString(xml_data.encode('utf-8'))