SUMMARY ======= 01 -- FIXED 02 -- FIXED 03 -- DUPLICATE 04 -- FIXED 05 -- CLOSED 06 -- FIXED 07 -- FIXED 08 -- OPEN 09 -- FIXED BUG 01 -- Carlo, 06-30-2004 Version: 1.0.1 Platform: bm1.mr.aps.anl.gov Description: File->Save causes an exception. Exception in Tkinter callback Traceback (most recent call last): File "/usr/lib/python2.1/lib-tk/Tkinter.py", line 1285, in __call__ return apply(self.func, args) File "/home/kmcivor/libMxconfig/ui_main.py", line 173, in cmd widget.signal_notify(event) File "/home/kmcivor/libMxconfig/events.py", line 87, in signal_notify observer(self, event, *args) File "/home/kmcivor/libMxconfig/events.py", line 60, in __call__ return func(instance, *args, **kwds) File "/home/kmcivor/libMxconfig/ctrl_main.py", line 147, in on_save self.on_saveas(event) TypeError: on_saveas() takes exactly 3 arguments (2 given) Steps to reproduce: 1. Open an existing database 2. Select File->Save Status: FIXED -- KM, 07/01/2004 MainWindowController.on_save() was calling on_saveas() without the window argument. BUG 02 -- Carlo, 06-30-2004 Version: 1.0.1 Platform: bm1.mr.aps.anl.gov Description: Editing a record does not cause the values to be updated. Steps to Reproduce: 1. Open an existing database 2. Open a record for editing 3. Change the value of some field to a new, valid value 4. Click "Okay" 5. Reopen the record for editing Status: FIXED -- KM, 07/01/2004 Clicking the "Okay" button did not cause the entry widget to lose focus. As a result, it did not validate itself and subsequently saved. Methods were added to the FieldEditor hierarchy to enable calls validateAndStore(), and RecordEditor.on_okay() now calls it for each of the FieldEditor widgets. BUG 03 -- Carlo, 06-30-2004 Version: 1.0.1 Platform: bm1.mr.aps.anl.gov Description: Second motor record blank in theta_2theta motors. Steps to Reproduce: 1. Create a new theta_2theta motor 2. Populate is motor fields 3. Click "Okay" 4. Reopen the record for editing Status: DUPLICATE -- KM, 07/01/2004 This is a variation of BUG 02. BUG 04 -- Carlo, 06-30-2004 Version: 1.0.1 Platform: bm1.mr.aps.anl.gov Description: The wrong record is opened for editing after you create a new record. Steps to Reproduce: 1. Open the attached database for editing 2. Select the "Test mirror-table linkage" 3. Create a new theta_2theta record named angle2 4. The "angle2" record will appear first in the group, and "angle" record will be opened for editing. Attached Database # # Test mirror-table linkage # angle device motor theta_2theta "" "" 0.0 0.0 -1.0 20.0 0.0 -1.0 -1.0 1.0 \ 0.0 mrad motor10 motor11 Status: FIXED -- KM, 07/01/2004 GroupNode.drawNewEntry() was returning the last child DatabaseNode when it should have been returning the first. BUG 05 -- Carlo, 06-30-2004 Version: 1.0.1 Platform: bm1.mr.aps.anl.gov Description: Device databases saved by mxconfig are very hard to read. The first of every record should start at the same column. Status: CLOSED -- KM 07-01-2004 MxDB will be modified to pad the record names. BUG 06 -- Ken, 06-30-2004 Version: 1.0.1 Platform: bm1.mr.aps.anl.gov Description: File->Save opens a "Save As" window when it should just save the database. Steps to Reproduce: 1. Open a database 2. Select File->Save Status: FIXED -- KM 07-01-2004 MainWindowCtrl.openDatabase was not setting __new to False. BUG 07 -- Ken, 06-30-2004 Version: 1.0.1 Platform: bm1.mr.aps.anl.gov Description: Record editor does not complain if you click "Okay" with an invalid value in some field. However, the invalid value is not stored. Steps to Reproduce: 1. Open an existing database 2. Open a record for editing 3. Change the value of some field to an invalid value 4. Click "Okay" Status: FIXED -- KM 07-01-2004 The root cause was the same as BUG 02. RecordEditor.on_okay now checks the return value of the validateAndStore() call make on each FieldEditor, and will not close if it fails. BUG 08 -- Ken, 06-30-2004 Version: 1.0.1 Platform: bm1.mr.aps.anl.gov Description: Closing record editor while an error dialog is open results in an exception and sometimes a segmentation fault. Exception in Tkinter callback Traceback (most recent call last): File "/usr/lib/python2.1/lib-tk/Tkinter.py", line 1285, in __call__ return apply(self.func, args) File "/home/kmcivor/libMxconfig/ui_array.py", line 128, in validateAndStore self.__entry.focus() File "/usr/lib/python2.1/lib-tk/Tkinter.py", line 369, in focus_set self.tk.call('focus', self._w) TclError: bad window path name ".136836972.137267460.137991876.137156996 .137991540.138001956.138001820.138001732.138086676.138091804.138091044 .138094260" Steps to Reproduce: 1. Open an existing database 2. Open a record for editing 3. Change the value of some field to an invalid value 4. Click "Okay" 5. Click to "Close" button on the titlebar. Status: OPEN -- KM 07-01-2004 This is apparently the result of a validation callback being made after the window has been destroyed. I have been unable to prevent this from happening. A possible solution would be make the error message box *really* modal, but Tk may not actually provide that. BUG 09 -- Version: 1.0.1 Platform: bm1.mr.aps.anl.gov Description: Clicking "Cancel" when prompted for a new record name raises an exception. Exception in Tkinter callback Traceback (most recent call last): File "/usr/lib/python2.1/lib-tk/Tkinter.py", line 1285, in __call__ return apply(self.func, args) File "/home/kmcivor/libMxconfig/ui_main.py", line 173, in cmd widget.signal_notify(event) File "/home/kmcivor/libMxconfig/events.py", line 87, in signal_notify observer(self, event, *args) File "/home/kmcivor/libMxconfig/events.py", line 60, in __call__ return func(instance, *args, **kwds) File "/home/kmcivor/libMxconfig/ctrl_main.py", line 171, in on_new_record edit = NewRecordWindow(window, self.__db) File "/home/kmcivor/libMxconfig/ui_newrec.py", line 107, in __init__ self.name = name.strip() AttributeError: 'None' object has no attribute 'strip' Steps to Reproduce: 1. Create a new record 2. Click "Cancel" when prompted for its name Status: FIXED -- KM 07-01-2004 NewRecordWindow.__init__() now checks for a canceled name dialog. BUG 10 -- Version: Platform: Description: Steps to Reproduce: 1. Status: