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