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 }