controlcenter: lazyloading wallpaper

This commit is contained in:
ATMDA 2025-11-16 13:21:59 -05:00
parent 0e1be8126a
commit f77323b136

View file

@ -1895,7 +1895,20 @@ RowLayout {
Item {
Layout.fillWidth: true
Layout.topMargin: Appearance.spacing.large
Layout.preferredHeight: wallpaperGrid.Layout.preferredHeight
Layout.preferredHeight: wallpaperLoader.item ? wallpaperLoader.item.layoutPreferredHeight : 0
Loader {
id: wallpaperLoader
anchors.fill: parent
asynchronous: true
active: {
// Lazy load: only activate when right pane is loaded
// This defers heavy wallpaper list loading until the right pane is visible
return rightAppearanceLoader.item !== null;
}
sourceComponent: Item {
property alias layoutPreferredHeight: wallpaperGrid.layoutPreferredHeight
GridView {
id: wallpaperGrid
@ -1904,8 +1917,8 @@ RowLayout {
readonly property int minCellWidth: 200 + Appearance.spacing.normal
readonly property int columnsCount: Math.max(1, Math.floor(parent.width / minCellWidth))
Layout.preferredHeight: Math.ceil(count / columnsCount) * cellHeight
height: Layout.preferredHeight
readonly property int layoutPreferredHeight: Math.ceil(count / columnsCount) * cellHeight
height: layoutPreferredHeight
// Distribute width evenly across columns
cellWidth: width / columnsCount
@ -2148,3 +2161,5 @@ RowLayout {
}
}
}
}
}