Commit dbfaedd5 authored by Laurent Montel's avatar Laurent Montel 😁

Load plugins here (still a bug here)

parent 776519a0
......@@ -66,9 +66,9 @@ find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED DBus Network Test Widget
set(LIBGRAVATAR_VERSION_LIB "5.10.40")
set(MAILCOMMON_LIB_VERSION_LIB "5.10.42")
set(KDEPIM_APPS_LIB_VERSION_LIB "5.10.40")
set(MESSAGELIB_LIB_VERSION_LIB "5.10.47")
set(MESSAGELIB_LIB_VERSION_LIB "5.10.48")
set(LIBKLEO_LIB_VERSION_LIB "5.10.40")
set(PIMCOMMON_LIB_VERSION_LIB "5.10.41")
set(PIMCOMMON_LIB_VERSION_LIB "5.10.42")
set(LIBKDEPIM_LIB_VERSION_LIB "5.10.41")
set(LIBKSIEVE_LIB_VERSION_LIB "5.10.40")
......
......@@ -163,6 +163,7 @@ set(kmailprivate_editor_plugininterface_LIB_SRCS
editor/plugininterface/kmailplugineditorcheckbeforesendmanagerinterface.cpp
editor/plugininterface/kmailplugineditorinitmanagerinterface.cpp
editor/plugininterface/kmailplugineditorconverttextmanagerinterface.cpp
editor/plugininterface/kmailplugingrammareditormanagerinterface.cpp
)
set(kmailprivate_checkindexing_LIB_SRCS
......
......@@ -32,6 +32,7 @@
#include "editor/plugininterface/kmailplugineditorinitmanagerinterface.h"
#include "editor/plugininterface/kmailplugineditormanagerinterface.h"
#include "editor/plugininterface/kmailplugineditorconverttextmanagerinterface.h"
#include "editor/plugininterface/kmailplugingrammareditormanagerinterface.h"
#include "editor/potentialphishingemail/potentialphishingemailjob.h"
#include "editor/potentialphishingemail/potentialphishingemailwarning.h"
#include "editor/warningwidgets/incorrectidentityfolderwarning.h"
......@@ -141,6 +142,7 @@
#include <PimCommon/CustomToolsWidgetng>
#include <PimCommon/KActionMenuChangeCase>
#include <PimCommon/LineEditWithAutoCorrection>
#include <PimCommon/CustomToolsPluginManager>
#include <SendLater/SendLaterDialog>
#include <SendLater/SendLaterInfo>
......@@ -247,6 +249,8 @@ KMComposerWin::KMComposerWin(const KMime::Message::Ptr &aMsg, bool lastSignState
mPluginEditorInitManagerInterface = new KMailPluginEditorInitManagerInterface(this);
mPluginEditorConvertTextManagerInterface = new KMailPluginEditorConvertTextManagerInterface(this);
mPluginEditorGrammarManagerInterface = new KMailPluginGrammarEditorManagerInterface(this);
connect(mComposerBase, &MessageComposer::ComposerViewBase::disableHtml, this, &KMComposerWin::disableHtml);
connect(mComposerBase, &MessageComposer::ComposerViewBase::enableHtml, this, &KMComposerWin::enableHtml);
connect(mComposerBase, &MessageComposer::ComposerViewBase::failed, this, &KMComposerWin::slotSendFailed);
......@@ -399,7 +403,8 @@ KMComposerWin::KMComposerWin(const KMime::Message::Ptr &aMsg, bool lastSignState
setWindowTitle(i18n("Composer"));
setMinimumSize(200, 200);
mCustomToolsWidget = new PimCommon::CustomToolsWidgetNg(actionCollection(), this);
mCustomToolsWidget = new PimCommon::CustomToolsWidgetNg(this);
mCustomToolsWidget->initializeView(actionCollection(), PimCommon::CustomToolsPluginManager::self()->pluginsList());
mSplitter->addWidget(mCustomToolsWidget);
connect(mCustomToolsWidget, &PimCommon::CustomToolsWidgetNg::insertText, this, &KMComposerWin::slotInsertShortUrl);
......@@ -436,6 +441,12 @@ KMComposerWin::KMComposerWin(const KMime::Message::Ptr &aMsg, bool lastSignState
mPluginEditorConvertTextManagerInterface->setActionCollection(actionCollection());
mPluginEditorConvertTextManagerInterface->setRichTextEditor(composerEditorNg);
mPluginEditorGrammarManagerInterface->setParentWidget(this);
mPluginEditorGrammarManagerInterface->setActionCollection(actionCollection());
mPluginEditorGrammarManagerInterface->setRichTextEditor(composerEditorNg);
mPluginEditorGrammarManagerInterface->setCustomToolsWidget(mCustomToolsWidget);
setupStatusBar(attachmentView->widget());
setupActions();
setupEditor();
......@@ -1290,6 +1301,7 @@ void KMComposerWin::setupActions()
mPluginEditorCheckBeforeSendManagerInterface->initializePlugins();
mPluginEditorInitManagerInterface->initializePlugins();
mPluginEditorConvertTextManagerInterface->initializePlugins();
mPluginEditorGrammarManagerInterface->initializePlugins();
mHideMenuBarAction = KStandardAction::showMenubar(this, &KMComposerWin::slotToggleMenubar, actionCollection());
mHideMenuBarAction->setChecked(KMailSettings::self()->composerShowMenuBar());
......
......@@ -74,6 +74,7 @@ class KMailPluginEditorCheckBeforeSendManagerInterface;
class KMailPluginEditorInitManagerInterface;
class IncorrectIdentityFolderWarning;
class KMailPluginEditorConvertTextManagerInterface;
class KMailPluginGrammarEditorManagerInterface;
namespace MailTransport {
class Transport;
}
......@@ -661,6 +662,7 @@ private:
KMailPluginEditorCheckBeforeSendManagerInterface *mPluginEditorCheckBeforeSendManagerInterface = nullptr;
KMailPluginEditorInitManagerInterface *mPluginEditorInitManagerInterface = nullptr;
KMailPluginEditorConvertTextManagerInterface *mPluginEditorConvertTextManagerInterface = nullptr;
KMailPluginGrammarEditorManagerInterface *mPluginEditorGrammarManagerInterface = nullptr;
};
#endif
/*
Copyright (C) 2019 Montel Laurent <montel@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "kmailplugingrammareditormanagerinterface.h"
#include "kmail_debug.h"
#include <PimCommon/CustomToolsWidgetng>
#include <PimCommon/CustomToolsPlugin>
#include <MessageComposer/PluginEditorGrammarManager>
#include <MessageComposer/PluginEditorGrammarCustomToolsViewInterface>
KMailPluginGrammarEditorManagerInterface::KMailPluginGrammarEditorManagerInterface(QObject *parent)
: QObject(parent)
{
}
KPIMTextEdit::RichTextComposer *KMailPluginGrammarEditorManagerInterface::richTextEditor() const
{
return mRichTextEditor;
}
void KMailPluginGrammarEditorManagerInterface::setRichTextEditor(KPIMTextEdit::RichTextComposer *richTextEditor)
{
mRichTextEditor = richTextEditor;
}
QWidget *KMailPluginGrammarEditorManagerInterface::parentWidget() const
{
return mParentWidget;
}
void KMailPluginGrammarEditorManagerInterface::setParentWidget(QWidget *parentWidget)
{
mParentWidget = parentWidget;
}
KActionCollection *KMailPluginGrammarEditorManagerInterface::actionCollection() const
{
return mActionCollection;
}
void KMailPluginGrammarEditorManagerInterface::setActionCollection(KActionCollection *actionCollection)
{
mActionCollection = actionCollection;
}
PimCommon::CustomToolsWidgetNg *KMailPluginGrammarEditorManagerInterface::customToolsWidget() const
{
return mCustomToolsWidget;
}
void KMailPluginGrammarEditorManagerInterface::setCustomToolsWidget(PimCommon::CustomToolsWidgetNg *customToolsWidget)
{
mCustomToolsWidget = customToolsWidget;
}
void KMailPluginGrammarEditorManagerInterface::initializePlugins()
{
if (mWasInitialized) {
qCDebug(KMAIL_LOG) << "KMailPluginGrammarEditorManagerInterface : Plugin was already initialized. This is a bug";
return;
}
if (!mRichTextEditor) {
qCDebug(KMAIL_LOG) << "KMailPluginGrammarEditorManagerInterface : Richtexteditor is null. This is a bug";
return;
}
if (!mParentWidget) {
qCDebug(KMAIL_LOG) << "KMailPluginGrammarEditorManagerInterface : Parent is null. This is a bug";
}
if (!mCustomToolsWidget) {
qCDebug(KMAIL_LOG) << "KMailPluginGrammarEditorManagerInterface : mCustomToolsWidget is null. This is a bug";
return;
}
const QVector<PimCommon::CustomToolsPlugin *> lstPlugin = MessageComposer::PluginEditorGrammarManager::self()->pluginsList();
qDebug() << "lstPlugin " << lstPlugin.count();
for (PimCommon::CustomToolsPlugin *plugin : lstPlugin) {
if (plugin->isEnabled()) {
MessageComposer::PluginEditorGrammarCustomToolsViewInterface *interface = static_cast<MessageComposer::PluginEditorGrammarCustomToolsViewInterface*>(plugin->createView(mActionCollection, mCustomToolsWidget));
mCustomToolsWidget->addCustomToolViewInterface(interface);
interface->setParentWidget(mParentWidget);
interface->setRichTextEditor(mRichTextEditor);
// interface->reloadConfig();
// if (!interface->exec()) {
// qCWarning(KMAIL_LOG) << "KMailPluginGrammarEditorManagerInterface::initializePlugins: error during execution of plugin:" << interface;
// }
}
}
mWasInitialized = true;
}
/*
Copyright (C) 2019 Montel Laurent <montel@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef KMAILPLUGINGrammarEDITORMANAGERINTERFACE_H
#define KMAILPLUGINGrammarEDITORMANAGERINTERFACE_H
#include <QObject>
namespace KPIMTextEdit {
class RichTextComposer;
}
namespace PimCommon {
class CustomToolsWidgetNg;
}
class KActionCollection;
class KMailPluginGrammarEditorManagerInterface : public QObject
{
Q_OBJECT
public:
explicit KMailPluginGrammarEditorManagerInterface(QObject *parent = nullptr);
~KMailPluginGrammarEditorManagerInterface() = default;
KPIMTextEdit::RichTextComposer *richTextEditor() const;
void setRichTextEditor(KPIMTextEdit::RichTextComposer *richTextEditor);
QWidget *parentWidget() const;
void setParentWidget(QWidget *parentWidget);
void initializePlugins();
KActionCollection *actionCollection() const;
void setActionCollection(KActionCollection *actionCollection);
PimCommon::CustomToolsWidgetNg *customToolsWidget() const;
void setCustomToolsWidget(PimCommon::CustomToolsWidgetNg *customToolsWidget);
private:
Q_DISABLE_COPY(KMailPluginGrammarEditorManagerInterface)
KPIMTextEdit::RichTextComposer *mRichTextEditor = nullptr;
PimCommon::CustomToolsWidgetNg *mCustomToolsWidget = nullptr;
QWidget *mParentWidget = nullptr;
KActionCollection *mActionCollection = nullptr;
bool mWasInitialized = false;
};
#endif // KMAILPLUGINGrammarEDITORMANAGERINTERFACE_H
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment