mailr11901 - /branches/bieri_gui/gui_bieri/menu.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on December 19, 2010 - 17:13:
Author: bugman
Date: Sun Dec 19 17:13:56 2010
New Revision: 11901

URL: http://svn.gna.org/viewcvs/relax?rev=11901&view=rev
Log:
The user function menu entires are disabled during relax execution lock.

This will prevent racing and strange crashing of relax.


Modified:
    branches/bieri_gui/gui_bieri/menu.py

Modified: branches/bieri_gui/gui_bieri/menu.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/bieri_gui/gui_bieri/menu.py?rev=11901&r1=11900&r2=11901&view=diff
==============================================================================
--- branches/bieri_gui/gui_bieri/menu.py (original)
+++ branches/bieri_gui/gui_bieri/menu.py Sun Dec 19 17:13:56 2010
@@ -23,6 +23,9 @@
 
 # Module docstring.
 """Module for the main relax menu bar."""
+
+# relax module imports.
+from status import Status
 
 # Python module imports.
 import wx
@@ -114,6 +117,9 @@
         self.gui.Bind(wx.EVT_MENU, self.gui.references,     id=42)
         self.gui.Bind(wx.EVT_MENU, self.gui.about_gui,      id=43)
         self.gui.Bind(wx.EVT_MENU, self.gui.about_relax,    id=44)
+
+        # Menu update.
+        self.gui.Bind(wx.EVT_MENU_OPEN, self.update_menus)
 
 
     def build_menu_item(self, menu, id=None, text='', tooltip='', icon=None):
@@ -185,7 +191,7 @@
         menu = wx.Menu()
 
         # The list of entries to build.
-        entries = [
+        self.entries_uf = [
             [wx.NewId(), "&molecule", paths.icon_16x16.molecule, None, [
                 [wx.NewId(), "&create", paths.icon_16x16.add, 
self.gui.user_functions.molecule.create],
                 [wx.NewId(), "&delete", paths.icon_16x16.remove, 
self.gui.user_functions.molecule.delete]
@@ -207,7 +213,30 @@
         ]
 
         # Build.
-        self._create_menu(menu, entries)
+        self._create_menu(menu, self.entries_uf)
 
         # Add the sub-menu.
-        self.menubar.Append(menu, "&User functions")
+        title = "&User functions"
+        self.menubar.Append(menu, title)
+        self.menu_uf_id = self.menubar.FindMenu(title)
+
+
+    def update_menus(self, event):
+        """Update the menus dependent on the relax state.
+
+        @param event:   The wx event.
+        @type event:    wx event
+        """
+
+        # The status object.
+        status = Status()
+
+        # Loop over the user function menu items.
+        for i in range(len(self.entries_uf)):
+            # Enable the menu entries.
+            if not status.exec_lock.locked():
+                self.menubar.Enable(self.entries_uf[i][0], True)
+
+            # Disable the menu entries.
+            else:
+                self.menubar.Enable(self.entries_uf[i][0], False)




Related Messages


Powered by MHonArc, Updated Sun Dec 19 17:20:01 2010