File indexing completed on 2025-02-16 04:55:56

0001 /*
0002    SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 #pragma once
0007 
0008 #include <QDialog>
0009 #include <QListWidget>
0010 class QLineEdit;
0011 
0012 namespace KSieveUi
0013 {
0014 class SelectFlagsListWidget : public QListWidget
0015 {
0016     Q_OBJECT
0017 public:
0018     explicit SelectFlagsListWidget(QWidget *parent = nullptr);
0019     ~SelectFlagsListWidget() override;
0020 
0021     void setFlags(const QStringList &list);
0022     [[nodiscard]] QStringList flags() const;
0023 
0024 private:
0025     enum Type { FlagsRealName = Qt::UserRole + 1 };
0026     void init();
0027 };
0028 
0029 class SelectFlagsListDialog : public QDialog
0030 {
0031     Q_OBJECT
0032 public:
0033     explicit SelectFlagsListDialog(QWidget *parent = nullptr);
0034     ~SelectFlagsListDialog() override;
0035 
0036     void setFlags(const QStringList &list);
0037     [[nodiscard]] QStringList flags() const;
0038 
0039 private:
0040     void readConfig();
0041     void writeConfig();
0042     SelectFlagsListWidget *const mListWidget;
0043 };
0044 
0045 class SelectFlagsWidget : public QWidget
0046 {
0047     Q_OBJECT
0048 public:
0049     explicit SelectFlagsWidget(QWidget *parent = nullptr);
0050     ~SelectFlagsWidget() override;
0051 
0052     [[nodiscard]] QString code() const;
0053     void setFlags(const QStringList &flags);
0054 
0055 Q_SIGNALS:
0056     void valueChanged();
0057 
0058 private:
0059     void slotSelectFlags();
0060     QLineEdit *mEdit = nullptr;
0061 };
0062 }