[network/konqueror] settings/konqhtml/cookies: Fix crash when clicking on Configure Policy button in Cookie Management KCM

Stefano Crocco <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit 9cabb47bd19c3049452693d7c093f18a326a93ad by Stefano Crocco.
Committed on 20/07/2026 at 10:07.
Pushed by stefanocrocco into branch 'master'.

Fix crash when clicking on Configure Policy button in Cookie Management KCM

M  +1    -1    settings/konqhtml/cookies/kcookiesmain.cpp
M  +4    -5    settings/konqhtml/cookies/kcookiesmanagement.cpp
M  +4    -3    settings/konqhtml/cookies/kcookiesmanagement.h

https://invent.kde.org/network/konqueror/-/commit/9cabb47bd19c3049452693d7c093f18a326a93ad

diff --git a/settings/konqhtml/cookies/kcookiesmain.cpp b/settings/konqhtml/cookies/kcookiesmain.cpp
index f50108f621..9841f9414f 100644
--- a/settings/konqhtml/cookies/kcookiesmain.cpp
+++ b/settings/konqhtml/cookies/kcookiesmain.cpp
@@ -31,7 +31,7 @@ KCookiesMain::KCookiesMain(QObject *parent, const KPluginMetaData &md)
 
     policies = new KCookiesPolicies(widget(), md);
     tab->addTab(policies->widget(), i18n("&Policy"));
-    management = new KCookiesManagement(widget(), md);
+    management = new KCookiesManagement(this, md);
     tab->addTab(management->widget(), i18n("&Management"));
 
     connect(policies, &KCModule::needsSaveChanged, this, &KCookiesMain::updateNeedsSave);
diff --git a/settings/konqhtml/cookies/kcookiesmanagement.cpp b/settings/konqhtml/cookies/kcookiesmanagement.cpp
index 2339244640..2e41371c28 100644
--- a/settings/konqhtml/cookies/kcookiesmanagement.cpp
+++ b/settings/konqhtml/cookies/kcookiesmanagement.cpp
@@ -100,10 +100,10 @@ CookieProp *CookieListViewItem::leaveCookie()
     return ret;
 }
 
-KCookiesManagement::KCookiesManagement(QObject *parent, const KPluginMetaData &md, const QVariantList &)
+KCookiesManagement::KCookiesManagement(KCookiesMain *parent, const KPluginMetaData &md)
     : KCModule(parent, md)
     , mDeleteAllFlag(false)
-    , mMainWidget(qobject_cast<QWidget*>(parent))
+    , m_cookiesModule(parent)
 {
     mUi.setupUi(widget());
     mUi.searchLineEdit->setTreeWidget(mUi.cookiesTreeWidget);
@@ -316,11 +316,10 @@ void KCookiesManagement::showConfigPolicyDialog()
     Q_ASSERT(item); // the button is disabled otherwise
 
     if (item) {
-        KCookiesMain *mainDlg = qobject_cast<KCookiesMain *>(mMainWidget);
         // must be present or something is really wrong.
-        Q_ASSERT(mainDlg);
+        Q_ASSERT(m_cookiesModule);
 
-        KCookiesPolicies *policyDlg = mainDlg->policyDlg();
+        KCookiesPolicies *policyDlg = m_cookiesModule->policyDlg();
         // must be present unless someone rewrote the widget in which case
         // this needs to be re-written as well.
         Q_ASSERT(policyDlg);
diff --git a/settings/konqhtml/cookies/kcookiesmanagement.h b/settings/konqhtml/cookies/kcookiesmanagement.h
index c9b7cd1b28..bc4014433f 100644
--- a/settings/konqhtml/cookies/kcookiesmanagement.h
+++ b/settings/konqhtml/cookies/kcookiesmanagement.h
@@ -19,6 +19,8 @@
 #include "ui_kcookiesmanagement.h"
 #include <KCModule>
 
+class KCookiesMain;
+
 struct CookieProp;
 
 class CookieListViewItem : public QTreeWidgetItem
@@ -58,8 +60,7 @@ class KCookiesManagement : public KCModule
     Q_OBJECT
 
 public:
-    //TODO KF6: when dropping compatibility with KF5, remove QVariantList argument
-    explicit KCookiesManagement(QObject *parent, const KPluginMetaData &md={}, const QVariantList &args={});
+    explicit KCookiesManagement(KCookiesMain *parent, const KPluginMetaData &md={});
     ~KCookiesManagement() override;
 
     void load() override;
@@ -83,7 +84,7 @@ private:
     static CookieSet getCookies();
 
     bool mDeleteAllFlag;
-    QWidget *mMainWidget;
+    KCookiesMain *m_cookiesModule;
     Ui::KCookiesManagementUI mUi;
 
     QStringList mDeletedDomains;
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.