File indexing completed on 2025-02-16 04:49:26

0001 /*
0002    SPDX-FileCopyrightText: 2018-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "markdownplugin.h"
0008 #include "markdownconfiguredialog.h"
0009 #include "markdowninterface.h"
0010 #include <KLocalizedString>
0011 #include <KPluginFactory>
0012 
0013 #include <QPointer>
0014 
0015 K_PLUGIN_CLASS_WITH_JSON(MarkdownPlugin, "kmail_markdownplugin.json")
0016 
0017 MarkdownPlugin::MarkdownPlugin(QObject *parent, const QList<QVariant> &)
0018     : MessageComposer::PluginEditorConvertText(parent)
0019 {
0020 }
0021 
0022 MarkdownPlugin::~MarkdownPlugin() = default;
0023 
0024 MessageComposer::PluginEditorConvertTextInterface *MarkdownPlugin::createInterface(QObject *parent)
0025 {
0026     auto interface = new MarkdownInterface(parent);
0027     connect(this, &MarkdownPlugin::configChanged, interface, &MarkdownInterface::reloadConfig);
0028     return interface;
0029 }
0030 
0031 bool MarkdownPlugin::hasConfigureDialog() const
0032 {
0033     return true;
0034 }
0035 
0036 void MarkdownPlugin::showConfigureDialog(QWidget *parent)
0037 {
0038     Q_UNUSED(parent)
0039     QPointer<MarkdownConfigureDialog> dlg = new MarkdownConfigureDialog(parent);
0040     if (dlg->exec()) {
0041         Q_EMIT configChanged();
0042     }
0043     delete dlg;
0044 }
0045 
0046 QString MarkdownPlugin::description() const
0047 {
0048     return i18n("Generate HTML from markdown language.");
0049 }
0050 
0051 bool MarkdownPlugin::canWorkOnHtml() const
0052 {
0053     return false;
0054 }
0055 
0056 bool MarkdownPlugin::hasStatusBarSupport() const
0057 {
0058     return true;
0059 }
0060 
0061 bool MarkdownPlugin::hasPopupMenuSupport() const
0062 {
0063     return true;
0064 }
0065 
0066 bool MarkdownPlugin::hasToolBarSupport() const
0067 {
0068     return false;
0069 }
0070 
0071 #include "markdownplugin.moc"
0072 
0073 #include "moc_markdownplugin.cpp"