From 2d4788066f919bd4edb8fdc867ba339aa57ffbe3 Mon Sep 17 00:00:00 2001 From: ndonkoHenri Date: Mon, 8 Jan 2024 13:57:32 +0100 Subject: [PATCH 1/3] ScrollableControl.reverse --- .../flet-core/src/flet_core/scrollable_control.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/sdk/python/packages/flet-core/src/flet_core/scrollable_control.py b/sdk/python/packages/flet-core/src/flet_core/scrollable_control.py index 7968d4827..0fa62ad7c 100644 --- a/sdk/python/packages/flet-core/src/flet_core/scrollable_control.py +++ b/sdk/python/packages/flet-core/src/flet_core/scrollable_control.py @@ -14,6 +14,7 @@ def __init__( self, scroll: Optional[ScrollMode] = None, auto_scroll: Optional[bool] = None, + reverse: Optional[bool] = None, on_scroll_interval: OptionalNumber = None, on_scroll: Any = None, ): @@ -26,6 +27,7 @@ def convert_on_scroll_event_data(e): self.scroll = scroll self.auto_scroll = auto_scroll + self.reverse = reverse self.on_scroll_interval = on_scroll_interval self.on_scroll = on_scroll @@ -95,13 +97,22 @@ def __set_scroll(self, value: Optional[ScrollModeString]): # auto_scroll @property - def auto_scroll(self) -> Optional[bool]: - return self._get_attr("autoScroll") + def auto_scroll(self) -> Optional[str]: + return self._get_attr("autoScroll", data_type="bool", def_value=False) @auto_scroll.setter def auto_scroll(self, value: Optional[bool]): self._set_attr("autoScroll", value) + # reverse + @property + def reverse(self) -> Optional[bool]: + return self._get_attr("reverse", data_type="bool", def_value=False) + + @reverse.setter + def reverse(self, value: Optional[bool]): + self._set_attr("reverse", value) + # on_scroll_interval @property def on_scroll_interval(self) -> OptionalNumber: From fbc85bc5bdd17f98995f0f8d92bcad8de81a6dec Mon Sep 17 00:00:00 2001 From: ndonkoHenri Date: Mon, 8 Jan 2024 13:57:41 +0100 Subject: [PATCH 2/3] ListView.reverse --- package/lib/src/controls/list_view.dart | 3 +++ sdk/python/packages/flet-core/src/flet_core/list_view.py | 2 ++ 2 files changed, 5 insertions(+) diff --git a/package/lib/src/controls/list_view.dart b/package/lib/src/controls/list_view.dart index ffea22d18..784e2ce45 100644 --- a/package/lib/src/controls/list_view.dart +++ b/package/lib/src/controls/list_view.dart @@ -56,6 +56,7 @@ class _ListViewControlState extends State { final firstItemPrototype = widget.control.attrBool("firstItemPrototype", false)!; final padding = parseEdgeInsets(widget.control, "padding"); + final reverse = widget.control.attrBool("reverse", false)!; List visibleControls = widget.children.where((c) => c.isVisible).toList(); @@ -72,6 +73,7 @@ class _ListViewControlState extends State { Widget child = spacing > 0 ? ListView.separated( controller: _controller, + reverse: reverse, scrollDirection: horizontal ? Axis.horizontal : Axis.vertical, shrinkWrap: shrinkWrap, padding: padding, @@ -94,6 +96,7 @@ class _ListViewControlState extends State { ) : ListView.builder( controller: _controller, + reverse: reverse, scrollDirection: horizontal ? Axis.horizontal : Axis.vertical, shrinkWrap: shrinkWrap, padding: padding, diff --git a/sdk/python/packages/flet-core/src/flet_core/list_view.py b/sdk/python/packages/flet-core/src/flet_core/list_view.py index 5826c5fd7..4e6f55be6 100644 --- a/sdk/python/packages/flet-core/src/flet_core/list_view.py +++ b/sdk/python/packages/flet-core/src/flet_core/list_view.py @@ -85,6 +85,7 @@ def __init__( # ScrollableControl specific # auto_scroll: Optional[bool] = None, + reverse: Optional[bool] = None, on_scroll_interval: OptionalNumber = None, on_scroll: Any = None, # @@ -129,6 +130,7 @@ def __init__( ScrollableControl.__init__( self, auto_scroll=auto_scroll, + reverse=reverse, on_scroll_interval=on_scroll_interval, on_scroll=on_scroll, ) From a5e6e025a1a07e968fc56f54e39c2e1ece62e395 Mon Sep 17 00:00:00 2001 From: ndonkoHenri Date: Mon, 8 Jan 2024 13:58:14 +0100 Subject: [PATCH 3/3] GridView.reverse --- package/lib/src/controls/grid_view.dart | 2 ++ sdk/python/packages/flet-core/src/flet_core/grid_view.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/package/lib/src/controls/grid_view.dart b/package/lib/src/controls/grid_view.dart index 34c77b105..95403508e 100644 --- a/package/lib/src/controls/grid_view.dart +++ b/package/lib/src/controls/grid_view.dart @@ -56,6 +56,7 @@ class _GridViewControlState extends State { final runSpacing = widget.control.attrDouble("runSpacing", 10)!; final padding = parseEdgeInsets(widget.control, "padding"); final childAspectRatio = widget.control.attrDouble("childAspectRatio", 1)!; + final reverse = widget.control.attrBool("reverse", false)!; List visibleControls = widget.children.where((c) => c.isVisible).toList(); @@ -84,6 +85,7 @@ class _GridViewControlState extends State { Widget child = GridView.builder( scrollDirection: horizontal ? Axis.horizontal : Axis.vertical, controller: _controller, + reverse: reverse, shrinkWrap: shrinkWrap, padding: padding, gridDelegate: gridDelegate, diff --git a/sdk/python/packages/flet-core/src/flet_core/grid_view.py b/sdk/python/packages/flet-core/src/flet_core/grid_view.py index 32378e8f8..7c31315bd 100644 --- a/sdk/python/packages/flet-core/src/flet_core/grid_view.py +++ b/sdk/python/packages/flet-core/src/flet_core/grid_view.py @@ -93,6 +93,7 @@ def __init__( # ScrollableControl specific # auto_scroll: Optional[bool] = None, + reverse: Optional[bool] = None, on_scroll_interval: OptionalNumber = None, on_scroll: Any = None, # @@ -138,6 +139,7 @@ def __init__( ScrollableControl.__init__( self, auto_scroll=auto_scroll, + reverse=reverse, on_scroll_interval=on_scroll_interval, on_scroll=on_scroll, )