BOR Truckee Tasks for Phil / March 2014
Phil Weinstein, CADSWES, edit: 3-31-2014
Project: BOR Truckee, for RiverWare 6.5

Update [4-1-2014] -- SEE ALSO the completed "feature" document:

  Task Comment
1a Workspace Background Colors should be saved with model file.

Completed 3-24,
pending discussion.

1b Selected RiverWare Icon should be saved with model file. Completed 3-21
2 DateTime Spinner Enhancement: All should support "Global Scroll". Proposal (below)
Completed 3-25
with just a custom context menu.
See also this page.
3 Table Row/Column Label Editor Dialog: should support tabular clipboard copy/paste Completed 3-25
See also this page.
4 Printing Plots: Add user-supplied Header and Footer. Completed 3-27
See also this page

Original Analysis ...

(1a) Workspace Background Colors should be saved with model file.

Currently (in RW 6.4), workspace background colors -- independent for the three "views" -- are saved in user settings. These will now be saved in the model file. The following algorithm provides a good transition to this feature:

  1. When saving a model file, the current backgrounds for the three views are saved in the model file.
  2. When loading a model file having saved background colors for the three views, those saved colors are applied to the views -- and are saved as user settings to represent the most recently used color settings for the three views.
  3. When explicitly changing a view's background color (under "Canvas Properties"), that color is saved in user settings. [No functional change].
  4. When starting RiverWare, the background colors for the three views are initialized from user settings. [No functional change; however, because of rule 2, that "persistent color" will come from the last loaded model -- OR because of rule 3, from any subsequent background color change explicitly done by the user].

(1b) Selected RiverWare Icon should be saved with model file.

See screenshot and prior feature description:

The selection (of four options) will now be saved with the RiverWare model file, and restored when reloading the model.

(2) DateTime Spinner Enhancement: All should support "Global Scroll" / Proposal

Note (3-25-2014): This was minimally addressed by implementing a custom context menu on the DateTime spinner. The new context menu starts with a "Global Time Scroll" operation. See this webpage. We may also consider pursuing the proposal described below -- adding a visible GUI control (menu-button) for special Date/Time operations, but the implemented context menu enhancement may be sufficient for the current requirement.

The original request was to add "Global Scroll" functionality to the Open Object Dialog's Date/Time spinner. The real problem is that Global Scroll isn't uniformly supported by all Date/Time spinners in RiverWare. The following screenshot shows that Global Scroll is supported by a "Shift-click" operation on the Open Series Slot dialog's "Scroll:" button. (But the Open Object Dialog lacks that feature because it doesn't have an analogous "Scroll:" button). [RW 6.4]:

The "Scroll:" button has meaning in the Open Series Slot dialog, but not as such in the Open Object dialog. In the Slot dialog (and the similar series data displays, e.g. the Edit Account dialog), the vertical scrollbar in the series data table readily scrolls to a different visible time range; clicking the "Scroll:" button rescrolls to the the date/time spinner's value. Note that there is no analogy in the Open Object Dialog -- the date/time spinner is the only time-related control in this dialog -- so a "Scroll:" button in that dialog would have no purpose.

I propose that we remove the "Scroll:" button from the Open Slot Dialog, and other places where such a button is deployed, and instead, have the Date/Time spinner widget introduce an icon button to the left of the spinner widget which shows a popup dialog with these operations:

Technical: The DateTimeQtSpinner class is now a QSpinBox subclass. This will be changed to a QWidget subclass, with internal child widgets. Any public QSpinBox methods currently used in the application for DateTimeQtSpinners will be replicated in this class' public interface, to minimize required changes in all client code. There are currently about 44 DateTimeQtSpinners in RiverWare; See this enumeration:

Note: Effectively replacing the Open Slot Dialog's "Rescroll" button with this new icon button will have the benefit of reducing the minimum width of that common dialog.

(3) Table Row/Column Label Editor Dialog: should support tabular clipboard copy/paste

The Row/Column Label Editor (see below) doesn't currently support a context menu operation on the single-column table. We will add a context menu with "Copy" and "Paste" operations which will copy and paste multiple-line data between the selected cells in the table and the system clipboard.

    

"Copy" will copy the text in only the selected cells.

"Paste" will effect only the selected cells.

These operations will be enabled only if at least one cell is selected and all of the selected cells are contiguous.


(4) Printing Plots: Add user-supplied Header and Footer.

Plots are currently printed with left and right header and footers, with this text:

See this example (PDF): http://cadswes2.colorado.edu/~philw/2014/BorTruckee/Ref/PlotPrint1.pdf

We could allow the user to provide alternate header and footer text (left and right). That would be saved with the Plot Page's configuration (in the RiverWare model file).

Technical: See static method: SlotPlot::printPlotHeader(). (This does the footer too).

--- (end) ---