From 2dc7b8a8a173f5d1680a642c9c88aaf98ef48916 Mon Sep 17 00:00:00 2001 From: "METANEOCORTEX\\Kotti" Date: Sun, 20 Feb 2022 14:13:46 +0100 Subject: [PATCH] +fix: occurrence counter for "current word" mode +add: msg box for editing read-only --- language/common_res.h | 1 + language/np3_de_de/strings_de_de.rc | 2 ++ language/np3_en_us/strings_en_us.rc | 2 ++ src/Edit.c | 5 +++-- src/Notepad3.c | 5 +++++ 5 files changed, 13 insertions(+), 2 deletions(-) diff --git a/language/common_res.h b/language/common_res.h index d5bb15900..319c84a64 100644 --- a/language/common_res.h +++ b/language/common_res.h @@ -180,6 +180,7 @@ #define IDS_MUI_SELMULTI 14020 #define IDS_MUI_SELRECTORMULTI 14021 #define IDS_MUI_INIFILE_READONLY 14022 +#define IDS_MUI_DOCUMENT_READONLY 14023 #define IDS_MUI_ASK_SAVE 15000 #define IDS_MUI_ASK_REVERT 15001 diff --git a/language/np3_de_de/strings_de_de.rc b/language/np3_de_de/strings_de_de.rc index 95f735ac3..7797c00f7 100644 --- a/language/np3_de_de/strings_de_de.rc +++ b/language/np3_de_de/strings_de_de.rc @@ -205,6 +205,8 @@ BEGIN IDS_MUI_INF_PRSVFILEMODTM "Die Speicherung mit originalem Zeitstempel wurde aktiviert.\nDiese Option gilt nun für die gesamte Sitzung (Datei)!" IDS_MUI_OUT_OFF_OCCMRK "Es stehen keine weiteren Fundstellen Markierungen/Lesezeichen mehr zur Verfügung!" + IDS_MUI_DOCUMENT_READONLY + "Das Dokument ist im 'Nur Lesen' Modus gesperrt. Soll dieser Modus entsperrt werden?" END STRINGTABLE diff --git a/language/np3_en_us/strings_en_us.rc b/language/np3_en_us/strings_en_us.rc index ce064b995..4e41fbfee 100644 --- a/language/np3_en_us/strings_en_us.rc +++ b/language/np3_en_us/strings_en_us.rc @@ -205,6 +205,8 @@ BEGIN IDS_MUI_INF_PRSVFILEMODTM "Preserving original File Modification Timestamp enabled.\nThis option will stay for this session!" IDS_MUI_OUT_OFF_OCCMRK "Running out of Occurrence Markers (Bookmark/Highlight)!" + IDS_MUI_DOCUMENT_READONLY + "The document is locked for view only. Do you like to unlock it for editing?" END STRINGTABLE diff --git a/src/Edit.c b/src/Edit.c index eefc58632..233063ab6 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -7685,10 +7685,11 @@ void EditMarkAll(LPCWSTR wchFind, int sFlags, DocPos rangeStart, DocPos rangeEnd if (StrIsNotEmpty(wchText)) { - DocPos const iSelStart = SciCall_GetSelectionStart(); if (bMultiSel) { SciCall_ClearSelections(); } + DocPos const iSelStart = SciCall_GetSelectionStart(); + DocPos const iSelEnd = SciCall_GetSelectionEnd(); DocPos const iTextEnd = Sci_GetDocEndPosition(); rangeStart = max_p(0, rangeStart); @@ -7715,7 +7716,7 @@ void EditMarkAll(LPCWSTR wchFind, int sFlags, DocPos rangeStart, DocPos rangeEnd SciCall_MarkerAdd(SciCall_LineFromPosition(iPos), MARKER_NP3_OCCURRENCE); } ++count; - if (iSelStart == start) { found = count; } + if ((iSelStart >= start) && (iSelEnd <= end)) { found = count; } start = end; end = rangeEnd; iPos = _FindInTarget(wchText, sFlags, &start, &end, true, FRMOD_NORM); diff --git a/src/Notepad3.c b/src/Notepad3.c index 6b763bc5e..37aee29fa 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -8158,6 +8158,11 @@ inline static LRESULT _MsgNotifyLean(const SCNotification *const scn, bool* bMod if (FocusedView.HideNonMatchedLines) { EditToggleView(Globals.hwndEdit); } + else { + if (IsYesOkayRetryContinue(InfoBoxLng(MB_YESNO | MB_ICONINFORMATION, NULL, IDS_MUI_DOCUMENT_READONLY))) { + SendWMCommand(Globals.hwndMain, IDM_VIEW_READONLY); + } + } } break; default: