internal: fix undef/null errors

This commit is contained in:
2 * r + 2 * t 2025-09-02 18:56:35 +10:00
parent e70cb285ac
commit 84cb2f694b
2 changed files with 12 additions and 9 deletions

View file

@ -37,7 +37,7 @@ LazyLoader {
readonly property bool selectionValid: { readonly property bool selectionValid: {
const file = folderContents.currentItem?.modelData; 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 { function accepted(path: string): void {

View file

@ -142,15 +142,18 @@ Item {
implicitSize: Sizes.itemWidth - Appearance.padding.normal * 2 implicitSize: Sizes.itemWidth - Appearance.padding.normal * 2
source: { source: {
if (item.modelData.isImage) const file = item.modelData;
return Qt.resolvedUrl(item.modelData.path); if (!file)
return Quickshell.iconPath("application-x-zerosize");
if (!item.modelData.isDir) if (file.isImage)
return Quickshell.iconPath(item.modelData.mimeType.replace("/", "-"), "application-x-zerosize"); return Qt.resolvedUrl(file.path);
const name = item.modelData.name; if (!file.isDir)
if (root.dialog.cwd.length === 1 && ["Desktop", "Documents", "Downloads", "Music", "Pictures", "Public", "Templates", "Videos"].includes(name)) return Quickshell.iconPath(file.mimeType.replace("/", "-"), "application-x-zerosize");
return Quickshell.iconPath(`folder-${name.toLowerCase()}`);
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"); return Quickshell.iconPath("inode-directory");
} }
@ -166,7 +169,7 @@ Item {
anchors.margins: Appearance.padding.normal anchors.margins: Appearance.padding.normal
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
text: item.modelData.name text: item.modelData?.name ?? ""
elide: item.GridView.isCurrentItem ? Text.ElideNone : Text.ElideRight elide: item.GridView.isCurrentItem ? Text.ElideNone : Text.ElideRight
wrapMode: item.GridView.isCurrentItem ? Text.WrapAtWordBoundaryOrAnywhere : Text.NoWrap wrapMode: item.GridView.isCurrentItem ? Text.WrapAtWordBoundaryOrAnywhere : Text.NoWrap
} }