1 /* 2 SPDX-FileCopyrightText: 2018-2021 Laurent Montel <montel@kde.org> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #pragma once 8 9 #include <MessageComposer/PluginEditorConvertTextInterface> 10 #include <QHash> 11 #include <QObject> 12 class QWidget; 13 namespace KPIMTextEdit 14 { 15 class RichTextComposer; 16 } 17 class KActionCollection; 18 class KMailPluginEditorConvertTextManagerInterface : public QObject 19 { 20 Q_OBJECT 21 public: 22 explicit KMailPluginEditorConvertTextManagerInterface(QObject *parent = nullptr); 23 ~KMailPluginEditorConvertTextManagerInterface() override; 24 QWidget *parentWidget() const; 25 void setParentWidget(QWidget *parentWidget); 26 27 KActionCollection *actionCollection() const; 28 void setActionCollection(KActionCollection *actionCollection); 29 30 void initializePlugins(); 31 32 KPIMTextEdit::RichTextComposer *richTextEditor() const; 33 void setRichTextEditor(KPIMTextEdit::RichTextComposer *richTextEditor); 34 35 Q_REQUIRED_RESULT QHash<MessageComposer::PluginActionType::Type, QList<QAction *>> actionsType(); 36 Q_REQUIRED_RESULT QList<QAction *> actionsType(MessageComposer::PluginActionType::Type type); 37 38 void reformatText(); 39 MessageComposer::PluginEditorConvertTextInterface::ConvertTextStatus convertTextToFormat(MessageComposer::TextPart *textPart); 40 41 void setInitialData(const MessageComposer::PluginEditorConverterInitialData &data); 42 void setDataBeforeConvertingText(const MessageComposer::PluginEditorConverterBeforeConvertingData &data); 43 void enableDisablePluginActions(bool richText); 44 45 Q_REQUIRED_RESULT QList<QWidget *> statusBarWidgetList(); 46 Q_SIGNALS: 47 void reformatingTextDone(); 48 49 private: 50 Q_DISABLE_COPY(KMailPluginEditorConvertTextManagerInterface) 51 QList<MessageComposer::PluginEditorConvertTextInterface *> mListPluginInterface; 52 QHash<MessageComposer::PluginActionType::Type, QList<QAction *>> mActionHash; 53 KPIMTextEdit::RichTextComposer *mRichTextEditor = nullptr; 54 QWidget *mParentWidget = nullptr; 55 KActionCollection *mActionCollection = nullptr; 56 QList<QWidget *> mStatusBarWidget; 57 }; 58 59