Gnats 5476 Analysis: Model report preview not working for some RPL sets
Phil Weinstein, 1-22-2015 / Gnats 6576 Record

The fix to Gnats 5476 is actually a significant rwSettings usability enhancement which applies to all three rwSettings applications: Model Reports, Scripts, and Output Canvases. This fix/enhancement is put aside in a temporary "PhilRwSettings" git branch. See more below. I recommend that this change be applied to only RiverWare 6.7 development, and not to 6.6 prerel.

Gnats 5476 was effectively a race condition.  It occurred in the Model Report configuration dialog box when adding a RplSet to a report, and clicking the Preview Refresh button before clicking away from the Rpl Set Name combo box (rwSetting) in which an empty Rpl Set name is being replaced with a picked Rpl Set name.

The direct solution to Gnats 5476 is an "rwSettings" usability enhancement mentioned in a recent Output Canvas / Flow Lines feature document:

rwSettings -- Usability issue: Generally, the Output Canvas Preview is immediately updated when changing a setting. But "Enumerated Type" settings (supported with an option menu or "combo box") don't take effect when the user chooses a new value item. The user must click away from the option menu for the change to be reflected in the preview.

Having "enum-type" rwSetting QComboBox changes be applied immediately to the rwSetting's internal value, and generating the appropriate update notifications, fixes the problem. This behavior improves the "feedback" experience for users when making changes to "enum" rwSettings, as clicking away from the QComboBox is no longer required for the change to be effected. This is even more significant in the Output Canvas' use of an rwSetting tree because preview updates don't depend on clicking a "Refresh Preview" icon button.

As indicated above, this change is put aside in a temporary "PhilRwSettings" git branch:

Notice the change in method QWidget* rwSettingTree::Delegate::createEditor(). I had previously added this comment ... "IS THIS CASE MISSING a signal/slot connection? See the many following cases" [9-7-2014]. This fix is precisely adding that "missing" signal/slot connection, though it was more complicated. Use of a QSignalMapper and additional change processing was required.

- Phil