From 61713915b5a8442c6fd7dc71880560a82414b792 Mon Sep 17 00:00:00 2001 From: Le Tan Date: Thu, 29 Nov 2018 21:27:09 +0800 Subject: [PATCH] Editor: add Insert As Relative Image Link option --- src/vmdeditor.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/vmdeditor.cpp b/src/vmdeditor.cpp index dc554ae3..3b31143f 100644 --- a/src/vmdeditor.cpp +++ b/src/vmdeditor.cpp @@ -1900,6 +1900,9 @@ bool VMdEditor::processUrlFromMimeData(const QMimeData *p_source) if (isImage) { dialog.addSelection(tr("Insert As Image"), 0); dialog.addSelection(tr("Insert As Image Link"), 1); + if (isLocalFile) { + dialog.addSelection(tr("Insert As Relative Image Link"), 7); + } } dialog.addSelection(tr("Insert As Link"), 2); @@ -1931,11 +1934,25 @@ bool VMdEditor::processUrlFromMimeData(const QMimeData *p_source) return true; } + case 7: + // Insert As Relative Image Link. + relativeLink = true; + V_FALLTHROUGH; + case 1: { // Insert As Image Link. - insertImageLink("", url.isLocalFile() ? url.toString(QUrl::EncodeSpaces) - : url.toString()); + QString ut; + if (relativeLink) { + QDir dir(m_file->fetchBasePath()); + ut = dir.relativeFilePath(url.toLocalFile()); + ut = QUrl(ut).toString(QUrl::EncodeSpaces); + } else { + ut = url.isLocalFile() ? url.toString(QUrl::EncodeSpaces) + : url.toString(); + } + + insertImageLink("", ut); return true; }