Remove duplicates from get_selected_runs() (Issue ...
by Chris Satterlee 5 years 3 months
Remove duplicates from get_selected_runs() (Issue #135)

The get_selected_runs() method is modified to remove duplicates from the list returned. This prevents the spurious warnings of Issue #135, but also should make Update faster when date groups are selected, since runs were being updated twice.
78259445
Add Control-click to tooltip and help text (Issue ...
by Chris Satterlee 5 years 3 months
Add Control-click to tooltip and help text (Issue #134)

Changed all instances of "Control-click" to "Control-click (or Command-click)" in Results Wizard tooltip and help dialog text.
b8279ad4
Fix Overlay pane in Results Wizard (Issue #133)
by Chris Satterlee 5 years 3 months
Fix Overlay pane in Results Wizard (Issue #133)

The geometry management in the add_overlay_widgets() method was poor. The three buttons were packed into a ttk.Frame (overlay_widget_buttonbox). Between the Cancel and Finish buttons there was a dummy ttk.Label (overlay_button_pad) to make a gap. The buttons had specified widths (determined by trial-and-error) to make the buttonbox the same width as the enclosing ttk.Frame (overlay_widget_box). It appears that the hardcoded button widths (and or pad width) are not correct for the current Pythons (or more likely, the current Tcl/Tk).

This is now done correctly. The overlay_button_widgetbox is placed into overlay_widget_box using sticky=(E, W) instead of sticky=(W). This "stretches" it to the same width as the parent overlay_widget_box (assuming the buttons fit). Now the Finish button is placed with pack(side=RIGHT) and the gap between the Cancel and Finish buttons is automatic. The buttons have their natural sizes (i.e. width= removed) and the pad is removed..
9dfb59fc
Fix ungraceful app exit (Issue #132)
by Chris Satterlee 5 years 3 months
Fix ungraceful app exit (Issue #132)

Two changes are made:
- IV_Swinger2.py, IV_Swinger2_plotter class: Add assert for existence of CSV file(s) before invoking CsvFileProcessor.
- Change the sys.exit(-1)'s to return [] in IV_Swinger_plotter.py

This means non-existence (or incorrect formatt) of a data points CSV file causes an exception. This isn't super user-friendly because the user has to look at the log file to know what was wrong. But it is much better than sys.exit(-1) and isn't worth the coding to generate a dialog, given the unlikelihood of occurrence.
7805e014
Fix exception when title = None (Issue #131)
by Chris Satterlee 5 years 3 months
Fix exception when title = None (Issue #131)

Before deleting the name from the overlay_names dict, check that it exists in that dict.
523a5665
Fix disabled loop control checkbutton labels (Issu...
by Chris Satterlee 5 years 3 months
Fix disabled loop control checkbutton labels (Issue #130)

Similar changes are made to both the LoopRateLimit and LoopSaveResults classes.
- The update_value_str() method is changed to update_text_str()
- The update_text_str() method operates directly on the checkbutton's 'text' option (using its configure() method)
- The update_text_str() methods is called in the update_loop_rate_limit() / update_loop_save_results() method regardless of the state of the checkbutton
- The value_label_obj no longer exists so its initialization (ad destruction) are removed
- Instead of setting the checkbutton's state to "selected" or "!selected", the checkbutton variable is set to "On" or "Off", which is the correct way to do it
5e11445c
Fix loop mode checkbutton not updating
by Chris Satterlee 5 years 3 months
Fix loop mode checkbutton not updating

No Issue filed. Noticed in regression testing that when the Rate Limit and Save Results checkbuttons are set and then clicked to clear them, the checkmark doesn't clear until the mouse is moved. This is running on Mac with Python 2.7.18 or Python 3.8.5. It doesn't happen with Mac system Python. The difference may actually be the Tcl/Tk version rather than Python. It doesn't happen on Windows.

Solution is to add update_idletasks() in update_loop_rate_limit() and update_loop_save_results(). Also added to update_loop_mode() even though that checkbutton doesn't have the problem.
ad00aa46
Change type of looping delay config to float (Issu...
by Chris Satterlee 5 years 3 months
Change type of looping delay config to float (Issue #129)

Fix breakage from Issue #103 commit.
adb0a77f
Fix problem with fix for Issue #128
by Chris Satterlee 5 years 3 months
Fix problem with fix for Issue #128

Add missing message= to tkmsg.showerror() calls.
98d99965
Fix double title in log file dialog (Mac)
by Chris Satterlee 5 years 3 months
Fix double title in log file dialog (Mac)

No Issue filed. The title in the log file dialog is repeated when the Python 2 code is run with 2.7.18 or when the Python 3 code is run (Mac only). It is not duplicated when the Python 2 code is run with the Mac system Python. It is likely that it is really the Tcl/Tk version that is the determining factor, however.

In any case, the solution is to not set both the "title" and "message" option for tkfiledialog.askopenfilename(), but rather set only the "message" option if the code is running on Mac.

For some reason, this doesn't seem to be necessary for tkfiledialog.askdirectory(), which is used in get_copy_dest() and change_folder(). For consistency, and in case those change too in the future, the same change is made there too.
44665096
Report a bug