File indexing completed on 2024-05-19 05:00:54
0001 /* 0002 kcookiesmanagement.h - Cookies manager 0003 0004 SPDX-FileCopyrightText: 2000-2001 Marco Pinelli <pinmc@orion.it> 0005 SPDX-FileCopyrightText: 2000-2001 Dawit Alemayehu <adawit@kde.org> 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #ifndef KCOOKIESMANAGEMENT_H 0011 #define KCOOKIESMANAGEMENT_H 0012 0013 #include <QHash> 0014 #include <QList> 0015 #include <QStringList> 0016 #include <QTreeWidget> 0017 #include <QNetworkCookie> 0018 0019 #include "ui_kcookiesmanagement.h" 0020 #include <KCModule> 0021 0022 struct CookieProp; 0023 0024 class CookieListViewItem : public QTreeWidgetItem 0025 { 0026 public: 0027 CookieListViewItem(QTreeWidget *parent, const QString &dom); 0028 CookieListViewItem(QTreeWidgetItem *parent, CookieProp *cookie); 0029 ~CookieListViewItem() override; 0030 0031 QString domain() const 0032 { 0033 return mDomain; 0034 } 0035 CookieProp *cookie() const 0036 { 0037 return mCookie; 0038 } 0039 CookieProp *leaveCookie(); 0040 void setCookiesLoaded() 0041 { 0042 mCookiesLoaded = true; 0043 } 0044 bool cookiesLoaded() const 0045 { 0046 return mCookiesLoaded; 0047 } 0048 0049 private: 0050 void init(CookieProp *cookie, const QString &domain = QString(), bool cookieLoaded = false); 0051 CookieProp *mCookie; 0052 QString mDomain; 0053 bool mCookiesLoaded; 0054 }; 0055 0056 class KCookiesManagement : public KCModule 0057 { 0058 Q_OBJECT 0059 0060 public: 0061 //TODO KF6: when dropping compatibility with KF5, remove QVariantList argument 0062 explicit KCookiesManagement(QObject *parent, const KPluginMetaData &md={}, const QVariantList &args={}); 0063 ~KCookiesManagement() override; 0064 0065 void load() override; 0066 void save() override; 0067 void defaults() override; 0068 0069 #if QT_VERSION_MAJOR < 6 0070 void setNeedsSave(bool needs) { 0071 m_needsSave = needs; 0072 emit changed(needs); 0073 } 0074 bool needsSave() const {return m_needsSave;} 0075 #endif 0076 0077 private Q_SLOTS: 0078 void deleteCurrent(); 0079 void deleteAll(); 0080 void reload(); 0081 void listCookiesForDomain(QTreeWidgetItem *); 0082 void updateForItem(QTreeWidgetItem *); 0083 void showConfigPolicyDialog(); 0084 0085 private: 0086 void reset(bool deleteAll = false); 0087 bool cookieDetails(CookieProp *cookie); 0088 void clearCookieDetails(); 0089 0090 typedef QSet<QNetworkCookie> CookieSet; 0091 static CookieSet getCookies(); 0092 0093 bool mDeleteAllFlag; 0094 QWidget *mMainWidget; 0095 Ui::KCookiesManagementUI mUi; 0096 0097 QStringList mDeletedDomains; 0098 typedef QList<CookieProp *> CookiePropList; 0099 QHash<QString, CookiePropList> mDeletedCookies; 0100 #if QT_VERSION_MAJOR < 6 0101 bool m_needsSave = false; 0102 #endif 0103 }; 0104 0105 #endif // KCOOKIESMANAGEMENT_H