controlcenter: lazyloading wallpaper
This commit is contained in:
parent
0e1be8126a
commit
f77323b136
1 changed files with 40 additions and 25 deletions
|
|
@ -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 {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue