menudata.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. """!
  2. @package lmgr.menudata
  3. @brief wxGUI Layer Manager - menu data
  4. Classes:
  5. - menudata::LayerManagerMenuData
  6. (C) 2007-2012 by the GRASS Development Team
  7. This program is free software under the GNU General Public License
  8. (>=v2). Read the file COPYING that comes with GRASS for details.
  9. @author Martin Landa <landa.martin gmail.com>
  10. """
  11. import os
  12. from core.menutree import MenuTreeModelBuilder
  13. from core.toolboxes import getMenudataFile
  14. from core.globalvar import ETCWXDIR
  15. from core.gcmd import GError
  16. class LayerManagerMenuData(MenuTreeModelBuilder):
  17. def __init__(self, filename=None):
  18. if filename:
  19. expandAddons = False
  20. else:
  21. expandAddons = True
  22. fallback = os.path.join(ETCWXDIR, 'xml', 'menudata.xml')
  23. if not filename:
  24. filename = getMenudataFile(userRootFile='main_menu.xml',
  25. newFile='menudata.xml',
  26. fallback=fallback)
  27. try:
  28. MenuTreeModelBuilder.__init__(self, filename, expandAddons=expandAddons)
  29. except (ValueError, AttributeError, TypeError):
  30. GError(_("Unable to parse user toolboxes XML files. "
  31. "Default main menu will be loaded."))
  32. fallback = os.path.join(ETCWXDIR, 'xml', 'menudata.xml')
  33. MenuTreeModelBuilder.__init__(self, fallback)
  34. class LayerManagerModuleTree(MenuTreeModelBuilder):
  35. def __init__(self, filename=None):
  36. if filename:
  37. expandAddons = False
  38. else:
  39. expandAddons = True
  40. fallback = os.path.join(ETCWXDIR, 'xml', 'module_tree_menudata.xml')
  41. if not filename:
  42. filename = getMenudataFile(userRootFile='module_tree.xml',
  43. newFile='module_tree_menudata.xml',
  44. fallback=fallback)
  45. # TODO: try-except useless?
  46. try:
  47. MenuTreeModelBuilder.__init__(self, filename, expandAddons=expandAddons)
  48. except (ValueError, AttributeError, TypeError):
  49. GError(_("Unable to parse user toolboxes XML files. "
  50. "Default module tree will be loaded."))
  51. MenuTreeModelBuilder.__init__(self, fallback)