Clean up and adjust names of commands requiring curve updates in the GUI.
[hooke.git] / hooke / ui / gui / __init__.py
index 6f1a02161493309df7840357b347ce499e390304..a49fe27e498b4abc37a78a225cdd7f6d7cd8a30e 100644 (file)
@@ -1,7 +1,4 @@
-# Copyright (C) 2008-2010 Fabrizio Benedetti
-#                         Massimo Sandal <devicerandom@gmail.com>
-#                         Rolf Schmidt <rschmidt@alcor.concordia.ca>
-#                         W. Trevor King <wking@drexel.edu>
+# Copyright (C) 2010-2011 W. Trevor King <wking@drexel.edu>
 #
 # This file is part of Hooke.
 #
@@ -71,7 +68,9 @@ class HookeFrame (wx.Frame):
         self._perspectives = {}  # {name: perspective_str}
         self._c = {}
 
-        self.SetIcon(wx.Icon(self.gui.config['icon image'], wx.BITMAP_TYPE_ICO))
+        self.SetIcon(wx.Icon(
+                os.path.expanduser(self.gui.config['icon image']),
+                wx.BITMAP_TYPE_ICO))
 
         # setup frame manager
         self._c['manager'] = aui.AuiManager()
@@ -520,16 +519,7 @@ class HookeFrame (wx.Frame):
                 self.execute_command(
                     command=self._command_by_name('get playlist'))
 
-    def _postprocess_zero_block_surface_contact_point(
-        self, command, args={}, results=[]):
-        """Update the curve, since the available columns may have changed.
-        """
-        if isinstance(results[-1], Success):
-            self.execute_command(
-                command=self._command_by_name('get curve'))
-    def _postprocess_add_block_force_array(
-        self, command, args={}, results=[]):
+    def _update_curve(self, command, args={}, results=[]):
         """Update the curve, since the available columns may have changed.
         """
         if isinstance(results[-1], Success):
@@ -537,7 +527,6 @@ class HookeFrame (wx.Frame):
                 command=self._command_by_name('get curve'))
 
 
-
     # Command panel interface
 
     def select_command(self, _class, method, command):
@@ -707,7 +696,7 @@ class HookeFrame (wx.Frame):
         self._perspectives = {
             'Default': self._c['manager'].SavePerspective(),
             }
-        path = self.gui.config['perspective path']
+        path = os.path.expanduser(self.gui.config['perspective path'])
         if os.path.isdir(path):
             files = sorted(os.listdir(path))
             for fname in files:
@@ -784,7 +773,7 @@ class HookeFrame (wx.Frame):
         if name == 'Default':
             name = 'New perspective'
         name = select_save_file(
-            directory=self.gui.config['perspective path'],
+            directory=os.path.expanduser(self.gui.config['perspective path']),
             name=name,
             extension=self.gui.config['perspective extension'],
             parent=self,
@@ -793,7 +782,8 @@ class HookeFrame (wx.Frame):
         if name == None:
             return
         self._save_perspective(
-            perspective, self.gui.config['perspective path'], name=name,
+            perspective,
+            os.path.expanduser(self.gui.config['perspective path']), name=name,
             extension=self.gui.config['perspective extension'])
 
     def _on_delete_perspective(self, *args, **kwargs):
@@ -814,13 +804,22 @@ class HookeFrame (wx.Frame):
         names = [options[i] for i in dialog.selected]
         dialog.Destroy()
         self._delete_perspectives(
-            self.gui.config['perspective path'], names=names,
-            extension=self.gui.config['perspective extension'])
+            os.path.expanduser(self.gui.config['perspective path']),
+            names=names, extension=self.gui.config['perspective extension'])
 
     def _on_select_perspective(self, _class, method, name):
         self._restore_perspective(name)
 
 
+# setup per-command versions of HookeFrame._update_curve
+for _command in ['convert_distance_to_force',
+                 'polymer_fit_peaks',
+                 'remove_cantilever_from_extension',
+                 'zero_surface_contact_point',
+                 ]:
+    setattr(HookeFrame, '_postprocess_%s' % _command, HookeFrame._update_curve)
+del _command
+
 
 class HookeApp (wx.App):
     """A :class:`wx.App` wrapper around :class:`HookeFrame`.
@@ -867,7 +866,7 @@ class HookeApp (wx.App):
 
     def _setup_splash_screen(self):
         if self.gui.config['show splash screen'] == True:
-            path = self.gui.config['splash screen image']
+            path = os.path.expanduser(self.gui.config['splash screen image'])
             if os.path.isfile(path):
                 duration = self.gui.config['splash screen duration']
                 wx.SplashScreen(