menudata.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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, getMessages, clearMessages
  14. from core.globalvar import WXGUIDIR
  15. from core.gcmd import GError
  16. from core.utils import _
  17. class LayerManagerMenuData(MenuTreeModelBuilder):
  18. def __init__(self, filename=None, message_handler=GError):
  19. if filename:
  20. expandAddons = False
  21. else:
  22. expandAddons = True
  23. fallback = os.path.join(WXGUIDIR, 'xml', 'menudata.xml')
  24. if not filename:
  25. filename = getMenudataFile(userRootFile='main_menu.xml',
  26. newFile='menudata.xml',
  27. fallback=fallback)
  28. try:
  29. MenuTreeModelBuilder.__init__(
  30. self, filename, expandAddons=expandAddons,
  31. message_handler=message_handler)
  32. except (ValueError, AttributeError, TypeError):
  33. message_handler(_("Unable to parse user toolboxes XML files. "
  34. "Default main menu will be loaded."))
  35. fallback = os.path.join(WXGUIDIR, 'xml', 'menudata.xml')
  36. MenuTreeModelBuilder.__init__(
  37. self, fallback, message_handler=message_handler)
  38. class LayerManagerModuleTree(MenuTreeModelBuilder):
  39. def __init__(self, filename=None, message_handler=GError):
  40. if filename:
  41. expandAddons = False
  42. else:
  43. expandAddons = True
  44. fallback = os.path.join(WXGUIDIR, 'xml', 'module_tree_menudata.xml')
  45. if not filename:
  46. filename = getMenudataFile(userRootFile='module_tree.xml',
  47. newFile='module_tree_menudata.xml',
  48. fallback=fallback)
  49. # TODO: try-except useless?
  50. try:
  51. MenuTreeModelBuilder.__init__(
  52. self, filename, expandAddons=expandAddons,
  53. message_handler=message_handler)
  54. except (ValueError, AttributeError, TypeError):
  55. error_handler(_("Unable to parse user toolboxes XML files. "
  56. "Default module tree will be loaded."))
  57. MenuTreeModelBuilder.__init__(
  58. self, fallback, message_handler=message_handler)