diff --git a/src/export/webviewexporter.cpp b/src/export/webviewexporter.cpp index ffb3e843..d5070e3b 100644 --- a/src/export/webviewexporter.cpp +++ b/src/export/webviewexporter.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include using namespace vnotex; @@ -348,7 +349,7 @@ void WebViewExporter::prepareWkhtmltopdfArguments(const ExportPdfOption &p_pdfOp if (p_pdfOption.m_addTableOfContents) { m_wkhtmltopdfArgs << "toc"; m_wkhtmltopdfArgs << "--toc-text-size-shrink" << "1.0"; - m_wkhtmltopdfArgs << "--toc-header-text" << tr("Table of Contents"); + m_wkhtmltopdfArgs << "--toc-header-text" << HtmlUtils::unicodeEncode(tr("Table of Contents")); } } diff --git a/src/utils/htmlutils.cpp b/src/utils/htmlutils.cpp index bddd4782..f1c439b8 100644 --- a/src/utils/htmlutils.cpp +++ b/src/utils/htmlutils.cpp @@ -16,3 +16,17 @@ QString HtmlUtils::escapeHtml(QString p_text) p_text.replace(">", ">").replace("<", "<").replace("&", "&"); return p_text; } + +QString HtmlUtils::unicodeEncode(const QString &p_text) +{ + QString encodedStr; + for (const auto ch : p_text) { + if (ch.unicode() > 255) { + encodedStr += QString("&#%1;").arg(static_cast(ch.unicode())); + } else { + encodedStr += ch; + } + } + + return encodedStr; +} diff --git a/src/utils/htmlutils.h b/src/utils/htmlutils.h index f6feec63..f49239b2 100644 --- a/src/utils/htmlutils.h +++ b/src/utils/htmlutils.h @@ -13,6 +13,8 @@ namespace vnotex static bool hasOnlyImgTag(const QString &p_html); static QString escapeHtml(QString p_text); + + static QString unicodeEncode(const QString &p_text); }; } diff --git a/src/widgets/toolbarhelper.cpp b/src/widgets/toolbarhelper.cpp index 7f3af67b..df5bf56e 100644 --- a/src/widgets/toolbarhelper.cpp +++ b/src/widgets/toolbarhelper.cpp @@ -300,51 +300,6 @@ QToolBar *ToolBarHelper::setupSettingsToolBar(MainWindow *p_win, QToolBar *p_too return tb; } -void ToolBarHelper::setupConfigurationMenu(QMenu *p_menu) -{ - auto menu = p_menu->addMenu(MainWindow::tr("Configuration")); - - menu->addAction(MainWindow::tr("Edit User Configuration File"), - menu, - []() { - auto file = ConfigMgr::getInst().getConfigFilePath(ConfigMgr::Source::User); - auto paras = QSharedPointer::create(); - paras->m_sessionEnabled = false; - emit VNoteX::getInst().openFileRequested(file, paras); - }); - - menu->addAction(MainWindow::tr("Open User Configuration Folder"), - menu, - []() { - auto folderPath = ConfigMgr::getInst().getUserFolder(); - WidgetUtils::openUrlByDesktop(QUrl::fromLocalFile(folderPath)); - }); - - menu->addAction(MainWindow::tr("Open Default Configuration Folder"), - menu, - []() { - auto folderPath = ConfigMgr::getInst().getAppFolder(); - WidgetUtils::openUrlByDesktop(QUrl::fromLocalFile(folderPath)); - }); - - menu->addSeparator(); - - auto act = menu->addAction(MainWindow::tr("Edit Markdown User Styles"), - menu, - []() { - const auto file = ConfigMgr::getInst().getUserMarkdownUserStyleFile(); - auto paras = QSharedPointer::create(); - paras->m_sessionEnabled = false; - paras->m_hooks[FileOpenParameters::PostSave] = []() { - qDebug() << "post save"; - const auto &markdownConfig = ConfigMgr::getInst().getEditorConfig().getMarkdownEditorConfig(); - HtmlTemplateHelper::updateMarkdownViewerTemplate(markdownConfig, true); - }; - emit VNoteX::getInst().openFileRequested(file, paras); - }); - act->setStatusTip(MainWindow::tr("Edit the user styles of Markdown editor read mode")); -} - static const QString c_fgPalette = QStringLiteral("widgets#toolbar#icon#fg"); static const QString c_disabledPalette = QStringLiteral("widgets#toolbar#icon#disabled#fg"); static const QString c_dangerousPalette = QStringLiteral("widgets#toolbar#icon#danger#fg"); @@ -543,7 +498,47 @@ void ToolBarHelper::setupSettingsButton(MainWindow *p_win, QToolBar *p_toolBar) menu->addSeparator(); - setupConfigurationMenu(menu); + menu->addAction(MainWindow::tr("Edit User Configuration File"), + menu, + []() { + auto file = ConfigMgr::getInst().getConfigFilePath(ConfigMgr::Source::User); + auto paras = QSharedPointer::create(); + paras->m_sessionEnabled = false; + emit VNoteX::getInst().openFileRequested(file, paras); + }); + + menu->addAction(MainWindow::tr("Open User Configuration Folder"), + menu, + []() { + auto folderPath = ConfigMgr::getInst().getUserFolder(); + WidgetUtils::openUrlByDesktop(QUrl::fromLocalFile(folderPath)); + }); + + menu->addAction(MainWindow::tr("Open Default Configuration Folder"), + menu, + []() { + auto folderPath = ConfigMgr::getInst().getAppFolder(); + WidgetUtils::openUrlByDesktop(QUrl::fromLocalFile(folderPath)); + }); + + menu->addSeparator(); + + { + auto act = menu->addAction(MainWindow::tr("Edit Markdown User Styles"), + menu, + []() { + const auto file = ConfigMgr::getInst().getUserMarkdownUserStyleFile(); + auto paras = QSharedPointer::create(); + paras->m_sessionEnabled = false; + paras->m_hooks[FileOpenParameters::PostSave] = []() { + qDebug() << "post save"; + const auto &markdownConfig = ConfigMgr::getInst().getEditorConfig().getMarkdownEditorConfig(); + HtmlTemplateHelper::updateMarkdownViewerTemplate(markdownConfig, true); + }; + emit VNoteX::getInst().openFileRequested(file, paras); + }); + act->setStatusTip(MainWindow::tr("Edit the user styles of Markdown editor read mode")); + } menu->addSeparator(); @@ -552,27 +547,12 @@ void ToolBarHelper::setupSettingsButton(MainWindow *p_win, QToolBar *p_toolBar) [p_win]() { p_win->resetStateAndGeometry(); }); - - menu->addSeparator(); - - menu->addAction(MainWindow::tr("Restart"), - menu, - [p_win]() { - p_win->restart(); - }); - - auto quitAct = menu->addAction(MainWindow::tr("Quit"), - menu, - [p_win]() { - p_win->quitApp(); - }); - quitAct->setMenuRole(QAction::QuitRole); - WidgetUtils::addActionShortcut(quitAct, - coreConfig.getShortcut(CoreConfig::Shortcut::Quit)); } void ToolBarHelper::setupMenuButton(MainWindow *p_win, QToolBar *p_toolBar) { + const auto &coreConfig = ConfigMgr::getInst().getCoreConfig(); + auto act = p_toolBar->addAction(generateIcon("menu.svg"), MainWindow::tr("Menu")); auto btn = dynamic_cast(p_toolBar->widgetForAction(act)); Q_ASSERT(btn); @@ -637,13 +617,6 @@ void ToolBarHelper::setupMenuButton(MainWindow *p_win, QToolBar *p_toolBar) helpMenu->addSeparator(); - helpMenu->addAction(MainWindow::tr("Check for Updates"), - helpMenu, - [p_win]() { - Updater updater(p_win); - updater.exec(); - }); - helpMenu->addAction(MainWindow::tr("Contributors"), helpMenu, []() { @@ -664,4 +637,29 @@ void ToolBarHelper::setupMenuButton(MainWindow *p_win, QToolBar *p_toolBar) MainWindow::connect(aboutQtAct, &QAction::triggered, qApp, &QApplication::aboutQt); } + + menu->addSeparator(); + + menu->addAction(MainWindow::tr("Check for Updates"), + menu, + [p_win]() { + Updater updater(p_win); + updater.exec(); + }); + + + menu->addAction(MainWindow::tr("Restart"), + menu, + [p_win]() { + p_win->restart(); + }); + + auto quitAct = menu->addAction(MainWindow::tr("Quit"), + menu, + [p_win]() { + p_win->quitApp(); + }); + quitAct->setMenuRole(QAction::QuitRole); + WidgetUtils::addActionShortcut(quitAct, + coreConfig.getShortcut(CoreConfig::Shortcut::Quit)); } diff --git a/src/widgets/toolbarhelper.h b/src/widgets/toolbarhelper.h index 045721a3..c31a7652 100644 --- a/src/widgets/toolbarhelper.h +++ b/src/widgets/toolbarhelper.h @@ -37,8 +37,6 @@ namespace vnotex static void updateQuickAccessMenu(QMenu *p_menu); - static void setupConfigurationMenu(QMenu *p_menu); - static void setupExpandButton(MainWindow *p_win, QToolBar *p_toolBar); static void setupSettingsButton(MainWindow *p_win, QToolBar *p_toolBar);