Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Apr 2020 17:13:12 +0200] rev 2927
SVGHMI: HMI:DropDown now catches all clicks when open
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Apr 2020 12:07:08 +0200] rev 2926
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Apr 2020 10:56:45 +0200] rev 2925
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 13 Apr 2020 18:28:22 +0200] rev 2924
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 12 Apr 2020 21:43:42 +0200] rev 2923
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant [Thu, 09 Apr 2020 09:52:34 +0200] rev 2922
SVGHMI: intermediate commit while working on dropdown widget.
Here is the plan :
HMI:DropDown : svg:g of svg:rect + svg:text
rect is extended to match content size, and if content size exceed page size, user can scroll
HMI:List : either HMI:List:ListName as svg:text, one tspan per list entry
or HMI:List:ListName:Foreach:HMI_CLASS:SUB/PATH/TO/VALUE@/ROOT/PATH as empty svg:g
Edouard Tisserant [Tue, 07 Apr 2020 10:01:23 +0200] rev 2921
SVGHMI: HMI is not speculating on PLC variable update anymore when sending new variable value.
HMI variable cache in JS was changed in advance for more responsive behaviour when updating a HMI tree variable. This was leading to display value different from hmi tree variable in case the expected update did not happen because PLC program did revert it.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 04 Apr 2020 22:32:54 +0200] rev 2920
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 04 Apr 2020 17:47:16 +0200] rev 2919
SVGHMI: fixed keypad JS regarding shift/capslock and other details
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 04 Apr 2020 09:41:32 +0200] rev 2918
Fix unmatched "Courier" font for monospace fonts on latest ubuntu 20.04. Selected "FreeMono" instead, present since at least 18.04
Edouard Tisserant [Fri, 03 Apr 2020 14:37:41 +0200] rev 2917
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant [Fri, 03 Apr 2020 09:52:57 +0200] rev 2916
SVGHMI: fix keyboard not showing
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 03 Apr 2020 08:30:00 +0200] rev 2915
SVGHMI: Added keypads to svghmi test's SVG file
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 03 Apr 2020 08:13:47 +0200] rev 2914
merge
Edouard Tisserant [Thu, 02 Apr 2020 15:18:15 +0200] rev 2913
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant [Thu, 02 Apr 2020 14:04:21 +0200] rev 2912
SVGHMI: removed debug code
Edouard Tisserant [Thu, 02 Apr 2020 14:03:38 +0200] rev 2911
SVGHMI: More infrastructure for editing values with a keypad.
Edouard Tisserant [Thu, 02 Apr 2020 09:38:53 +0200] rev 2910
SVGHMI: Widget input buttons should be clickable through svg:use (onclick attribute instead of addEventListener)
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 01 Apr 2020 18:10:45 +0200] rev 2909
SVGHMI: moved dead code to where it belongs
Edouard Tisserant [Wed, 01 Apr 2020 14:42:50 +0200] rev 2908
SVGHMI: empty widget_keypad.ysl2, WIP
Edouard Tisserant [Tue, 31 Mar 2020 13:20:15 +0200] rev 2907
SVGHMI: HMI:Switch now accepts boolean values 'true' and 'false'
Edouard Tisserant [Mon, 30 Mar 2020 14:26:42 +0200] rev 2906
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant [Mon, 30 Mar 2020 11:06:12 +0200] rev 2905
SVGHMI: prevent man-made memory leak by limiting back button history items count to 42
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 29 Mar 2020 16:11:21 +0200] rev 2904
SVGHMI: collect debug data through xslt reflectivity instead of yml2/python trick
Edouard Tisserant [Fri, 27 Mar 2020 14:25:24 +0100] rev 2903
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant [Thu, 26 Mar 2020 14:21:52 +0100] rev 2902
SVGHMI: added Back widget.
Edouard Tisserant [Thu, 26 Mar 2020 13:33:20 +0100] rev 2901
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant [Thu, 26 Mar 2020 11:17:34 +0100] rev 2900
SVGHMI: Check that explicit relative page jump path is consistant with destination page reference path.
Edouard Tisserant [Wed, 25 Mar 2020 14:09:15 +0100] rev 2899
SVGHMI: ForEach Widget now has a better wrap-around when scrolling : hit the boundary systematically before wrapping
Edouard Tisserant [Wed, 25 Mar 2020 13:56:04 +0100] rev 2898
SVGHMI: Alow relative relative Jump. (i.e, relative jump from a foreach widget)
Edouard Tisserant [Wed, 25 Mar 2020 13:36:04 +0100] rev 2897
SVGHMI: Generalize applying cache to widgets, be it from page or ForEach widgets. Now ForEach widget buttons work as expected.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 24 Mar 2020 23:07:54 +0100] rev 2896
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant [Tue, 24 Mar 2020 14:03:19 +0100] rev 2895
SVGHMI: ForEach now has working (un)subscribe. Fixed PageSwitch that wasn't behaving when jumping to current page with another path.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 23 Mar 2020 21:44:28 +0100] rev 2894
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant [Mon, 23 Mar 2020 15:13:36 +0100] rev 2893
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 23 Mar 2020 10:16:38 +0100] rev 2892
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 20 Mar 2020 10:46:15 +0100] rev 2891
SVGHMI: add widget_foreach.ysl2
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 20 Mar 2020 10:00:59 +0100] rev 2890
SVGHMI: make root HMI tree node a HMI_NODE, droped HMI_ROOT node type
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 19 Mar 2020 19:23:56 +0100] rev 2889
SVGHMI: reworked widget (un)subscription now a method of widgect object, allowing special subscription methods
Edouard Tisserant [Thu, 19 Mar 2020 11:32:20 +0100] rev 2888
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant [Thu, 19 Mar 2020 09:57:26 +0100] rev 2887
SVGHMI: cosmetic changes
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 19 Mar 2020 09:31:07 +0100] rev 2886
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
All labels are parsed into a global variable containing resulting widget
description as a node-set. func:widget(id) was added for random access to
widget description.
Edouard Tisserant [Wed, 18 Mar 2020 12:06:50 +0100] rev 2885
SVGHMI: intermediate untested state. Excluded ForEach widget from pages handled widgets.
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 18 Mar 2020 09:37:26 +0100] rev 2884
SVGHMI: update Makefile to pick all changes to any dependency
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 18 Mar 2020 09:16:14 +0100] rev 2883
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant [Tue, 17 Mar 2020 14:11:54 +0100] rev 2882
SVGHMI: moving comments
Edouard Tisserant [Tue, 17 Mar 2020 14:01:37 +0100] rev 2881
SVGHMI: added widget_common.ysl2
Edouard Tisserant [Tue, 17 Mar 2020 13:43:19 +0100] rev 2880
SVGHMI: More readable debug output gen code
Edouard Tisserant [Tue, 17 Mar 2020 13:34:07 +0100] rev 2879
SVGHMI: Cosmetic changes
Edouard Tisserant [Tue, 17 Mar 2020 13:16:01 +0100] rev 2878
SVGHMI: added inline_svg.ysl2
Edouard Tisserant [Tue, 17 Mar 2020 11:24:07 +0100] rev 2877
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant [Tue, 17 Mar 2020 10:34:26 +0100] rev 2876
SVGHMI: moved debug code
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 17 Mar 2020 09:29:04 +0100] rev 2875
SVGHMI: created detachable_elements.ysl2
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 17 Mar 2020 08:00:33 +0100] rev 2874
SVGHMI: more debug code moved to hmi_tree.ysl2
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 17 Mar 2020 07:39:50 +0100] rev 2873
SVGHMI : create hmi_tree.ysl2, rename bbox_intersect.ysl2 into geometry.ysl2 and move more code into. Add per included ysl2 file debug output.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 16 Mar 2020 18:27:49 +0100] rev 2872
SVGHMI: created bbox_intersect.ysl2
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 16 Mar 2020 17:09:23 +0100] rev 2871
SVGHMI: Re-enable dispatch to arrays of functions in case of multiple suscription per widget. Still unused, but disabled for reasons not any more true.
Edouard Tisserant [Fri, 13 Mar 2020 21:42:40 +0100] rev 2870
SVGHMI: relative pages and page jumps
Edouard Tisserant [Fri, 13 Mar 2020 10:36:13 +0100] rev 2869
SVGHMI: take care of path given in HMI:Page and HMI:Jump, but do not apply subscription offset for now. Intermediate commit in a "working" state.
Edouard Tisserant [Thu, 12 Mar 2020 13:16:18 +0100] rev 2868
SVGHMI: significant whitespace changes
Edouard Tisserant [Thu, 12 Mar 2020 13:15:54 +0100] rev 2867
SVGHMI: unsignificant changes or changes in generated code
Edouard Tisserant [Thu, 12 Mar 2020 13:14:38 +0100] rev 2866
SVGHMI: Stop ignoring HMI_NODE in HMI tree, and count it as a BOOL. Soon we use those nodes as reference for relative page jump, and as an "enable" bit for features associated to an HMI tree fragment.
Edouard Tisserant [Thu, 12 Mar 2020 09:33:20 +0100] rev 2865
SVGHMI: cosmetic code moving
Edouard Tisserant [Tue, 10 Mar 2020 13:57:29 +0100] rev 2864
SVGHMI: split page switch into switching subscription and switching elements in the DOM, to ensure that subscriptions have been send before changing DOM, and avoid some flicker.
Edouard Tisserant [Mon, 09 Mar 2020 13:43:34 +0100] rev 2863
SVGHMI: fix wrong updates of HMI variables on each change, especially when not subscribed.
Edouard Tisserant [Mon, 09 Mar 2020 13:40:45 +0100] rev 2862
SVGHMI: whitespaces
Edouard Tisserant [Fri, 06 Mar 2020 14:43:03 +0100] rev 2861
SVGHMI: fixed repeated error when Input widget is missing 'value' element
Edouard Tisserant [Fri, 06 Mar 2020 14:42:08 +0100] rev 2860
SVGHMI: more decoupling in between UI related and the rest of JS code, still in the aim of enhancing robustness under heavy load.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 06 Mar 2020 09:35:08 +0100] rev 2859
SVGHMI: use requestAnimationFrame to delegate rendering of updates from network. Should help prevent browser collapse leading to watchdog in case of overload.
Edouard Tisserant [Thu, 05 Mar 2020 13:54:29 +0100] rev 2858
SVGHMI: Fix disapearing elements in case of nested detachable elements.
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 05 Mar 2020 10:23:03 +0100] rev 2857
SVGHMI: Meter widget accepts 2 arguments : min and max, taken in account when min or max text element is missing
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 04 Mar 2020 20:02:15 +0100] rev 2856
SVGHMI: More precise error message on missing HMI path. Meter widget now defaults 0-100 range when min and max elements arent's present, without error.
Edouard Tisserant [Wed, 04 Mar 2020 16:46:35 +0100] rev 2855
SVGHMI: more whitespace fixes
Edouard Tisserant [Wed, 04 Mar 2020 16:46:03 +0100] rev 2854
SVGHMI: unlink clones (i.e. deep copy elements refered by svg:use) inside widget.
Designer can use Inkscape clones to duplicate similar assets accross widget. Those clones are unliked so that elements can be independently transformed by individual widgets.
Edouard Tisserant [Wed, 04 Mar 2020 09:31:53 +0100] rev 2853
SVGHMI: whitespaces and comments
Edouard Tisserant [Tue, 03 Mar 2020 16:29:22 +0100] rev 2852
SVGHMI: completely fixed indentation of generated widget description. Lets try to keep it as-is until we can use yslt indentation.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 03 Mar 2020 10:58:00 +0100] rev 2851
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 02 Mar 2020 16:30:29 +0100] rev 2850
SVGHMI: detach/re-attach elements required by pages on page switch
This is meant to optimize performances with large drawings leading to long restyle or reflow.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 02 Mar 2020 16:25:35 +0100] rev 2849
SVGHMI: re-indenting
Edouard Tisserant [Mon, 02 Mar 2020 14:43:21 +0100] rev 2848
SVGHMI: declares pages detachable requirements as an object, to find more efficiently common requirements
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 02 Mar 2020 10:29:41 +0100] rev 2847
SVGHMI: fix some JS + add generation of detachable elements, to be continued
Edouard Tisserant [Fri, 28 Feb 2020 22:54:07 +0100] rev 2846
SVGHMI: now compute discardable elements first so that we can do better grouping of required elements when sumarizing.
Edouard Tisserant [Fri, 28 Feb 2020 17:52:35 +0100] rev 2845
SVGHMI : documentation for new geometry intersection computation code + little fixes...
Edouard Tisserant [Fri, 28 Feb 2020 16:09:21 +0100] rev 2844
SVGHMI: detachable and discardable elements sets, Reworked geometric intersection, toward more accurate page content detection.
Moved page's widget/element dependency crawling functions so that it is possible to compute a global detachable and discardable elements sets.
Reworked geometric intersection detection logic to distinguish ovelapping and inclusion.
Goal is to include englobing and overlapping graphical elements, but not groups (would then include everything around...). Intermediate commit, to be continued.
Edouard Tisserant [Thu, 27 Feb 2020 13:14:24 +0100] rev 2843
SVGHMI : still trying to optimize. Added xslt code to identitfy minimum set of elements needed by a particular page. Plan is to remove unseen/unused elements from the DOM, and re-appending them later when used, on page switch. Disabled previous optimization.
Edouard Tisserant [Fri, 21 Feb 2020 16:22:44 +0100] rev 2842
SVGHMI: attempt to optimize for webkit, because of really slow style recompute in svg:use : "unlink clones" (as in inkscape) but stop deep-copy when meeting a widget, and create a new clone instead.
Edouard Tisserant [Fri, 21 Feb 2020 16:18:53 +0100] rev 2841
SVGHMI: optimize browser work by hiding (display:none) pages that are not displayed.
Edouard Tisserant [Fri, 21 Feb 2020 16:15:33 +0100] rev 2840
SVGHMI: Better and less verbose SVG namespace handling in XSLT transform
Edouard Tisserant [Mon, 17 Feb 2020 13:57:44 +0100] rev 2839
SVGHMI: Added mostly untested switch widget
Edouard Tisserant [Fri, 14 Feb 2020 21:41:13 +0100] rev 2838
SVGHMI: HMI:Page can now be a svg:g group or a svg:use clone, and included/linked widget are included in page. HMI:Jump was updated to be clickable through svg:use, to be generalized.
Edouard Tisserant [Fri, 14 Feb 2020 10:29:10 +0100] rev 2837
SVGHMI: ensure that coordinate in CSV file generated by inkscape are both matching svg default unit and in default reference frame
Edouard Tisserant [Thu, 13 Feb 2020 09:43:35 +0100] rev 2836
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant [Thu, 13 Feb 2020 09:41:43 +0100] rev 2835
SVGHMI : fix watchdog exception when timeout null
Edouard Tisserant [Tue, 11 Feb 2020 13:56:48 +0100] rev 2834
SVGHMI: be a bit more tolerant with missing HMI paths or missing elements in widgets : continue build (with warning) and fail silently at runtime.
Edouard Tisserant [Thu, 30 Jan 2020 14:33:06 +0100] rev 2833
SVGHMI : fixed bug happening when some SVG ids are containing dashes
Edouard Tisserant [Thu, 23 Jan 2020 13:46:05 +0100] rev 2832
SVGHMI : wait for initial timeout after watchdog is triggered, since it generaly induces HMI restart