From 45abce1b6178d36ecfd872ce64a98e573af83a2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= Date: Fri, 15 Sep 2023 17:31:05 +0200 Subject: [PATCH] UI: Keep scroll position when switching tabs Only change visibility rather than the precense of each tab's contents, so that its internal state, like scroll position, isn't lost. --- cryptotax_ui/ui/appwindow.slint | 28 +++++++++++++++++++--------- cryptotax_ui/ui/capital-gains.slint | 3 --- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/cryptotax_ui/ui/appwindow.slint b/cryptotax_ui/ui/appwindow.slint index 1469aa7..cfc5a74 100644 --- a/cryptotax_ui/ui/appwindow.slint +++ b/cryptotax_ui/ui/appwindow.slint @@ -123,17 +123,27 @@ export component AppWindow inherits Window { } } - if (active-page == Page.sources): Sources { - sources: root.sources; - } + Rectangle { + Sources { + visible: active-page == Page.sources; + sources: root.sources; + } - if (active-page == Page.transactions): Transactions { - transactions: root.transactions; - open-transaction(s) => { root.open-transaction(s); } - } + Transactions { + visible: active-page == Page.transactions; + transactions: root.transactions; + open-transaction(s) => { root.open-transaction(s); } + } + + CapitalGains { + visible: active-page == Page.capital-gains; + gain-entries: root.gain-entries; - if (active-page == Page.capital-gains): CapitalGains { - gain-entries: root.gain-entries; + // somehow a StandardTableView doesn't do this by default + // also, Slint compiler crashes if I put this in the component? + width: 100%; + height: 100%; + } } } } diff --git a/cryptotax_ui/ui/capital-gains.slint b/cryptotax_ui/ui/capital-gains.slint index 00ab550..825d978 100644 --- a/cryptotax_ui/ui/capital-gains.slint +++ b/cryptotax_ui/ui/capital-gains.slint @@ -3,9 +3,6 @@ import { StandardTableView } from "std-widgets.slint"; export component CapitalGains inherits StandardTableView { in property <[[StandardListViewItem]]> gain-entries; - width: 100%; - height: 100%; - columns: [ { title: "Currency" }, { title: "Bought" },