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 }