| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- #include "markdowneditorconfig.h"
- #include <QDebug>
- #include "texteditorconfig.h"
- #include "mainconfig.h"
- using namespace vnotex;
- #define READSTR(key) readString(appObj, userObj, (key))
- #define READBOOL(key) readBool(appObj, userObj, (key))
- #define READREAL(key) readReal(appObj, userObj, (key))
- MarkdownEditorConfig::MarkdownEditorConfig(ConfigMgr *p_mgr,
- IConfig *p_topConfig,
- const QSharedPointer<TextEditorConfig> &p_textEditorConfig)
- : IConfig(p_mgr, p_topConfig),
- m_textEditorConfig(p_textEditorConfig)
- {
- m_sessionName = QStringLiteral("markdown_editor");
- }
- void MarkdownEditorConfig::init(const QJsonObject &p_app, const QJsonObject &p_user)
- {
- const auto appObj = p_app.value(m_sessionName).toObject();
- const auto userObj = p_user.value(m_sessionName).toObject();
- loadViewerResource(appObj, userObj);
- m_webPlantUml = READBOOL(QStringLiteral("web_plantuml"));
- m_webGraphviz = READBOOL(QStringLiteral("web_graphviz"));
- m_prependDotInRelativeLink = READBOOL(QStringLiteral("prepend_dot_in_relative_link"));
- m_confirmBeforeClearObsoleteImages = READBOOL(QStringLiteral("confirm_before_clear_obsolete_images"));
- m_insertFileNameAsTitle = READBOOL(QStringLiteral("insert_file_name_as_title"));
- m_sectionNumberEnabled = READBOOL(QStringLiteral("section_number"));
- m_constrainImageWidthEnabled = READBOOL(QStringLiteral("constrain_image_width"));
- m_constrainInPlacePreviewWidthEnabled = READBOOL(QStringLiteral("constrain_inplace_preview_width"));
- m_zoomFactorInReadMode = READREAL(QStringLiteral("zoom_factor_in_read_mode"));
- m_fetchImagesInParseAndPaste = READBOOL(QStringLiteral("fetch_images_in_parse_and_paste"));
- m_protectFromXss = READBOOL(QStringLiteral("protect_from_xss"));
- m_htmlTagEnabled = READBOOL(QStringLiteral("html_tag"));
- m_autoBreakEnabled = READBOOL(QStringLiteral("auto_break"));
- m_linkifyEnabled = READBOOL(QStringLiteral("linkify"));
- }
- QJsonObject MarkdownEditorConfig::toJson() const
- {
- QJsonObject obj;
- obj[QStringLiteral("viewer_resource")] = saveViewerResource();
- obj[QStringLiteral("web_plantuml")] = m_webPlantUml;
- obj[QStringLiteral("web_graphviz")] = m_webGraphviz;
- obj[QStringLiteral("prepend_dot_in_relative_link")] = m_prependDotInRelativeLink;
- obj[QStringLiteral("confirm_before_clear_obsolete_images")] = m_confirmBeforeClearObsoleteImages;
- obj[QStringLiteral("insert_file_name_as_title")] = m_insertFileNameAsTitle;
- obj[QStringLiteral("section_number")] = m_sectionNumberEnabled;
- obj[QStringLiteral("constrain_image_width")] = m_constrainImageWidthEnabled;
- obj[QStringLiteral("constrain_inplace_preview_width")] = m_constrainInPlacePreviewWidthEnabled;
- obj[QStringLiteral("zoom_factor_in_read_mode")] = m_zoomFactorInReadMode;
- obj[QStringLiteral("fetch_images_in_parse_and_paste")] = m_fetchImagesInParseAndPaste;
- obj[QStringLiteral("protect_from_xss")] = m_protectFromXss;
- obj[QStringLiteral("html_tag")] = m_htmlTagEnabled;
- obj[QStringLiteral("auto_break")] = m_autoBreakEnabled;
- obj[QStringLiteral("linkify")] = m_linkifyEnabled;
- return obj;
- }
- TextEditorConfig &MarkdownEditorConfig::getTextEditorConfig()
- {
- return *m_textEditorConfig;
- }
- const TextEditorConfig &MarkdownEditorConfig::getTextEditorConfig() const
- {
- return *m_textEditorConfig;
- }
- int MarkdownEditorConfig::revision() const
- {
- return m_revision + m_textEditorConfig->revision();
- }
- void MarkdownEditorConfig::loadViewerResource(const QJsonObject &p_app, const QJsonObject &p_user)
- {
- const QString name(QStringLiteral("viewer_resource"));
- if (MainConfig::isVersionChanged()) {
- bool needOverride = p_app[QStringLiteral("override_viewer_resource")].toBool();
- if (needOverride) {
- qInfo() << "override \"viewer_resource\" in user configuration due to version change";
- m_viewerResource.init(p_app[name].toObject());
- return;
- }
- }
- if (p_user.contains(name)) {
- m_viewerResource.init(p_user[name].toObject());
- } else {
- m_viewerResource.init(p_app[name].toObject());
- }
- }
- QJsonObject MarkdownEditorConfig::saveViewerResource() const
- {
- return m_viewerResource.toJson();
- }
- const ViewerResource &MarkdownEditorConfig::getViewerResource() const
- {
- return m_viewerResource;
- }
- bool MarkdownEditorConfig::getWebPlantUml() const
- {
- return m_webPlantUml;
- }
- bool MarkdownEditorConfig::getWebGraphviz() const
- {
- return m_webGraphviz;
- }
- bool MarkdownEditorConfig::getPrependDotInRelativeLink() const
- {
- return m_prependDotInRelativeLink;
- }
- bool MarkdownEditorConfig::getConfirmBeforeClearObsoleteImages() const
- {
- return m_confirmBeforeClearObsoleteImages;
- }
- void MarkdownEditorConfig::setConfirmBeforeClearObsoleteImages(bool p_confirm)
- {
- updateConfig(m_confirmBeforeClearObsoleteImages,
- p_confirm,
- this);
- }
- bool MarkdownEditorConfig::getInsertFileNameAsTitle() const
- {
- return m_insertFileNameAsTitle;
- }
- void MarkdownEditorConfig::setInsertFileNameAsTitle(bool p_enabled)
- {
- updateConfig(m_insertFileNameAsTitle, p_enabled, this);
- }
- bool MarkdownEditorConfig::getSectionNumberEnabled() const
- {
- return m_sectionNumberEnabled;
- }
- void MarkdownEditorConfig::setSectionNumberEnabled(bool p_enabled)
- {
- updateConfig(m_sectionNumberEnabled, p_enabled, this);
- }
- bool MarkdownEditorConfig::getConstrainImageWidthEnabled() const
- {
- return m_constrainImageWidthEnabled;
- }
- void MarkdownEditorConfig::setConstrainImageWidthEnabled(bool p_enabled)
- {
- updateConfig(m_constrainImageWidthEnabled, p_enabled, this);
- }
- bool MarkdownEditorConfig::getConstrainInPlacePreviewWidthEnabled() const
- {
- return m_constrainInPlacePreviewWidthEnabled;
- }
- void MarkdownEditorConfig::setConstrainInPlacePreviewWidthEnabled(bool p_enabled)
- {
- updateConfig(m_constrainInPlacePreviewWidthEnabled, p_enabled, this);
- }
- qreal MarkdownEditorConfig::getZoomFactorInReadMode() const
- {
- return m_zoomFactorInReadMode;
- }
- void MarkdownEditorConfig::setZoomFactorInReadMode(qreal p_factor)
- {
- updateConfig(m_zoomFactorInReadMode, p_factor, this);
- }
- bool MarkdownEditorConfig::getFetchImagesInParseAndPaste() const
- {
- return m_fetchImagesInParseAndPaste;
- }
- void MarkdownEditorConfig::setFetchImagesInParseAndPaste(bool p_enabled)
- {
- updateConfig(m_fetchImagesInParseAndPaste, p_enabled, this);
- }
- bool MarkdownEditorConfig::getProtectFromXss() const
- {
- return m_protectFromXss;
- }
- bool MarkdownEditorConfig::getHtmlTagEnabled() const
- {
- return m_htmlTagEnabled;
- }
- void MarkdownEditorConfig::setHtmlTagEnabled(bool p_enabled)
- {
- updateConfig(m_htmlTagEnabled, p_enabled, this);
- }
- bool MarkdownEditorConfig::getAutoBreakEnabled() const
- {
- return m_autoBreakEnabled;
- }
- void MarkdownEditorConfig::setAutoBreakEnabled(bool p_enabled)
- {
- updateConfig(m_autoBreakEnabled, p_enabled, this);
- }
- bool MarkdownEditorConfig::getLinkifyEnabled() const
- {
- return m_linkifyEnabled;
- }
- void MarkdownEditorConfig::setLinkifyEnabled(bool p_enabled)
- {
- updateConfig(m_linkifyEnabled, p_enabled, this);
- }
|