Phil Weinstein / Accomplishments -- October 2015 -- Original 10-03-2015, Revised 12-07-2015.

General Development Accomplishments

--------------------------------------------
[I.A] New/Enhanced Software / Estimates
   TVA / RTI Plotting Requirements
--------------------------------------------

A development analysis and estimates were devised for the following Plotting features:

See this document:

--------------------------------------------
[I.A] New/Enhanced Software / Truckee/USBR Slot Usability
   Slot Dialog Display Preferences
--------------------------------------------

The following features were developed for RiverWare 6.8:

  1. Distinct appearance for bolded and non-bolded headers in model reports. Header text was implicitly being bolded as a result of use of HTML "H" tags, even if a non-bolded font style had been specified. This problem was documented and fixed as Bug 5681.
  2. Added a "Level 5" font configuration, for sections nested to, and beyond, that level.
  3. Added ability to show and hide the Table of Contents section using a triangle-arrow icon "tree" control button.

--------------------------------------------
[I.A] New/Enhanced Software
   Truckee/USBR Model Report Tasks
--------------------------------------------

Prior to this enhancement, the following three features had been initially off each time a slot dialog was shown:

  1. Selection Statistics
  2. Series "Notes" Column
  3. Description Panel

A new global configuration was introduced to indicate the desired visibility of these features when a slot dialog is shown. Settings for the latter two features (series notes and description) have options to initially show those features only if the slot has data for those features.

This new feature is described in this document:

Maintenance Accomplishments / October 2015

--------------------------------------------
[II] RiverWare Software Maintenance / FY 2015 Report Draft
--------------------------------------------

The monthly CADSWES Software Maintenance reports were compiled into an annual report for the fiscal year ending last month (September 2015). This includes information about work that went into producing releases, maintaining our development environment and testing tools, supporting installation and licensing, and fixing reported bugs.

This draft report is available here:

--------------------------------------------
[II] RiverWare Software Maintenance / Software Updates / Bug Fixes
--------------------------------------------

The following bugs were fixed:

--------------------------------------------
[II] RiverWare Software Maintenance / Software Updates / Qwt Plotting Library
--------------------------------------------

Qwt is the open source C++/Qt library used in RiverWare to implement plot dialogs. After an analysis was done for upgrading that library from Qwt 5.2.3 to Qwt 6.1.2 in the prior month, that RiverWare port was accomplished in October 2015. Several aspects of the newer Qwt version had significant architectural differences, notably a completely revised legend API which accommodates the possibility of a custom implementation. No notable functional or graphical enhancements were introduced with this upgrade, but it positions us better for the development of future plotting enhancements. This was also a prerequisite for the Qt 4 to Qt 5 port of RiverWare which was started this month -- see below.

Major porting tasks completed in October include:

  1. Building Qwt 6.1.2 from source code, and deploying it within our Windows development build system, including modifications of our win-config.pl tool. Both 32-bit and 64-bit Windows MSVC builds were required.
  2. Modifying RiverWare build source files, EngrObjs/riverware.pro and Makefiles/riverwarebase.pro.
  3. Creation of temporary stub classes for eliminated Qwt classes, primarily QwtPlotPrintFilter and QwtScaleTransformation.
  4. Various data type changes, including:
    1. Basic global data type substitutions. The new Qwt version relies more on basic Qt data types.
    2. QwtScaleDiv is now passed by value instead of by pointer.
    3. QwtSymbol is now passed by pointers to dynamically allocated instances.
  5. Modifications of printing and plot image export using QwtPlotRenderer.
  6. Modifications for changes to the QwtScaleTransformation class hierarchy. This is used only for our custom "probability scale" which is applied only to percentage series values.
  7. Extensive recoding of plot legends, many aspects, including special handling for Markers conditionally shown in the legend. The new Qwt library has a more extensible architecture for custom legend implementations.
  8. Adaptation of our custom code to support series having NaN values. NaNs are handled as gaps in the drawn slot curve.
  9. Recoding of special mouse operations in the plot canvas: rubber-band zoom and re-centering.

Although, as mentioned above, while no feature improvements were introduced due to this Qwt upgrade, we did enable "anti-aliasing" (smoothing) in RiverWare 6.8 for the drawing of slot curves within plots.

Additionally, an analysis was done on other simple ways of improving the appearance of plots. Some experimentation was done, using the new Qwt library, to eliminate the gap between the plot and its axes.

--------------------------------------------
[II] RiverWare Software Maintenance / Software Updates / RiverWare Qt4 to Qt5 Port
--------------------------------------------

RiverWare 6.7 and recent prior RiverWare versions use Qt 4.8.5. In October we devised changes to the RiverWare code base to compile RiverWare source code with Qt 5. A provisional Qt 5 build we created in June (Qt 5.4.2) was used. Changes were applied in such a way that this code base could still be compiled with Qt 4.8. This initial step does not result in a working executable -- that is being done in November (using Qt 5.5.1).

--- (end) ---