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 }