From 55b835a97c2bda3dcb7b4d2926444e42e8f1a91b Mon Sep 17 00:00:00 2001 From: Le Tan Date: Tue, 18 Sep 2018 19:27:51 +0800 Subject: [PATCH] Exporter: add PDF-Like option for custom export --- src/dialog/vexportdialog.cpp | 8 ++++++++ src/dialog/vexportdialog.h | 7 +++++++ src/vexporter.cpp | 3 ++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/dialog/vexportdialog.cpp b/src/dialog/vexportdialog.cpp index 0b65d6dc..d20f90e7 100644 --- a/src/dialog/vexportdialog.cpp +++ b/src/dialog/vexportdialog.cpp @@ -515,6 +515,8 @@ void VExportDialog::initUIFields(MarkdownConverterType p_renderer) m_customAllInOneCB->setChecked(s_opt.m_customOpt.m_allInOne); + m_customPdfLikeCB->setChecked(s_opt.m_customOpt.m_pdfLike); + m_customFolderSepEdit->setText(s_opt.m_customOpt.m_folderSep); } @@ -593,6 +595,7 @@ void VExportDialog::startExport() g_config->getCssStyleUrl(renderStyle), g_config->getCodeBlockCssStyleUrl(renderCodeBlockStyle), m_customAllInOneCB->isChecked(), + m_customPdfLikeCB->isChecked(), m_customFolderSepEdit->text(), m_customTargetFileNameEdit->text())); @@ -1365,6 +1368,10 @@ QWidget *VExportDialog::setupCustomAdvancedSettings() m_customTargetFileNameEdit->setEnabled(checked); }); + // Enable PDF-like. + m_customPdfLikeCB = new QCheckBox(tr("PDF-Like"), this); + m_customPdfLikeCB->setToolTip(tr("Treat the exported file as PDF, such as wrapping line")); + // Input directory separator. m_customFolderSepEdit = new VLineEdit(this); m_customFolderSepEdit->setPlaceholderText(tr("Separator to concatenate input files directories")); @@ -1396,6 +1403,7 @@ QWidget *VExportDialog::setupCustomAdvancedSettings() advLayout->addWidget(m_customSuffixEdit, 0, 4, 1, 2); advLayout->addWidget(m_customAllInOneCB, 1, 1, 1, 2); + advLayout->addWidget(m_customPdfLikeCB, 1, 4, 1, 2); advLayout->addWidget(new QLabel(tr("Output file name:")), 2, 0); advLayout->addWidget(m_customTargetFileNameEdit, 2, 1, 1, 2); diff --git a/src/dialog/vexportdialog.h b/src/dialog/vexportdialog.h index 9d4c82ec..2822a52d 100644 --- a/src/dialog/vexportdialog.h +++ b/src/dialog/vexportdialog.h @@ -141,6 +141,7 @@ struct ExportCustomOption ExportCustomOption() : m_srcFormat(SourceFormat::Markdown), m_allInOne(false), + m_pdfLike(false), m_folderSep(DEFAULT_SEP) { } @@ -148,6 +149,7 @@ struct ExportCustomOption ExportCustomOption(const QStringList &p_config) : m_srcFormat(SourceFormat::Markdown), m_allInOne(false), + m_pdfLike(false), m_folderSep(DEFAULT_SEP) { if (p_config.size() < 3) { @@ -169,6 +171,7 @@ struct ExportCustomOption const QString &p_cssUrl, const QString &p_codeBlockCssUrl, bool p_allInOne, + bool p_pdfLike, const QString &p_folderSep, const QString &p_targetFileName) : m_srcFormat(p_srcFormat), @@ -176,6 +179,7 @@ struct ExportCustomOption m_cssUrl(p_cssUrl), m_codeBlockCssUrl(p_codeBlockCssUrl), m_allInOne(p_allInOne), + m_pdfLike(p_pdfLike), m_folderSep(p_folderSep), m_targetFileName(p_targetFileName) { @@ -203,6 +207,7 @@ struct ExportCustomOption QString m_codeBlockCssUrl; bool m_allInOne; + bool m_pdfLike; QString m_folderSep; QString m_targetFileName; @@ -455,6 +460,8 @@ private: QCheckBox *m_customAllInOneCB; + QCheckBox *m_customPdfLikeCB; + QPlainTextEdit *m_customCmdEdit; VLineEdit *m_customFolderSepEdit; diff --git a/src/vexporter.cpp b/src/vexporter.cpp index f8b4fa70..9c66a967 100644 --- a/src/vexporter.cpp +++ b/src/vexporter.cpp @@ -41,7 +41,8 @@ void VExporter::prepareExport(const ExportOption &p_opt) { bool isPdf = p_opt.m_format == ExportFormat::PDF || p_opt.m_format == ExportFormat::OnePDF - || p_opt.m_format == ExportFormat::Custom; + || (p_opt.m_format == ExportFormat::Custom + && p_opt.m_customOpt.m_pdfLike); bool extraToc = isPdf && !p_opt.m_pdfOpt.m_wkhtmltopdf && p_opt.m_pdfOpt.m_enableTableOfContents;