From 84cb2f694b4cd96fc758c81e2bdff1dbe8d14ff1 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Tue, 2 Sep 2025 18:56:35 +1000 Subject: internal: fix undef/null errors --- components/filedialog/FileDialog.qml | 2 +- components/filedialog/FolderContents.qml | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/components/filedialog/FileDialog.qml b/components/filedialog/FileDialog.qml index ed6b193..f3187a5 100644 --- a/components/filedialog/FileDialog.qml +++ b/components/filedialog/FileDialog.qml @@ -37,7 +37,7 @@ LazyLoader { readonly property bool selectionValid: { const file = folderContents.currentItem?.modelData; - return file && !file.isDir && (filters.includes("*") || filters.includes(file.suffix)); + return (file && !file.isDir && (filters.includes("*") || filters.includes(file.suffix))) ?? false; } function accepted(path: string): void { diff --git a/components/filedialog/FolderContents.qml b/components/filedialog/FolderContents.qml index 1a20647..126703e 100644 --- a/components/filedialog/FolderContents.qml +++ b/components/filedialog/FolderContents.qml @@ -142,15 +142,18 @@ Item { implicitSize: Sizes.itemWidth - Appearance.padding.normal * 2 source: { - if (item.modelData.isImage) - return Qt.resolvedUrl(item.modelData.path); + const file = item.modelData; + if (!file) + return Quickshell.iconPath("application-x-zerosize"); - if (!item.modelData.isDir) - return Quickshell.iconPath(item.modelData.mimeType.replace("/", "-"), "application-x-zerosize"); + if (file.isImage) + return Qt.resolvedUrl(file.path); - const name = item.modelData.name; - if (root.dialog.cwd.length === 1 && ["Desktop", "Documents", "Downloads", "Music", "Pictures", "Public", "Templates", "Videos"].includes(name)) - return Quickshell.iconPath(`folder-${name.toLowerCase()}`); + if (!file.isDir) + return Quickshell.iconPath(file.mimeType.replace("/", "-"), "application-x-zerosize"); + + if (root.dialog.cwd.length === 1 && ["Desktop", "Documents", "Downloads", "Music", "Pictures", "Public", "Templates", "Videos"].includes(file.name)) + return Quickshell.iconPath(`folder-${file.name.toLowerCase()}`); return Quickshell.iconPath("inode-directory"); } @@ -166,7 +169,7 @@ Item { anchors.margins: Appearance.padding.normal horizontalAlignment: Text.AlignHCenter - text: item.modelData.name + text: item.modelData?.name ?? "" elide: item.GridView.isCurrentItem ? Text.ElideNone : Text.ElideRight wrapMode: item.GridView.isCurrentItem ? Text.WrapAtWordBoundaryOrAnywhere : Text.NoWrap } -- cgit v1.2.3-freya