File indexing completed on 2024-05-12 15:41:56
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 0018 #include "ui_kcookiesmanagement.h" 0019 #include <KCModule> 0020 0021 struct CookieProp; 0022 0023 class CookieListViewItem : public QTreeWidgetItem 0024 { 0025 public: 0026 CookieListViewItem(QTreeWidget *parent, const QString &dom); 0027 CookieListViewItem(QTreeWidgetItem *parent, CookieProp *cookie); 0028 ~CookieListViewItem() override; 0029 0030 QString domain() const 0031 { 0032 return mDomain; 0033 } 0034 CookieProp *cookie() const 0035 { 0036 return mCookie; 0037 } 0038 CookieProp *leaveCookie(); 0039 void setCookiesLoaded() 0040 { 0041 mCookiesLoaded = true; 0042 } 0043 bool cookiesLoaded() const 0044 { 0045 return mCookiesLoaded; 0046 } 0047 0048 private: 0049 void init(CookieProp *cookie, const QString &domain = QString(), bool cookieLoaded = false); 0050 CookieProp *mCookie; 0051 QString mDomain; 0052 bool mCookiesLoaded; 0053 }; 0054 0055 class KCookiesManagement : public KCModule 0056 { 0057 Q_OBJECT 0058 0059 public: 0060 explicit KCookiesManagement(QWidget *parent, const QVariantList &args); 0061 ~KCookiesManagement() override; 0062 0063 void load() override; 0064 void save() override; 0065 void defaults() override; 0066 QString quickHelp() const override; 0067 0068 private Q_SLOTS: 0069 void deleteCurrent(); 0070 void deleteAll(); 0071 void reload(); 0072 void listCookiesForDomain(QTreeWidgetItem *); 0073 void updateForItem(QTreeWidgetItem *); 0074 void showConfigPolicyDialog(); 0075 0076 private: 0077 void reset(bool deleteAll = false); 0078 bool cookieDetails(CookieProp *cookie); 0079 void clearCookieDetails(); 0080 0081 bool mDeleteAllFlag; 0082 QWidget *mMainWidget; 0083 Ui::KCookiesManagementUI mUi; 0084 0085 QStringList mDeletedDomains; 0086 typedef QList<CookieProp *> CookiePropList; 0087 QHash<QString, CookiePropList> mDeletedCookies; 0088 }; 0089 0090 #endif // KCOOKIESMANAGEMENT_H