From 52e7e9732bf46fd5cdcd5596e762a7ecde3323ea Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Fri, 20 Mar 2026 01:01:56 +1100 Subject: [PATCH] feat: async components --- components/controls/Menu.qml | 1 + components/controls/ToggleButton.qml | 3 +++ components/filedialog/FolderContents.qml | 1 + components/filedialog/HeaderBar.qml | 4 ++++ components/images/CachingIconImage.qml | 1 + 5 files changed, 10 insertions(+) diff --git a/components/controls/Menu.qml b/components/controls/Menu.qml index c763b54a..3e834aec 100644 --- a/components/controls/Menu.qml +++ b/components/controls/Menu.qml @@ -83,6 +83,7 @@ Elevation { } Loader { + asynchronous: true Layout.alignment: Qt.AlignVCenter active: item.modelData.trailingIcon.length > 0 visible: active diff --git a/components/controls/ToggleButton.qml b/components/controls/ToggleButton.qml index 98c7564f..dd42af25 100644 --- a/components/controls/ToggleButton.qml +++ b/components/controls/ToggleButton.qml @@ -74,6 +74,7 @@ StyledRect { } Loader { + asynchronous: true active: !!root.label visible: active @@ -101,6 +102,8 @@ StyledRect { // Tooltip - positioned absolutely, doesn't affect layout Loader { id: tooltipLoader + + asynchronous: true active: root.tooltip !== "" z: 10000 width: 0 diff --git a/components/filedialog/FolderContents.qml b/components/filedialog/FolderContents.qml index e16c7a15..00d7a3d9 100644 --- a/components/filedialog/FolderContents.qml +++ b/components/filedialog/FolderContents.qml @@ -47,6 +47,7 @@ Item { } Loader { + asynchronous: true anchors.centerIn: parent opacity: view.count === 0 ? 1 : 0 diff --git a/components/filedialog/HeaderBar.qml b/components/filedialog/HeaderBar.qml index c9a3feb5..43184bfd 100644 --- a/components/filedialog/HeaderBar.qml +++ b/components/filedialog/HeaderBar.qml @@ -75,6 +75,7 @@ StyledRect { spacing: 0 Loader { + asynchronous: true Layout.rightMargin: Appearance.spacing.small active: folder.index > 0 sourceComponent: StyledText { @@ -89,6 +90,7 @@ StyledRect { implicitHeight: folderName.implicitHeight + Appearance.padding.small * 2 Loader { + asynchronous: true anchors.fill: parent active: folder.index < root.dialog.cwd.length - 1 sourceComponent: StateLayer { @@ -103,6 +105,8 @@ StyledRect { Loader { id: homeIcon + asynchronous: true + anchors.left: parent.left anchors.verticalCenter: parent.verticalCenter anchors.leftMargin: Appearance.padding.normal diff --git a/components/images/CachingIconImage.qml b/components/images/CachingIconImage.qml index 1acc6a18..52c0d14f 100644 --- a/components/images/CachingIconImage.qml +++ b/components/images/CachingIconImage.qml @@ -18,6 +18,7 @@ Item { Loader { id: loader + asynchronous: true anchors.fill: parent sourceComponent: root.source ? root.source.toString().startsWith("image://icon/") ? iconImage : cachingImage : null }