[pim/messagelib] messageviewer/src/widgets: Make sure that dialog was not deleted

Laurent Montel <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit 8cc168059ab208365fed8efc39f7e49688dc433c by Laurent Montel.
Committed on 15/08/2026 at 06:12.
Pushed by mlaurent into branch 'master'.

Make sure that dialog was not deleted

M  +7    -2    messageviewer/src/widgets/mailsourcewebengineviewer.cpp

https://invent.kde.org/pim/messagelib/-/commit/8cc168059ab208365fed8efc39f7e49688dc433c

diff --git a/messageviewer/src/widgets/mailsourcewebengineviewer.cpp b/messageviewer/src/widgets/mailsourcewebengineviewer.cpp
index ae5cd9aed..ad6cecb6c 100644
--- a/messageviewer/src/widgets/mailsourcewebengineviewer.cpp
+++ b/messageviewer/src/widgets/mailsourcewebengineviewer.cpp
@@ -18,6 +18,7 @@
 
 #include <KConfigGroup>
 #include <KWindowConfig>
+#include <QPointer>
 #include <QShortcut>
 #include <QVBoxLayout>
 #include <QWindow>
@@ -103,9 +104,13 @@ void MailSourceWebEngineViewer::setDisplayedSource(QWebEnginePage *page)
 {
     if (mShowHtmlSource) {
         if (page) {
-            MailSourceViewTextBrowserWidget *browser = mHtmlBrowser;
+            // toHtml() is asynchronous and this dialog is WA_DeleteOnClose, so the
+            // browser can be gone by the time the render process answers.
+            QPointer<MailSourceViewTextBrowserWidget> browser = mHtmlBrowser;
             page->toHtml([browser](const QString &result) {
-                browser->setPlainText(result);
+                if (browser) {
+                    browser->setPlainText(result);
+                }
             });
         }
     }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.