diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index f707731c6..de9d5ea38 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -497,10 +497,11 @@ class FittingView(d.Display): while sel != -1 and sel not in self.blanks: mod = self.mods[self.GetItemData(sel)] - # Test if mod.isEmpty exists. - try: - mod.isEmpty - except AttributeError: + # Test if mod.isEmpty does not exist. + # Certain special module can be missing this trait + # Example: T3D modes + if not hasattr(mod, 'isEmpty'): + # Set it if missing, prevents later stack traces. mod.isEmpty = False if not mod.isEmpty: diff --git a/gui/contextMenu.py b/gui/contextMenu.py index 5e8839cac..a881a995c 100644 --- a/gui/contextMenu.py +++ b/gui/contextMenu.py @@ -70,6 +70,17 @@ class ContextMenu(object): if m.display(srcContext, selection): amount += 1 texts = m.getText(itemContext, selection) + + # Check the selected item to see if it has special reasons for not showing the menu item + skip_menu_item = False + for sel in selection: + if hasattr(sel, "_Mode__item") and texts == "Remove Module": + # Don't show remove for modes, these are special modules that cannot be removed + skip_menu_item = True + + if skip_menu_item == True: + continue + if isinstance(texts, basestring): texts = (texts,)