Releases: trevordevore/levurehelper-dataview
0.7.3
0.7.2
- Update instructions for adding the DataView to a non-Levure framework LiveCode application.
- Update assets loader script.
0.7.1
- The auto loader was removing the "DataView Behavior" from memory rather than itself.
0.7.0
- Add script for loading the DataView in non-Levure apps.
- Don't account for scrollbar width on mobile.
- Throw an error if data specifies a style which has no template.
- Fix issues with restoring the
selectedChunk
while scrolling.
0.6.0
-
Added Drag Reordering API.
-
showBorder
is no longer turned off when initializing the DataView. The developer should be allowed to show the border if they choose, even if it disables acceleratedRendering features. Adding borders is very cumbersome otherwise. -
Ensure initialization and mobile scroller
Due to
lockMessages
there is no guarantee thatnewGroup
orpreOpenControl
will be called. Initialization is now triggered inpreOpenControl
,openControl
,_renderView
andResetView
. This covers all potential entry points.In addition, the mobile scroller is not created in the initialization handler so that it will be created under all circumstances.
-
If the DataView can’t scroll then pass
rawKeyDown
.A DataView cannot scroll if the formatted height does not exceed the content height. Pass rawKeyDown so that it can be processed further down in the message path.
-
Update rect model each time DataView is rendered
The rect of the DataView can change without the
resizeControl
being notified (e.g. setting thetopleft
of the group). Update the model so that the rect is always up to date when rendering. -
Reset hilite state when rendering rows
If the hilite state is reset then the
dvHilite
message will not be sent if one of the rows being rendered is hilited. -
Add
MarkAllControlsAsDirty
which invalidates all controls in the cache. -
Define row control properties in the DataView behavior. Row properties such as
dvRowControl
should not return a value for a control outside of the DataView. -
Use control id rather than long id for current mouse control.
-
Change
Show/HideRowControl
toShow/HideControl
. In the future a template may not always be for an entire row. Naming convention is same asMouseEnter/MouseLeaveControl
. -
Rename
CleanupAfterRowControl
toCleanupAfterControl
. -
When deleting a control in time hide right away.
-
Dispatch
selectionChanged
when changing the selection after creating a field. The front script is now inserted before changing the selection as the developer could technically perform an action that should be logged by the frontscript. -
Use
effective styledText
to look for changes in a field.There are keys such as
spaceAbove
that can appear in thestyledText
keys that don’t actually change the appearance of the text but can trigger a false positive. Using theeffective styledText
ensures that all keys are always present so the diff is only being done on values that have actually changed. -
Resize UI when setting
scrollbar width
. -
Setting
content right padding
now resizes the UI. -
Maintain field editor in proper row when rendering view and controls aren’t cached.
Calling
RefreshViewRows
while a field editor is open and thecache
setting isnone
could cause the field editor to appear in a different row as row controls were reassigned. This commit reassociates the field editor with the correct row when moving things around.As part of this fix the sViewPropsA["fld_editor"]["control"] variable was changed to use the short id as that will not change as the field is relayered within the DataView.
-
Account for mouse wheels with no precision scrolling deltas on macOS.
-
Only load mac_scroll_wheel.lcb on macOS.
0.5.0
- Performance optimizations.
- Use
control of id
references - Only update backgroundColor if it is changing
- Only set the dvHilite custom property if it is changing
- Fix control existence check
- Early exit from vscroll if vscroll isn't changing
- Use
- Improvements to work with acceleratedRendering in LiveCode 9.5.
touch
messages are now passed.- Take borderwidth of group into account when calculating row formattedheight.
- Add
content left padding
andcontent right padding
properties. - Verify that controls need to be redrawn when showing/hiding scrollbars.
- Fix the default drop indicator.
- Add
PreDragImageSnapshot
andPostDragImageSnapshot
in order to customize a row control prior to exporting a snapshot to be used for thedragImage
. - Add DeleteRowControlFromCache to clear cache for row without redrawing view.
- Add option to not refresh view when deleting rows.
- Add DeleteIds to array controller.
- Do not call ResetView when setting the dvData in the array controller.
- Use scroll wheel values from NS Event for scrolling on macOS.
- Added
MouseEnterControl
,MouseLeaveControl
,MouseEnterDataView
, andMouseLeaveDataView
messages. - Initialize topleft of new controls to topleft of dvList.
- Add the
viewProp["top padding template"]
property which allows you to specify a group that will be inserted at the top of the DataView. The scrolling section of the DataView will be positioned below the group. - Check whether or not control must be cached AFTER potential cleanup.
- Add setter for row data to array controller.
0.2.6
- Added a
dvRowIsDirty
property of a row control. Set to redraw the row the next time the DataView is asked to render that row. - No need to call
RenderView
when setting thedvData
property (array controller). - If "style" of a row is changing then get new control to match that style.
- Delete controls in time so that deleting control from within event handler sent to that control doesn't trigger an error.
- Replace incorrect instances of
uTemplateStyle
withdvTemplateStyle
.
0.2.5
- Reset and Render the DataView when setting the
dvData
property.
0.2.4
- Added an IDE library with commands for creating new DataViews. See
dvIdeCreateDataViewControlUsingDialog
anddvIdeCreateDataViewControl
in the README.
Video demonstration of creating a DataView:
0.2.3
- Add
name
so it can be listed as a dependency to other helpers.