From 150d9a8281ad25aa1f003048ffe7136e379ab38c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= <bjorn@lindeijer.nl>
Date: Fri, 24 Jan 2025 16:33:15 +0100
Subject: [PATCH] Fixed potential crash when handling file reloads (#4154)

A crash could occur if a file (usually a map, tileset or world) got
reloaded while no editor was currently open.
---
 NEWS.md                       |  4 ++++
 src/tiled/documentmanager.cpp | 12 ++++++++----
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/NEWS.md b/NEWS.md
index 7512aac2dc..d05f91a61a 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,3 +1,7 @@
+### Unreleased
+
+* Fixed potential crash when handling file reloads
+
 ### Tiled 1.11.1 (11 Jan 2025)
 
 * Releases now ship with support for loading Aseprite images (#4109)
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()