From 73f5761690afe00faedf5818d802dfe39a1b90d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= Date: Fri, 24 Jan 2025 13:37:08 +0100 Subject: [PATCH] Fixed potential crash when handling file reloads A crash could occur if a file (usually a map, tileset or world) got reloaded while no editor was currently open. --- src/tiled/documentmanager.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/tiled/documentmanager.cpp b/src/tiled/documentmanager.cpp index 1c2c2d1030..1ef66ba313 100644 --- a/src/tiled/documentmanager.cpp +++ b/src/tiled/documentmanager.cpp @@ -974,8 +974,10 @@ bool DocumentManager::reloadDocument(Document *document) break; } - if (!isDocumentChangedOnDisk(currentDocument())) - mFileChangedWarning->setVisible(false); + // We may need to hide the file changed warning + if (auto current = currentDocument()) + if (!isDocumentChangedOnDisk(current)) + mFileChangedWarning->setVisible(false); emit documentReloaded(document); @@ -1172,8 +1174,10 @@ void DocumentManager::fileChanged(const QString &fileName) document->setChangedOnDisk(true); - if (isDocumentChangedOnDisk(currentDocument())) - mFileChangedWarning->setVisible(true); + // We may need to show the file changed warning + if (auto current = currentDocument()) + if (isDocumentChangedOnDisk(current)) + mFileChangedWarning->setVisible(true); } void DocumentManager::hideChangedWarning()