ultimatepp/uppsrc/GridCtrl/changelog.txt
unodgs 542f82e1b3 GridCtrl and DropGrid fixes..
git-svn-id: svn://ultimatepp.org/upp/trunk@740 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2009-01-09 19:55:41 +00:00

285 lines
No EOL
12 KiB
Text

[+] - new feature
[-] - bugfix
[*] - change
0.95
> first public version
0.96
* abandomed header/body structure - back to one control layout
+ each column can have control binded that is visible in each row
+ resizeing of fixed columns/rows is now possible
+ Fixed, Min and Max finally works in proportional mode
+ Sortable() - determines if column can be sorted
+ auto highlighing for fixed columns in any theme
+ usc file, now gridctrl is visible in layout editor (Complex->GridCtrl)
+ rows, columns as well as individual cell can work in read-only mode
+ Tutorial started..
+ GetSelectedItemsCount() - returns number of selected items
- if there are no fixed rows moving row before firsrt row is now possible
- if immediate search is off searching is executing on enter
GetRow().Editable(0/1)
GetColumn().Editable(0/1)
GetCell().Editable(0/1)
- some corner cases fixed..
- many internal fixes, code clean up
after 612-dev2
* iml converted to the newer format
- if fixed rows == 0 nothing was displayed
- controls were not hidden if cell changed to fixed and part of ctrl interesced its cell rect
+ moved column/row use chameleon theme if active
- updated gcc compatibility
- blue line is properly painted at first/last col/row (before its witdth was 1 instead of 2)
+ content of grid can be scrolled left/right in row select mode
- fixed controls synchronization
after 612-dev3
* line resizing mode now works in linux
+ copy/paste
- set() crashed if row was greater than total rows count
* Block selection can be one only now
- RefreshRows refreshed wrong ctrl area
- selection was lost if shift/ctrl was realeased before mouse button
- fixed positioning cursor after deleting selected rows
- fixed deleting selected rows if rows are not in continous block
* Append and Insert refresh new rows
after 701-dev1
- fixed copy/paste in cell, shift mode
- fixed canecling new row
- fixed refreshing after appending/inserting/removing operations in proportional row mdoe
* in select_row mode first ctrl is always activated after first edits show
+ ExtraPaste() enables/disables paste as new rows, paste as appended rows menu
+ FixedPaste() disables adding rows during pasting
+ paste now calls WhenUpdateCell/WhenInsertRow/WhenUpdateRow callbacks
- fixed coping/paste of cursor line (which is not formaly selected)
+ pasting text clipboard
after 2007.1beta
* row/col coloring always starts from white color no matter how many fixed rows/cols are
+ usc: ColorRows, ColorCols options
+ usc: added missing new functionality (cliborad)
* Add(n, size) removed becouse of conflict with Add(Value v, ...). Added Add() - adds one row
after 2007.1beta2
- fixed calling WhenUpdateCell in Ctrls mode (regression)
- tab key in select_row mode went into editing mode instead of changing row or setting focus on visible ctrl (regression)
+ Value Get() - returns value of cursor cell
+ Point GetCursorPos() - returns full cursor position
+ Ctrl * GetCtrl(...) - return pointer to cell's control
+ Option() - makes given column the option column (AddColumn().Option() = AddColumn().Ctrls(MakeOption))
+ Value GetFixed(r, c) - returns value of fixed column c at row r
+ Value GetFixed(c) - returns value of fixed column c at first row
after 2007.1beta3
* Set() now always store value in cell data structure even if that cell has ctrl
* All Set(int c, ...) methods now use rowidx for selecting row instead of curpos.y
- Set did not set ctrl value if ctrl was created by Ctrls()
+ SetCtrlValue(..) - sets value of cell control
- In WhenUpdate/WhenInsert rowidx had wrong value (regression)
* control focusig code cleanup
- fixed 's' key problem (cursor went up after pressing it)
- there was unnecessary WhenUpdateRow/WhenInsertRow call after sorting and then changing row
after 2007.1rc1
- moving cols/rows - popuped cell was paint in wrong position if internal toolbar was on top or left side of grid
- highlighting of fixed cells was broken if there were no non-fixed rows/cols
- edits no longer appear in edit row mode if "factory" ctrl is clicked
- edits' values were not properly updated when row was change after clicking "factory" ctrl (regression)
- fixed crash after removing a row and then changing cursor position (regression)
- Clear() didn't update rowidx
- RefreshRow(n) use rowidx if n < 0 instead of curpos.y
ok seems to be ready for 2007.2
after 2007.1rc2
+ Sort/MultiSort methods
after 2007.1rc3
* WhenUpdateCell is always called no metter what edit mode is set
- Esc corectly restores values in row edit mode (regression)
- Sort(...) now updates cursor positon
- rectangular selections were possible only if multiselect mode was set
+ rectangular selections can be marked with keyboard (CTRL + arrows)
- fixed usc script (wrong initial states for accepting/removing/inserting)
- it's now impossible to change cursor position if value in active control is wrong
- Remove updates selected_rows/items values (before only DoRemove did that)
+ IsModified(..) - returns if value of cell was changed
after 2007.1rc5/final
+ introduced joined cells - JoinCells(), JointFixedCells()
- cursor is not hidden after clicking below rows (only edits are closed then) (regression)
+ AddRow returns ItemRect& now, but Add still returns GridCtrl&
+ clicking on edit's child control move focus
after 704-dev1
* Esc pass control to parent if there is nothing to cancel
- focused ctrl lost focus if its position was changed by cursor keys (regression)
- new column move indicator had 0 width if hidden column was pointed
- in some cases cursor was hidden after removing row
- scrollbars were not updated after reomoving selected rows
+ DrawFocus() - shows active cell even in select_row mode
- fixed column widths calculation bug related to min max restrictions
- after paste selection was not cleared
- rectangular selection caused crash in some cases if they were made with keyboard
- fixed crash if inserted row was canceled (removed) in insert callback
- enter accepted row with wrong values in controls
- if last cell had worng value in embeded control and tab was pressed focus of that control was lost
- WhenRemoveRow was called if new (not commited) row was canceled (eg. by pressing ESC)
- toolbar icons were not properly refreshed
+ CancelInsert() - should be called in WhenInsertRow to cancel inserting a new row
+ CancelUpdate() - should be called in WhenUpdateRow to restore original values of a row
+ CancelRemove() - should be called in WhenRemoveRow to cancel removing a current row
* Remove() without aguments remove current row
after 705-dev1
- cancel did not work as it should in edit row mode
- focus was not set to control which could not be accepted
- edit in right menu was disabled in some cases
+ CancelAll - in this mode esc restore all previous values in edit cell mode (it is default for edit row mode)
- fixed some problems with accepting and rejecting grid
after 705-dev3
- fixed issues with removing an edited row and calling WhenRemoveRow - now finally is should work fine
- edits where not resized if layout changed (regression)
- fixed text wrapping for single line
- aligning for header can now be set using HeaderAlign and variations
- fixed GetItem and inline attribute problem in GCC
- fixed updating cell's value after changing focus from ctrl to ctrl with invalid (not accepted) data
- fixed tab key and selecting control focus problem
after 707-dev1
* find's options open at fixed position instead of mouse click position
- find's edit use GetStdSize() to determine its height (to proper scale at dpi > 96)
* in select full row mode ctrl_up/down swaps rows position
+ inserting after and duplicating finally implemented
- fixed key bindings for inserting/appending
- added missing icons in popup menu
- fixed cursor entering
- fixed SetCursorId()
- fixed wrong value returned by SetCursor(n)
+ searching without toolbar
after 708-dev1
- toolbar is rebuilt when grid is enabled/disabled (Ctrl::Enable should be virtual!)
+ GetCurrentRow() - returns "current row" index - mostly cursor position, but sometimes cursor and current row position can be different
- more const correctness fixes
- if some rows were hidden it was still possible to navigate by those rows using cursor up/down (R)
- fixed crash in Append0(n) if n > 1 (R)
- fixed crash in Editable called for a row
+ EditConvert(Ctrl &ctrl) - synonym for sequence Edit().SetConvert()
after 708-dev2
+ CancelAccept() - called in callback When(Insert/Update) cancel inserting/updating operation but do not close edits
- fixed crash when dupliacing a row in empty grid
+ IsFilled() - opposite to IsEmpty()
after 709-dev2
+ IsRowInserted(), IsRowUpdated(), IsRowRemoved - valid in all life-cycle of grid
+ RemoveHides() - in this mode grid hide row instead of phisicly remove it
- fixed rare crash in PaintFixed()
+ searching is now able to highlight letters in multiline text
- fixed resize panel - min size was not set properly in some cases
- fixed rare scrolling artifacts
+ added FindInRow to find value in given row - returns column number
after 710-dev1
- in edit row mode null values in not null controls were not respected if grid was "prefilled" with null data
- fixed crash when adding column to filled grid
+ grid respects read-only mode now (only resizeing/moving/scrolling works in this mode)
- fixed bug in GridCtrl::ItemRect::SetFont - it doesn't work and may lead to crash
- fixed strage bug connected with focus and bulit-in toolbar
- added WhenChangeCol
- added GoTo(int r, int c)
- fixed SetCursor(Point). Point was not relative.
- fixed searching. If search_hide was disabled after matching 0 rows and then peressing esc or backspace grid displayed nothing
- fixed selection removing in remove hides mode (mostly crashes, for one row it worked ok).
- fixed row inserting (after). Previous cursor position didn't disapear (regression)
+ SetImage() works for row now
after 711-dev1
- fixed Remove0 - it didn't clear cursor position if cnt > 1
- fixed Searching - now the searching flag is respected in immediate searching
+ AddSeparator(Color c) - inserts 3 pixel height separator
* IsEnd restores rowidx now - it's now more safe to use FOREACH* macros
- fixed elipsses in multiline texts
- fixed Searching() one more time
- some fixes to sorting
+ added Skip to ItemRect. If true the given row/col is skipped during Find()
+ fixed some regressions with painting header
+ added WhenCursor callback and CancelCursor() to cancel changing cursor position from body
of this callback.
after 711-dev2
do not remember :)
after 712-dev1
* made find string control vista compatabile, removed unecessary members
- fixed coping/paste and WhenInsertRow/WhenUpdateRow issues (wrong rowidx, one callback call
for multiple rows)
+ added German translation
* WhenEditRow removed - added WhenStartEdit
* WhenAcceptRow is always called now - no metter if any cell in row changed its value or not,
WhenAcceptedRow is called only if there was chanage in a row
after 2008.1beta
- commented out DragAndDrop. It caused crashes
* IsNewRowOrder() renamed to IsOrderChanged()
+ IsDataChanged() - returns true if data in grid were edited
+ Crlc-C creates now 2 clipboards - one internal and one textual
+ AskRemove() - if set question is shown before deleting a row
+ editing of row was possible (through double click) even if editing flag was not set
- Clear refreshes toolbar now
+ added Get*Align() to ItemRect
after 2008.1beta2
- hiding/showing columns works again in proportional mode (R)
- align value from AttrText was inproperly passed to cell style
+ added Header(bool) - to turn on/off the header
- some fixes to Ready()
+ added RowChanging(bool) - false -> changing row is not possible
+ added GetSortOrderId and GetSortOrder
- fixed Clear(false) and highlighting -> now it dosn't clear hcol
+ added Copy and CopyAll
after 2008.1rc1/rc2
* first click with ctrl selects previous row too now
+ added WhenSort callback which is called every time sort action takes place
+ MarkSort()
+ Resort();
after 2008.1final
+ summary row
- toolbar wasn't rebuilded after right mouse click on row
- to WhenEndEdit() was passed new cursor position instead of old
- small refactoring