[network/konqueror/release/26.08] 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 4defc4adb59dfb16782849aaf8dedbb6b46b882a by Stefano Crocco. Committed on 20/07/2026 at 10:20. Pushed by stefanocrocco into branch 'release/26.08'. Fix crash when clicking on Configure Policy button in Cookie Management KCM (cherry picked from commit 9cabb47bd19c3049452693d7c093f18a326a93ad) Co-authored-by: Stefano Crocco <[email protected]> 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/4defc4adb59dfb16782849aaf8dedbb6b46b882a 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;