1 /* ============================================================
2 * QuiteRSS is a open-source cross-platform RSS/Atom news feeds reader
3 * Copyright (C) 2011-2020 QuiteRSS Team <quiterssteam@gmail.com>
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
17 * ============================================================ */
18 #ifndef COOKIEJAR_H
19 #define COOKIEJAR_H
20 
21 #include <QFile>
22 #include <QStringList>
23 #include <QNetworkCookieJar>
24 
25 enum UseCookies {
26   BlockCookies,
27   SaveCookies,
28   DeleteCookiesOnClose
29 };
30 
31 class CookieJar : public QNetworkCookieJar
32 {
33   Q_OBJECT
34 public:
35   explicit CookieJar(QObject *parent);
36 
37   bool setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url);
38 
39   QList<QNetworkCookie> getAllCookies();
40   void setAllCookies(const QList<QNetworkCookie> &cookieList);
41 
42   void saveCookies();
43   void loadCookies();
44 
45   UseCookies useCookies() const;
46   void setUseCookies(UseCookies value);
47 
48 public slots:
49   void clearCookies();
50 
51 private:
52   UseCookies useCookies_;
53 
54 };
55 
56 #endif // COOKIEJAR_H
57