+ fix: running out of occurrences bookmarks

This commit is contained in:
RaiKoHoff 2020-09-02 10:26:14 +02:00
parent 201fc2d565
commit 033b881256
7 changed files with 22 additions and 42 deletions

View File

@ -173,6 +173,7 @@
#define IDS_MUI_STATUSBAR_POSTFIXES 15061
#define IDS_MUI_RELOADSETTINGS 15062
#define IDS_MUI_RELOADCFGSEX 15063
#define IDS_MUI_OUT_OFF_OCCMRK 15064
#define IDR_MAINWND 16000
#define IDR_MAINWNDTB 16001

View File

@ -199,6 +199,7 @@ BEGIN
IDS_MUI_URL_OPEN_BROWSER "\nCtrl + Click um die URL im Browser zu öffnen."
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!"
END
STRINGTABLE

View File

@ -199,6 +199,7 @@ BEGIN
IDS_MUI_URL_OPEN_BROWSER "\nCtrl + Click to open link in browser."
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/Highligt)!"
END
STRINGTABLE

View File

@ -4319,16 +4319,6 @@ void EditFocusMarkedLinesCmd(HWND hwnd, bool bCopy, bool bDelete)
SciCall_EndUndoAction();
_OBSERVE_NOTIFY_CHANGE_;
if (bDelete) {
for (int m = MARKER_NP3_1; m <= MARKER_NP3_BOOKMARK; ++m) { // all(!)
if (bitmask & (1 << m)) {
if (SciCall_MarkerNext(0, (1 << m)) < 0) {
WordBookMarks[m].in_use = false;
}
}
}
}
SciCall_GotoLine(min_ln(curLn, Sci_GetLastDocLineNumber()));
}
@ -7134,7 +7124,6 @@ void EditClearAllBookMarks(HWND hwnd)
// 1st press: clear all occurrences marker
for (int m = MARKER_NP3_1; m < MARKER_NP3_BOOKMARK; ++m) {
SciCall_MarkerDeleteAll(m);
WordBookMarks[m].in_use = false;
}
} else {
// if no occurrences marker found
@ -7789,7 +7778,6 @@ void EditFoldMarkedLineRange(HWND hwnd, bool bHideLines)
SciCall_SetFoldLevel(line, SC_FOLDLEVELWHITEFLAG | level);
}
}
SciCall_FoldAll(FOLD);
}
}
@ -7804,15 +7792,14 @@ void EditBookMarkLineRange(HWND hwnd)
UNUSED(hwnd);
// get next free bookmark
int marker;
for (marker = MARKER_NP3_1; marker < MARKER_NP3_BOOKMARK; ++marker) {
if (!WordBookMarks[marker].in_use) {
WordBookMarks[marker].in_use = true;
break;
}
for (marker = MARKER_NP3_1; marker < MARKER_NP3_BOOKMARK; ++marker) { // all(!)
if (SciCall_MarkerNext(0, (1 << marker)) < 0) {
break; // found unused
}
}
if (marker >= MARKER_NP3_BOOKMARK) { // wrap around
marker = MARKER_NP3_1;
SciCall_MarkerDeleteAll(marker);
if (marker >= MARKER_NP3_BOOKMARK) {
InfoBoxLng(MB_ICONWARNING, L"OutOfOccurrenceMarkers", IDS_MUI_OUT_OFF_OCCMRK);
return;
}
DocLn line = -1;
@ -8897,7 +8884,6 @@ void EditBookmarkToggle(HWND hwnd, const DocLn ln, const int modifiers) {
for (int m = MARKER_NP3_1; m < MARKER_NP3_BOOKMARK; ++m) {
if (bitmask & (1 << m)) {
SciCall_MarkerDeleteAll(m);
WordBookMarks[m].in_use = false;
}
}
}

View File

@ -51,16 +51,16 @@
//
// ============================================================================
WORDBOOKMARK_T WordBookMarks[MARKER_NP3_BOOKMARK] = {
/*0*/ {false, L"back:#0000"}, // OCC MARKER
/*1*/ {false, L"back:#FF0000"},
/*2*/ {false, L"back:#0000FF"},
/*3*/ {false, L"back:#00FF00"},
/*4*/ {false, L"back:#FFFF00"},
/*5*/ {false, L"back:#00E8E8"},
/*6*/ {false, L"back:#FF00FF"},
/*7*/ {false, L"back:#FF8F20"},
/*8*/ {false, L"back:#950095"}};
LPCWSTR WordBookMarks[MARKER_NP3_BOOKMARK] = {
/*0*/ L"back:#0000", // OCC MARKER
/*1*/ L"back:#FF0000",
/*2*/ L"back:#0000FF",
/*3*/ L"back:#00FF00",
/*4*/ L"back:#FFFF00",
/*5*/ L"back:#00E8E8",
/*6*/ L"back:#FF00FF",
/*7*/ L"back:#FF8F20",
/*8*/ L"back:#950095"};
#define RELAUNCH_ELEVATED_BUF_ARG L"tmpfbuf="

View File

@ -1845,7 +1845,7 @@ void Style_SetMargin(HWND hwnd, int iStyle, LPCWSTR lpszStyle)
for (int m = MARKER_NP3_1; m < MARKER_NP3_BOOKMARK; ++m)
{
SciCall_MarkerDefine(m, (Settings.FocusViewMarkerMode & FVMM_LN_BACKGR) ? SC_MARK_BACKGROUND : SC_MARK_BOOKMARK);
Style_StrGetColor(WordBookMarks[m].color, BACKGROUND_LAYER, &color);
Style_StrGetColor(WordBookMarks[m], BACKGROUND_LAYER, &color);
SciCall_MarkerSetFore(m, color);
SciCall_MarkerSetBack(m, color);
SciCall_MarkerSetAlpha(m, alpha); // no margin or SC_MARK_BACKGROUND or SC_MARK_UNDERLINE

View File

@ -270,16 +270,7 @@ typedef enum
#define OCCURRENCE_MARKER_BITMASK() (bitmask32_n(MARKER_NP3_BOOKMARK + 1) & ~(1 << MARKER_NP3_OCCURRENCE))
typedef struct _wordbookmark_t
{
bool in_use;
LPCWSTR color;
} WORDBOOKMARK_T, *PWORDBOOKMARK_T;
extern WORDBOOKMARK_T WordBookMarks[];
extern LPCWSTR WordBookMarks[];
// --------------------------------------------------------------------------