From c4902f45fdac166e7a1f3c1f9fd6f33891f496f5 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Sat, 14 Oct 2023 11:07:04 +1100 Subject: [PATCH] mission_item_protocol: correct behaviour when wxpython not present self.manu may not exist if expython is not present --- MAVProxy/modules/lib/mission_item_protocol.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/MAVProxy/modules/lib/mission_item_protocol.py b/MAVProxy/modules/lib/mission_item_protocol.py index 72fb0d2e61..0945bc4842 100644 --- a/MAVProxy/modules/lib/mission_item_protocol.py +++ b/MAVProxy/modules/lib/mission_item_protocol.py @@ -89,6 +89,8 @@ def init_gui_menus(self): '''initialise menus for console and map''' self.menu_added_console = False self.menu_added_map = False + self.menu = None + if not mp_util.has_wxpython: return @@ -123,6 +125,15 @@ def completions(self): def unload(self): self.remove_command(self.command_name()) + self.unload_remove_menu_items() + + def unload_remove_menu_items(self): + '''remove out menu items from other modules''' + + if self.menu is None: + '''can get here if wxpython is not present''' + return + if self.module('console') is not None and self.menu_added_console: self.menu_added_console = False self.module('console').remove_menu(self.menu) @@ -294,6 +305,15 @@ def idle_task(self): print("re-requesting %s %s" % (self.itemstype(), str(wps))) self.send_wp_requests(wps) + self.idle_task_add_menu_items() + + def idle_task_add_menu_items(self): + '''check for load of other modules, add our items as required''' + + if self.menu is None: + '''can get here if wxpython is not present''' + return + if self.module('console') is not None: if not self.menu_added_console: self.menu_added_console = True