File indexing completed on 2024-05-12 15:41:57

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 <KLazyLocalizedString>
0012 #include <QDialog>
0013 
0014 class QWidget;
0015 class QDialogButtonBox;
0016 
0017 class KCookieAdvice
0018 {
0019 public:
0020     enum Value { Dunno = 0, Accept, AcceptForSession, Reject, Ask };
0021 
0022     static const char *adviceToStr(const int &advice)
0023     {
0024         switch (advice) {
0025         case KCookieAdvice::Accept:
0026             return kli18n("Accept").untranslatedText();
0027         case KCookieAdvice::AcceptForSession:
0028             return kli18n("Accept For Session").untranslatedText();
0029         case KCookieAdvice::Reject:
0030             return kli18n("Reject").untranslatedText();
0031         case KCookieAdvice::Ask:
0032             return kli18n("Ask").untranslatedText();
0033         default:
0034             return kli18n("Do Not Know").untranslatedText();
0035         }
0036     }
0037 
0038     static KCookieAdvice::Value strToAdvice(const QString &_str)
0039     {
0040         if (_str.isEmpty())
0041             return KCookieAdvice::Dunno;
0042 
0043         QString advice = _str.toLower().remove(QLatin1Char(' '));
0044 
0045         if (advice == QLatin1String("accept"))
0046             return KCookieAdvice::Accept;
0047         else if (advice == QLatin1String("acceptforsession"))
0048             return KCookieAdvice::AcceptForSession;
0049         else if (advice == QLatin1String("reject"))
0050             return KCookieAdvice::Reject;
0051         else if (advice == QLatin1String("ask"))
0052             return KCookieAdvice::Ask;
0053 
0054         return KCookieAdvice::Dunno;
0055     }
0056 };
0057 
0058 class KCookiesPolicySelectionDlg : public QDialog
0059 {
0060     Q_OBJECT
0061 
0062 public:
0063     explicit KCookiesPolicySelectionDlg(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
0064     ~KCookiesPolicySelectionDlg() override
0065     {
0066     }
0067 
0068     int advice() const;
0069     QString domain() const;
0070 
0071     void setEnableHostEdit(bool, const QString &host = QString());
0072     void setPolicy(int policy);
0073 
0074 protected Q_SLOTS:
0075     void slotTextChanged(const QString &);
0076     void slotPolicyChanged(const QString &);
0077 
0078 private:
0079     int mOldPolicy;
0080     Ui::KCookiesPolicySelectionDlgUI mUi;
0081     QDialogButtonBox *mButtonBox;
0082 };
0083 #endif