Fix: Open Slot dlg vertical scroll, cell select stability display-change ops [5587] Bug Number: 5587 Release notes (y/n): yes For Release Nums: 6.7 Gnats 5587: Open Slot dialog: undesirable rescroll to selected cells after display change operations In the Open Slot dialog, several operations which change the appearance of the series data table in some way also caused that table to be scrolled to the currently selected cells. This was undesirable. The series data table's scroll position -- and also the current cell selection -- should effectively remain stable during these operations. This applies to the following operations in the Open Series Slot dialog and the Edit Account dialog. (These dialogs are implemented with the same C++ GUI classes). (A) Menu Operations: (1) View >> Show Priorities (checkbox) (2) View >> Show Notes Column (checkbox) (B) GUI controls below series data table: (3) [Multislots]: Show Subslots (checkbox) (4) [Edit Account dialog]: Show .. All slots, Only slots with .. (combobox) FIX DESCRIPTION: Added the following three "stable" wrapper methods for three SlotDataTableModel (Model) table geometry methods, at the SlotDataTableView (View) level. These are called from the high-level GUI control handlers (in SlotQtDlg) for the relevant operations: void stableRecomputeCellLayout (bool rowsToo); void stableRefreshShowHideSlotItems(); void stableCheckColLayout(); Among other things, these wrapper methods (above) save the vertical scroll position of the SlotDataTableView, and restore it after calling the wrapped SlotDataTableModel method. The following SlotDataTableModel methods have a new "stableRequired" parameter which has effects also listed below: void refreshShowHideSlotItems (bool stableRequired=false); void refreshShowHideTstepItems (bool stableRequired=false); void recomputeCellLayout (uint changeSN, bool rowsToo, bool stableRequired=false); void checkColLayout (unsigned int changeSN, bool stableRequired=false); void refreshDisplayCompression (bool stableRequired=false); // expensive .. Effects of the new 'stableRequired' parameter include: (1) Refreshing of "Series Display Compression" is performed right away, instead of being deferred ("scheduled") with a QTimer. (2) Setting of the current cell, and heuristic scrolling to a particular row are skipped. (3) In some cases, the saved logical cell selections are reapplied to the table view right away. ---