File indexing completed on 2024-05-26 05:25:19
0001 /* 0002 snippet feature from kdevelop/plugins/snippet/ 0003 0004 SPDX-FileCopyrightText: 2007 Robert Gruber <rgruber@users.sourceforge.net> 0005 SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org> 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #pragma once 0011 0012 #include <QDialog> 0013 0014 class KActionCollection; 0015 0016 class QAbstractItemModel; 0017 class QModelIndex; 0018 class QPushButton; 0019 0020 namespace MailCommon 0021 { 0022 class SnippetWidget; 0023 class SnippetDialog : public QDialog 0024 { 0025 Q_OBJECT 0026 0027 public: 0028 explicit SnippetDialog(KActionCollection *actionCollection, bool inGroupMode, QWidget *parent = nullptr); 0029 ~SnippetDialog() override; 0030 0031 void setName(const QString &name); 0032 [[nodiscard]] QString name() const; 0033 0034 void setText(const QString &text); 0035 [[nodiscard]] QString text() const; 0036 0037 void setSubject(const QString &text); 0038 [[nodiscard]] QString subject() const; 0039 0040 void setKeySequence(const QKeySequence &sequence); 0041 [[nodiscard]] QKeySequence keySequence() const; 0042 0043 void setKeyword(const QString &keyword); 0044 [[nodiscard]] QString keyword() const; 0045 0046 void setTo(const QString &keyword); 0047 [[nodiscard]] QString to() const; 0048 0049 void setCc(const QString &keyword); 0050 [[nodiscard]] QString cc() const; 0051 0052 void setBcc(const QString &keyword); 0053 [[nodiscard]] QString bcc() const; 0054 0055 void setGroupModel(QAbstractItemModel *model); 0056 0057 void setGroupIndex(const QModelIndex &index); 0058 [[nodiscard]] QModelIndex groupIndex() const; 0059 0060 void setAttachment(const QString &keyword); 0061 [[nodiscard]] QString attachment() const; 0062 0063 private: 0064 void slotTextChanged(); 0065 void slotGroupChanged(); 0066 bool snippetIsValid() const; 0067 void writeConfig(); 0068 void readConfig(); 0069 0070 SnippetWidget *const mSnippetWidget; 0071 QPushButton *mOkButton = nullptr; 0072 bool mInGroupMode = false; 0073 }; 0074 }