File Fix-Bug-426596.patch of Package kmail
From 0922a95a692f6424773cd28f21a83237a60d226f Mon Sep 17 00:00:00 2001
From: Laurent Montel <montel@kde.org>
Date: Wed, 16 Sep 2020 18:51:29 +0200
Subject: [PATCH] Fix Bug 426596 - Application: "akonadi_archivemail_agent"
crashed after closing "Configure automatic archving..."-Dialog
BUG: 426596
BUG: 425786
BUG: 424232
---
agents/archivemailagent/archivemailkernel.cpp | 6 ++++++
agents/archivemailagent/archivemailkernel.h | 2 ++
agents/archivemailagent/archivemailmanager.cpp | 2 +-
agents/archivemailagent/archivemailwidget.cpp | 3 +--
4 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/agents/archivemailagent/archivemailkernel.cpp b/agents/archivemailagent/archivemailkernel.cpp
index 0ac5081c7..c38b77ac6 100644
--- a/agents/archivemailagent/archivemailkernel.cpp
+++ b/agents/archivemailagent/archivemailkernel.cpp
@@ -50,6 +50,12 @@ ArchiveMailKernel::ArchiveMailKernel(QObject *parent)
mJobScheduler = new MailCommon::JobScheduler(this);
}
+ArchiveMailKernel *ArchiveMailKernel::self()
+{
+ static ArchiveMailKernel s_self;
+ return &s_self;
+}
+
KIdentityManagement::IdentityManager *ArchiveMailKernel::identityManager()
{
return mIdentityManager;
diff --git a/agents/archivemailagent/archivemailkernel.h b/agents/archivemailagent/archivemailkernel.h
index fb7bc37b3..89d364ae5 100644
--- a/agents/archivemailagent/archivemailkernel.h
+++ b/agents/archivemailagent/archivemailkernel.h
@@ -38,6 +38,8 @@ class ArchiveMailKernel : public QObject, public MailCommon::IKernel, public Mai
public:
explicit ArchiveMailKernel(QObject *parent = nullptr);
+ static ArchiveMailKernel *self();
+
KIdentityManagement::IdentityManager *identityManager() override;
MessageComposer::MessageSender *msgSender() override;
diff --git a/agents/archivemailagent/archivemailmanager.cpp b/agents/archivemailagent/archivemailmanager.cpp
index 170210748..8f97b25a2 100644
--- a/agents/archivemailagent/archivemailmanager.cpp
+++ b/agents/archivemailagent/archivemailmanager.cpp
@@ -37,7 +37,7 @@
ArchiveMailManager::ArchiveMailManager(QObject *parent)
: QObject(parent)
{
- mArchiveMailKernel = new ArchiveMailKernel(this);
+ mArchiveMailKernel = ArchiveMailKernel::self();
CommonKernel->registerKernelIf(mArchiveMailKernel); //register KernelIf early, it is used by the Filter classes
CommonKernel->registerSettingsIf(mArchiveMailKernel); //SettingsIf is used in FolderTreeWidget
mConfig = KSharedConfig::openConfig();
diff --git a/agents/archivemailagent/archivemailwidget.cpp b/agents/archivemailagent/archivemailwidget.cpp
index 3d7b72b0c..30d24f194 100644
--- a/agents/archivemailagent/archivemailwidget.cpp
+++ b/agents/archivemailagent/archivemailwidget.cpp
@@ -69,9 +69,8 @@ ArchiveMailInfo *ArchiveMailItem::info() const
ArchiveMailWidget::ArchiveMailWidget(const KSharedConfigPtr &config, QWidget *parent, const QVariantList &args)
: Akonadi::AgentConfigurationBase(config, parent, args)
- , mChanged(false)
{
- ArchiveMailKernel *archiveMailKernel = new ArchiveMailKernel(this);
+ ArchiveMailKernel *archiveMailKernel = ArchiveMailKernel::self();
CommonKernel->registerKernelIf(archiveMailKernel); //register KernelIf early, it is used by the Filter classes
CommonKernel->registerSettingsIf(archiveMailKernel); //SettingsIf is used in FolderTreeWidget
--
GitLab