File indexing completed on 2024-06-02 05:30:27

0001 /*
0002  * SPDX-FileCopyrightText: 2006 Dmitry Morozhnikov <dmiceman@ubiz.ru>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #pragma once
0008 
0009 #include "templateparser_export.h"
0010 
0011 #include <QObject>
0012 #include <memory>
0013 
0014 class KActionCollection;
0015 class KActionMenu;
0016 
0017 namespace TemplateParser
0018 {
0019 class CustomTemplatesMenuPrivate;
0020 /**
0021  * @brief The CustomTemplatesMenu class
0022  */
0023 class TEMPLATEPARSER_EXPORT CustomTemplatesMenu : public QObject
0024 {
0025     Q_OBJECT
0026 
0027 public:
0028     explicit CustomTemplatesMenu(QWidget *parent, KActionCollection *ac);
0029     ~CustomTemplatesMenu() override;
0030 
0031     [[nodiscard]] KActionMenu *replyActionMenu() const;
0032     [[nodiscard]] KActionMenu *replyAllActionMenu() const;
0033     [[nodiscard]] KActionMenu *forwardActionMenu() const;
0034 
0035 public Q_SLOTS:
0036     void update();
0037 
0038 Q_SIGNALS:
0039     void replyTemplateSelected(const QString &tmpl);
0040     void replyAllTemplateSelected(const QString &tmpl);
0041     void forwardTemplateSelected(const QString &tmpl);
0042 
0043 private:
0044     TEMPLATEPARSER_NO_EXPORT void slotReplySelected(int idx);
0045     TEMPLATEPARSER_NO_EXPORT void slotReplyAllSelected(int idx);
0046     TEMPLATEPARSER_NO_EXPORT void slotForwardSelected(int idx);
0047     TEMPLATEPARSER_NO_EXPORT void clear();
0048     std::unique_ptr<CustomTemplatesMenuPrivate> const d;
0049 };
0050 }