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

openSUSE Build Service is sponsored by