menudata.py 2.7 KB

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