1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-27 15:02:50 -05:00

Thread font loading

This commit is contained in:
bbedward
2025-10-06 23:51:49 -04:00
parent 2757a41102
commit abb3c40697

View File

@@ -12,7 +12,7 @@ import qs.Widgets
Item { Item {
id: personalizationTab id: personalizationTab
property alias wallpaperBrowser: wallpaperBrowser property var wallpaperBrowser: wallpaperBrowserLoader.item
property var parentModal: null property var parentModal: null
property var cachedFontFamilies: [] property var cachedFontFamilies: []
property bool fontsEnumerated: false property bool fontsEnumerated: false
@@ -46,15 +46,23 @@ Item {
cachedFontFamilies = fonts.concat(rootFamilies.sort()) cachedFontFamilies = fonts.concat(rootFamilies.sort())
} }
Component.onCompleted: { Timer {
// Access WallpaperCyclingService to ensure it's initialized id: fontEnumerationTimer
WallpaperCyclingService.cyclingActive interval: 50
if (!fontsEnumerated) { running: false
enumerateFonts() onTriggered: {
fontsEnumerated = true if (!fontsEnumerated) {
enumerateFonts()
fontsEnumerated = true
}
} }
} }
Component.onCompleted: {
WallpaperCyclingService.cyclingActive
fontEnumerationTimer.start()
}
DankFlickable { DankFlickable {
anchors.fill: parent anchors.fill: parent
anchors.topMargin: Theme.spacingL anchors.topMargin: Theme.spacingL
@@ -229,7 +237,7 @@ Item {
parentModal.allowFocusOverride = true parentModal.allowFocusOverride = true
parentModal.shouldHaveFocus = false parentModal.shouldHaveFocus = false
} }
wallpaperBrowser.open() wallpaperBrowserLoader.active = true
} }
} }
} }
@@ -1841,27 +1849,33 @@ Item {
} }
} }
FileBrowserModal { Loader {
id: wallpaperBrowser id: wallpaperBrowserLoader
active: false
asynchronous: true
browserTitle: "Select Wallpaper" sourceComponent: FileBrowserModal {
browserIcon: "wallpaper" Component.onCompleted: open()
browserType: "wallpaper" browserTitle: "Select Wallpaper"
fileExtensions: ["*.jpg", "*.jpeg", "*.png", "*.bmp", "*.gif", "*.webp"] browserIcon: "wallpaper"
onFileSelected: path => { browserType: "wallpaper"
if (SessionData.perMonitorWallpaper) { fileExtensions: ["*.jpg", "*.jpeg", "*.png", "*.bmp", "*.gif", "*.webp"]
SessionData.setMonitorWallpaper(selectedMonitorName, path) onFileSelected: path => {
} else { if (SessionData.perMonitorWallpaper) {
SessionData.setWallpaper(path) SessionData.setMonitorWallpaper(selectedMonitorName, path)
} else {
SessionData.setWallpaper(path)
}
close()
} }
close() onDialogClosed: {
} if (parentModal) {
onDialogClosed: { parentModal.allowFocusOverride = false
if (parentModal) { parentModal.shouldHaveFocus = Qt.binding(() => {
parentModal.allowFocusOverride = false return parentModal.shouldBeVisible
parentModal.shouldHaveFocus = Qt.binding(() => { })
return parentModal.shouldBeVisible }
}) Qt.callLater(() => wallpaperBrowserLoader.active = false)
} }
} }
} }