File indexing completed on 2024-05-12 16:06:44

0001 /*
0002     SPDX-FileCopyrightText: 2017 Julian Wolff <wolff@julianwolff.de>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "generator_md.h"
0008 
0009 #include "converter.h"
0010 #include "debug_md.h"
0011 
0012 #include <KAboutData>
0013 #include <KConfigDialog>
0014 #include <KLocalizedString>
0015 
0016 #include <QCheckBox>
0017 
0018 OKULAR_EXPORT_PLUGIN(MarkdownGenerator, "libokularGenerator_md.json")
0019 
0020 MarkdownGenerator::MarkdownGenerator(QObject *parent, const QVariantList &args)
0021     : Okular::TextDocumentGenerator(new Markdown::Converter, QStringLiteral("okular_markdown_generator_settings"), parent, args)
0022 {
0023     Okular::TextDocumentSettings *mdSettings = generalSettings();
0024 
0025     mdSettings->addItemBool(QStringLiteral("SmartyPants"), m_isFancyPantsConfigEnabled, true);
0026     mdSettings->load();
0027     m_wasFancyPantsConfigEnabled = m_isFancyPantsConfigEnabled;
0028     Markdown::Converter *c = static_cast<Markdown::Converter *>(converter());
0029     c->setFancyPantsEnabled(m_isFancyPantsConfigEnabled);
0030 }
0031 
0032 bool MarkdownGenerator::reparseConfig()
0033 {
0034     const bool textDocumentGeneratorChangedConfig = Okular::TextDocumentGenerator::reparseConfig();
0035 
0036     if (m_wasFancyPantsConfigEnabled != m_isFancyPantsConfigEnabled) {
0037         m_wasFancyPantsConfigEnabled = m_isFancyPantsConfigEnabled;
0038 
0039         Markdown::Converter *c = static_cast<Markdown::Converter *>(converter());
0040         c->setFancyPantsEnabled(m_isFancyPantsConfigEnabled);
0041         if (c->document()) {
0042             c->convertAgain();
0043             setTextDocument(c->document());
0044         }
0045 
0046         return true;
0047     }
0048 
0049     return textDocumentGeneratorChangedConfig;
0050 }
0051 
0052 void MarkdownGenerator::addPages(KConfigDialog *dlg)
0053 {
0054     Okular::TextDocumentSettingsWidget *widget = new Okular::TextDocumentSettingsWidget();
0055 
0056     QCheckBox *enableSmartyPants = new QCheckBox(dlg);
0057     enableSmartyPants->setObjectName(QStringLiteral("kcfg_SmartyPants"));
0058     widget->addRow(i18n("Enable SmartyPants formatting"), enableSmartyPants);
0059 
0060     dlg->addPage(widget, generalSettings(), i18n("Markdown"), QStringLiteral("text-markdown"), i18n("Markdown Backend Configuration"));
0061 }
0062 
0063 Q_LOGGING_CATEGORY(OkularMdDebug, "org.kde.okular.generators.md", QtWarningMsg)
0064 
0065 #include "generator_md.moc"