TVA (#39) Improve the width of the SCT columns when using multiple sheets. Bug Number: n/a Release notes (y/n): Yes For Release Nums: 7.1 The introduction of "SCT Sheets" in RiverWare 7.0 had some undesirable behaviors with respect to Slot and DateTime column width stability and persistence, e.g. when switching from one SCT sheet to another. Note that the various sheets in an SCT differ in only the set of series slots presented in the SCT "Series" tab, but all have the same timestep configuration (time range and timestep size). In the horizontal time axis orientation, columns are timesteps; in the vertical time axis orientation, columns are series slots. This work included the following enhancements: (1) Time column widths applied to horizontal-time SCT views are now preserved ON A PER SHEET BASIS within the RiverWare session. These widths, however, are not preserved in the SCT configuration file. The first time a horizontal- time SCT view is presented, the time columns are adjusted to the column content (and this applies on a per-sheet bases -- see the next item). (2) The following column width adjustment operations (accessible as both menu items and toolbar buttons), now operate on only the slot columns in the current SCT Sheet. This is relevant for both axis orientations, i.e. on both series slot columns and DateTime columns. (a) Resize Columns: Set All to Selected Column Width (b) Grow Columns: Fit Data (c) Resize Columns: Fit Data (d) Resize Columns: Fit All (header and cell data width). TECHINCAL This time column width session persistence makes use of these two new maps in the SctConfig class: // Sheet-Specific Applied Time Column Widths mutable QMap _noAggTimeDataSheetColWidthSeriesMap; mutable QMap _aggTimeDataSheetColWidthSeriesMap; ... these QMaps are indexed by the Sheet Label text. Associated with each sheet is a dynamically allocated IntSeries -- that is, a Series instance. There is one of these maps for each of the two horizontal time SctViews: Aggregated and Non-Aggregated. The timestep size and time range of these series is set by this method: void SctModelData::resyncSctConfigTimeColWidthSeries (bool agg); Access to these IntSeries is done via these methods: void SctTableModel_THorzStd::recordColWidth (int col, int newWidth); void SctTableModel_THorzAgg::recordColWidth (int col, int newWidth); int SctTableModel_THorzStd::recordedColWidth (int col) const; int SctTableModel_THorzAgg::recordedColWidth (int col) const; An initial iteration of the time column development work addressed the following undesirable behavior: switching to a different SCT Sheet was unnecessarily resetting the time column widths to the default width. This was caused by the fix to Gnats 5877 ("SCT display issues when removing a slot", Jan 2017) which was reported with RW 7.0.1 (after the upgrade from Qt 4.8.5 to Qt 5.5.1). The part of that fix which caused this problem was unnecessary for vertical time SCTs. See the change in method: SctView:: updateSerSlotTabSlotVis().