File indexing completed on 2024-05-19 05:00:54

0001 /*
0002     SPDX-FileCopyrightText: 2000 Dawit Alemayehu <adawit@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef KCOOKIESPOLICYSELECTIONDLG_H
0008 #define KCOOKIESPOLICYSELECTIONDLG_H
0009 
0010 #include "ui_kcookiespolicyselectiondlg.h"
0011 #include "interfaces/cookiejar.h"
0012 
0013 #include <KLazyLocalizedString>
0014 
0015 #include <QDialog>
0016 
0017 class QWidget;
0018 class QDialogButtonBox;
0019 
0020 class KCookieAdvice
0021 {
0022 public:
0023 
0024     static const char *adviceToStr(KonqInterfaces::CookieJar::CookieAdvice advice)
0025     {
0026         switch (advice) {
0027         case KonqInterfaces::CookieJar::CookieAdvice::Accept:
0028             return kli18n("Accept").untranslatedText();
0029         case KonqInterfaces::CookieJar::CookieAdvice::AcceptForSession:
0030             return kli18n("Accept For Session").untranslatedText();
0031         case KonqInterfaces::CookieJar::CookieAdvice::Reject:
0032             return kli18n("Reject").untranslatedText();
0033         case KonqInterfaces::CookieJar::CookieAdvice::Ask:
0034             return kli18n("Ask").untranslatedText();
0035         default:
0036             return kli18n("Do Not Know").untranslatedText();
0037         }
0038     }
0039 
0040     static KonqInterfaces::CookieJar::CookieAdvice strToAdvice(const QString &_str)
0041     {
0042         if (_str.isEmpty()) {
0043             return KonqInterfaces::CookieJar::CookieAdvice::Unknown;
0044         }
0045 
0046         QString advice = _str.toLower().remove(QLatin1Char(' '));
0047 
0048         if (advice == QLatin1String("accept")) {
0049             return KonqInterfaces::CookieJar::CookieAdvice::Accept;
0050         } else if (advice == QLatin1String("acceptforsession")) {
0051             return KonqInterfaces::CookieJar::CookieAdvice::AcceptForSession;
0052         } else if (advice == QLatin1String("reject")) {
0053             return KonqInterfaces::CookieJar::CookieAdvice::Reject;
0054         } else if (advice == QLatin1String("ask")) {
0055             return KonqInterfaces::CookieJar::CookieAdvice::Ask;
0056         } else {
0057             return KonqInterfaces::CookieJar::CookieAdvice::Unknown;
0058         }
0059     }
0060 };
0061 
0062 class KCookiesPolicySelectionDlg : public QDialog
0063 {
0064     Q_OBJECT
0065 
0066 public:
0067     explicit KCookiesPolicySelectionDlg(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
0068     ~KCookiesPolicySelectionDlg() override
0069     {
0070     }
0071 
0072     KonqInterfaces::CookieJar::CookieAdvice advice() const;
0073     QString domain() const;
0074 
0075     void setEnableHostEdit(bool, const QString &host = QString());
0076     void setPolicy(KonqInterfaces::CookieJar::CookieAdvice policy);
0077 
0078 protected Q_SLOTS:
0079     void slotTextChanged(const QString &);
0080     void slotPolicyChanged(const QString &);
0081 
0082 private:
0083     KonqInterfaces::CookieJar::CookieAdvice mOldPolicy = KonqInterfaces::CookieJar::CookieAdvice::Accept;
0084     Ui::KCookiesPolicySelectionDlgUI mUi;
0085     QDialogButtonBox *mButtonBox;
0086 };
0087 #endif