[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);
+ }
});
}
}