[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;