Qt Slot Dialog Development Status - October 28, 2005 - Phil
Document status: initial analysis done.
General GUI Features
- 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.
- 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.
- 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
- Not done: Applying changes from the Slot
Configuration dialog boxes to Slots.
- Not done: Applying changes from the Time
Series Range dialog boxes to Slots.
Slot Event Handling
- 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
- 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].
- 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
- Values copied FROM flag-less Slots should be interpreted
as "Input" (pastable with the default paste operation).
- 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").
- 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".
- Note: Copy and Paste will not copy any special flag values
(other than assigning "Output" to NaNs and "Input" to defined
values).
- 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.
- Note: Copy selections (and selections for other block operations)
are defined only for pure rectangular selections of cells (which
can be a single cell).
- 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].
- 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].
- 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
- [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?
- 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.
---