Skip to content

Commit 3c3dee9

Browse files
committed
#3357 nextclouddeck: ignore deck links in note text edits
Signed-off-by: Patrizio Bekerle <patrizio@bekerle.com>
1 parent a8673e0 commit 3c3dee9

File tree

6 files changed

+31
-3
lines changed

6 files changed

+31
-3
lines changed

src/mainwindow.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,10 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
512512

513513
// check if we want to start the application hidden
514514
initShowHidden();
515+
516+
// Update the ignored click url regexps for the note text edits
517+
ui->encryptedNoteTextEdit->updateIgnoredClickUrlRegexps();
518+
ui->noteTextEdit->updateIgnoredClickUrlRegexps();
515519
}
516520

517521
void MainWindow::initTreeWidgets() {
@@ -2084,6 +2088,10 @@ bool MainWindow::changeNoteFolder(const int noteFolderId, const bool forceChange
20842088
updateWindowTitle();
20852089
_lastNoteId = 0;
20862090

2091+
// Update the ignored click url regexps for the note text edits
2092+
ui->encryptedNoteTextEdit->updateIgnoredClickUrlRegexps();
2093+
ui->noteTextEdit->updateIgnoredClickUrlRegexps();
2094+
20872095
return true;
20882096
}
20892097

src/services/nextclouddeckservice.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,9 +228,14 @@ bool NextcloudDeckService::isCardUrl(const QString& url) {
228228
return match.hasMatch();
229229
}
230230

231+
QString NextcloudDeckService::getCardUrlPattern() const {
232+
return serverUrl + QStringLiteral("/apps/deck/#/board/") + QString::number(this->boardId) +
233+
QStringLiteral("/card/");
234+
}
235+
231236
int NextcloudDeckService::parseCardIdFromUrl(const QString& url) const {
232-
if (!url.startsWith(serverUrl + "/apps/deck/#/board/" + QString::number(this->boardId) +
233-
"/card/")) {
237+
qDebug() << __func__ << "getCardUrlPattern(): " << getCardUrlPattern();
238+
if (!url.startsWith(getCardUrlPattern())) {
234239
return -1;
235240
}
236241

src/services/nextclouddeckservice.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class NextcloudDeckService : public QObject {
5959
bool deleteCard(int cardId);
6060
int parseCardIdFromUrl(const QString& url) const;
6161
static bool isCardUrl(const QString& url);
62+
QString getCardUrlPattern() const;
6263

6364
private:
6465
CloudConnection cloudConnection;

src/widgets/qownnotesmarkdowntextedit.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "helpers/qownspellchecker.h"
2121
#include "libraries/qmarkdowntextedit/linenumberarea.h"
2222
#include "mainwindow.h"
23+
#include "services/nextclouddeckservice.h"
2324
#include "services/scriptingservice.h"
2425
#include "services/settingsservice.h"
2526
#include "utils/urlhandler.h"
@@ -1203,3 +1204,14 @@ bool QOwnNotesMarkdownTextEdit::eventFilter(QObject *obj, QEvent *event) {
12031204

12041205
return QMarkdownTextEdit::eventFilter(obj, event);
12051206
}
1207+
1208+
void QOwnNotesMarkdownTextEdit::updateIgnoredClickUrlRegexps() {
1209+
NextcloudDeckService nextcloudDeckService(this);
1210+
1211+
if (nextcloudDeckService.isEnabledAndValid()) {
1212+
QList<QRegularExpression> ignoredClickUrlRegexps;
1213+
ignoredClickUrlRegexps.append(QRegularExpression(
1214+
QRegularExpression::escape(nextcloudDeckService.getCardUrlPattern())));
1215+
setIgnoredClickUrlRegexps(ignoredClickUrlRegexps);
1216+
}
1217+
}

src/widgets/qownnotesmarkdowntextedit.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ class QOwnNotesMarkdownTextEdit : public QMarkdownTextEdit {
8484

8585
QSize minimumSizeHint() const;
8686

87+
void updateIgnoredClickUrlRegexps();
88+
8789
protected:
8890
// we must not override _highlighter or Windows will create a
8991
// QOwnNotesMarkdownHighlighter and MarkdownHighlighter instance

0 commit comments

Comments
 (0)