Qt Slot Dialog Development Status - October 28, 2005 - Phil
Document status: initial analysis done.

General GUI Features

  1. Not done: Automated width adjustments to minimize dialog box real estate. This involves coordination of the QTable (including changes to columns in the QTable's horizontal QHeader) and the overall QMainWindow.
  2. Make Date-Times format consistent. The Date_Time Spinner uses a rather long format, which isn't ideal for the Timestep Date_Time column. If the Date_Time spinner doesn't support a desirable format, the problem isn't trivial, because this isn't just a matter of display format -- the user needs to be able to ENTER a date and time.
  3. SeriesSlot (simple) Dialog should have only single-line column labels -- for units. That is, no blank vertical space should be taken up for a Column label.

Slot Configuration ... see View Menu

  1. Not done: Applying changes from the Slot Configuration dialog boxes to Slots.
  2. Not done: Applying changes from the Time Series Range dialog boxes to Slots.

Slot Event Handling

  1. Not done: MultiSlot column-count changes (i.e. by adding or removing links). This should result in the change in the number of columns shown in the MultiSlot Dialog.

Flag operations ... see also Timestep Menu

  1. Not done: Setting Best Efficiency, Max Capacity, and Target flags are not yet constrained to the appropriate Slots. [Use virtual method: Slot::isFlagAllowed(), which is implemented meaningfully only in SeriesSlot].
  2. To do: When setting a Target Flag to a range of selected timesteps (on the appropriate Slots), the Target Flags should be set so as to define a single valid Target operation -- i.e. instead of simply assigning the Target (-end) flag to all of the timesteps in the selected range.

Copy / Paste changes and additions

  1. Values copied FROM flag-less Slots should be interpreted as "Input" (pastable with the default paste operation).
  2. Values pasted TO flag-less Slots should be pasted regardless of the flag on the source values (i.e. as if the source flags were "Input").
  3. Add a "Paste as Input ..." operation for flagged destination values, which assigns real values, as "Inputs", regardless of whether or not the source values had "Input semantics".
  4. Note: Copy and Paste will not copy any special flag values (other than assigning "Output" to NaNs and "Input" to defined values).
  5. Note: Copy and Paste operates strictly with numeric values in Display Units, and does not limit the pasting to a different unit type, nor does it do a unit conversion to target Slots of the same unit type, but different unit. This is quite different from SCT cell copying and pasting.
  6. Note: Copy selections (and selections for other block operations) are defined only for pure rectangular selections of cells (which can be a single cell).
  7. To do: Disable the "Copy" operation (and other cell-block operations) when the selection is not a pure rectangle. [The method to test this condition is currently working. All that needs to be done is actually enable or disable the block operations based on this condition when the selection changes].
  8. To do: When a multiple-cell block selection is Copied, the Paste operation should be enabled only when the new selected cell set is either (a) one cell, or (b) a rectangular block with the same number of actual data rows and columns as the original copied selection. [I need to: (a) develop a test to check the congruence of the new selection, and (b) enable the operations based on this test]. [Note: currently, the paste operation refers to the "current cell" as the top-left of the target region, regardless of whether or not other cells are selected -- which is very confusing if there are any such other selected cells].
  9. To do: One-to-Many copying. When a single cell selection is Copied, the value of that cell can be pasted into any selection of cells. [This is an elaboration of the "congruence" test].

File Menu

Confirmed Working: SeriesSlot AggSeriesSlot MultiSlot TableSeriesSlot TableSlot General
Import (Resize) 10-26 10-26 10-26 10-26 10-26 File selector dialog caption reads "Save As", which is wrong ...
Import (Fixed Size) 10-26 10-26 10-26 10-26 10-26
Export (Display Precision) 10-26 10-26 10-26 10-26 10-26 ... and these Captions should be more precise, if possible. (e.g. include Slot name).
Export (Model Precision) 10-26 10-26 10-26 10-26 10-26
Plot 10-26 Always Plots the first column of data. See Note-1 10-26  
Close Window 10-26 10-26 10-26 10-26 10-26  

Note-1 [TableSeriesSlot Plotting] ... both the old Galaxy, and the new Qt TableSeriesSlot dialog boxes plot the Slot as if it were a TableSlot, plotting one column as a function of the other (with user selection of which columns to use) OR as a set of 3D contours, which is strange to apply to a TableSeriesSlot since one column is used for a limited set of 'Z' values. Probably, TableSeriesSlots should be treated like AggSeriesSlots -- with the individual selected columns plotted as TimeSeries.

Edit Menu

Confirmed Working: SeriesSlot AggSeriesSlot MultiSlot TableSeriesSlot TableSlot General
Cut (Row) TODO   See Note-3      
Copy (Row or Cell) See Note-2  
Paste (Row or Cell) See Note-2  
Insert Copied TODO TODO TODO
See Note-3
TODO TODO  
Insert New 10-26 10-26 See Note-3 10-26 10-26  
Append New 10-26 10-26 See Note-3 10-26 10-26  
Delete (Row) 10-26 10-26 See Note-3  CORE DUMP  
Delete (Rows) Below TODO See Note-4 See Note-3  TODO See Note-4  
Clear Outputs 10-26 10-26 10-26 disable  
Fill Values Below 10-26 10-26 10-26 10-26 10-26  
Replace NaNs Below 10-26 10-26 10-26 10-26 10-26  
Set Number of Blocks   TODO
See Note-5
  TODO
See Note-5
 
Append Block   10-27   10-27    
Delete Block   10-27   10-27    
Delete Last Block   CORE DUMP   10-27    
Set Dimensions         10-27  
Max Synch   TODO        
Sync to Column 0   TODO        
Copy Column   TODO
See Note-5
       

Note-2 [Copy and Paste] - Basic multiple-cell coping and pasting -- with rectangular cell region selections -- is working for all five Slot types. But there are some changes and enhancements planned, including different Flag state interpretation and addition of a ONE-to-MANY (cell) paste function. Read more.

Note-3 [Insert operations on MultiSlots] All such operations are to be enabled only when the MultiSlot has a single subslot.

Note-4 [Delete Below] ... is implementing the just the Delete Row operation -- so this to TODO.

Note-5 [Set Number of Blocks] ... requires a simple popup dialog to enter the desired number of blocks.

Note-6 [Copy Column] ... requires a simple popup dialog to enter column indices for "Copy From Column" and "To Column". But maybe we'll just support this with the block copy using whole column selection.

View Menu

Confirmed Working: SeriesSlot AggSeriesSlot MultiSlot TableSeriesSlot TableSlot General
Configuration See Note-7  
Time Series Range ... See Note-7  
Column Labels   TODO     TODO  
Row Labels         TODO  
Links to Slot ... 10-28 10-28 10-28 10-28 10-28  

Note-7 [Configuration and Time Series Range] ... supporting dialog boxes are probably complete. Still to do: apply selected changes to the actual Slot.

TimeStep Menu ... see also Flag Operations

Confirmed Working:
(basic functionality)
SeriesSlot AggSeriesSlot MultiSlot TableSeriesSlot
/ TableSlot
General
Set to Input 10-28*

 

not
applicable

See Note-8
(bug)
Set All to Input 10-28*
Set to Output 10-28*
Set All to Output 10-28*
Reverse Input/Output 10-28* See Note-9
(bug)
Reverse Input/Output All 10-28    
Target Begin 10-28* See Note-10
Target 10-28*
Also: see 2nd note under Flag Ops
(TODO)
  
Best Efficiency 10-28*
Best Capacity 10-28*
Drift 10-28*

Note-8 [Set I/O Flags] ... Bug: Once a NaN is encountered within the cell selection, subsequent timesteps are not effected.

Note-9 [Reverse Input/Output] ... This malfunctions for cells that are selected more than once, an even number of times. See bug 2, below.

Note-10 [Flag Operations] ... Individual flag operations need to be disabled if they are not applicable to the Slot. . [Use virtual method: Slot::isFlagAllowed(), which is implemented meaningfully only in SeriesSlot].

Bugs

  1. [FIXED 10-28-2005, added Sim/AggSeriesSlot::spanDates]
    Problem
    in Cell Timestep interpretation in a multiple cell value assignment operation in an AggSeries slot. To repeat: Configure the last of three AggSeries columns to begin several (e.g. 8) timesteps before the other two columns. (Currently, that timestep configuration must be performed from the old Time Series Range configuration dialog box available from the old Galaxy AggSeries Slot dialog -- the new one doesn't yet effect the Slot time range). Then select a row within that time range, type a valid number, and hit enter. The timesteps above that row in the third column are lost -- all three columns start at the timestep where data was entered. What's up with that?
  2. The set of SlotQDlgSelections computed from the QTable selection parts sometimes redundantly includes certain cells (Slot / Timesteps or Slot Row / Columns). When this happens, any value-toggle sort of operations will have no effect on cells represented within the selection an even number of times. We need to insure that the computed set of SlotQDlgSelections represents every selected cell exactly once.

---