Mercurial > libervia-backend
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')) |