mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-11 21:03:05 +08:00
+enh: option to fill empty search text in F/R dialog
This commit is contained in:
parent
cd7fe6b459
commit
dc6ca9faad
@ -230,7 +230,8 @@
|
||||
#define IDS_MUI_CLEAR_REPL_HISTORY 15043
|
||||
#define IDS_MUI_WRAPSEARCH_FWD 15044
|
||||
#define IDS_MUI_WRAPSEARCH_BCK 15045
|
||||
#define IDS_MUI_REPLCLIPTAG 15046
|
||||
#define IDS_MUI_SEARCHCLIPIFEMPTY 15046
|
||||
#define IDS_MUI_REPLCLIPTAG 15047
|
||||
|
||||
#define IDS_MUI_TRANSL_AUTHOR 15050
|
||||
#define IDS_MUI_ASSOCIATED_EXT 15051
|
||||
|
||||
@ -273,7 +273,9 @@ BEGIN
|
||||
"Suchen-Historie löschen"
|
||||
IDS_MUI_CLEAR_REPL_HISTORY
|
||||
"Ersetzen-Historie löschen"
|
||||
IDS_MUI_REPLCLIPTAG "Ersetzen durch Clipboard Shortcut [^c]"
|
||||
IDS_MUI_SEARCHCLIPIFEMPTY
|
||||
"Suche Clipboardinhalt wenn keine Selektion"
|
||||
IDS_MUI_REPLCLIPTAG "Ersetzen durch Clipboard mittels Shortcut [^c]"
|
||||
IDS_MUI_WRAPSEARCH_FWD "Wrap-Around Fund von Oben"
|
||||
IDS_MUI_WRAPSEARCH_BCK "Wrap-Around Fund von Unten"
|
||||
END
|
||||
|
||||
@ -273,7 +273,9 @@ BEGIN
|
||||
"Clear Find History"
|
||||
IDS_MUI_CLEAR_REPL_HISTORY
|
||||
"Clear Replace History"
|
||||
IDS_MUI_REPLCLIPTAG "Replace by Clipboard Shortcut [^c]"
|
||||
IDS_MUI_SEARCHCLIPIFEMPTY
|
||||
"Search by Clipboard if empty selection"
|
||||
IDS_MUI_REPLCLIPTAG "Replace by Clipboard on Shortcut [^c]"
|
||||
IDS_MUI_WRAPSEARCH_FWD "Wrap-Around match from top"
|
||||
IDS_MUI_WRAPSEARCH_BCK "Wrap-Around match from bottom"
|
||||
END
|
||||
|
||||
@ -1692,6 +1692,7 @@ void LoadSettings()
|
||||
GET_BOOL_VALUE_FROM_INISECTION(EditLayoutRTL, false);
|
||||
GET_BOOL_VALUE_FROM_INISECTION(DialogsLayoutRTL, false);
|
||||
GET_BOOL_VALUE_FROM_INISECTION(PreferredLocale4DateFmt, false);
|
||||
GET_BOOL_VALUE_FROM_INISECTION(SearchByClipboardIfEmpty, true);
|
||||
GET_BOOL_VALUE_FROM_INISECTION(ReplaceByClipboardTag, true);
|
||||
|
||||
#ifdef D_NP3_WIN10_DARK_MODE
|
||||
@ -2117,6 +2118,7 @@ static bool _SaveSettings(bool bForceSaveSettings)
|
||||
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, EditLayoutRTL);
|
||||
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, DialogsLayoutRTL);
|
||||
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, PreferredLocale4DateFmt);
|
||||
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, SearchByClipboardIfEmpty);
|
||||
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, ReplaceByClipboardTag);
|
||||
|
||||
#ifdef D_NP3_WIN10_DARK_MODE
|
||||
|
||||
25
src/Edit.c
25
src/Edit.c
@ -5813,13 +5813,13 @@ static LPCWSTR _EditGetFindStrg(HWND hwnd, const LPEDITFINDREPLACE lpefr, bool b
|
||||
}
|
||||
|
||||
// 2nd: try get clipboard content
|
||||
if (StrgIsEmpty(hfind) && bFillEmpty) {
|
||||
if (StrgIsEmpty(hfind) && bFillEmpty && Settings.SearchByClipboardIfEmpty) {
|
||||
LPWSTR const buf = StrgWriteAccessBuf(hfind, FNDRPL_BUFFER);
|
||||
EditGetClipboardW(buf, StrgGetAllocLength(hfind));
|
||||
StrgSanitize(hfind);
|
||||
}
|
||||
|
||||
// 3rd: try get most recently used find pattern
|
||||
// 3nd: try get most recently used find pattern
|
||||
if (StrgIsEmpty(hfind) && bFillEmpty) {
|
||||
LPWSTR const buf = StrgWriteAccessBuf(hfind, FNDRPL_BUFFER);
|
||||
MRU_Enum(Globals.pMRUfind, 0, buf, (int)StrgGetAllocLength(hfind));
|
||||
@ -5860,8 +5860,7 @@ static LPCWSTR _EditGetFindStrg(HWND hwnd, const LPEDITFINDREPLACE lpefr, bool b
|
||||
static char* _GetReplaceString(HWND hwnd, CLPCEDITFINDREPLACE lpefr, int* iReplaceMsg)
|
||||
{
|
||||
char* pszReplace = NULL; // replace text of arbitrary size
|
||||
if (Settings.ReplaceByClipboardTag &&
|
||||
(StringCchCompareXW(StrgGet(lpefr->chReplaceTemplate), L"^c")) == 0)
|
||||
if (Settings.ReplaceByClipboardTag && (StringCchCompareXW(StrgGet(lpefr->chReplaceTemplate), L"^c")) == 0)
|
||||
{
|
||||
*iReplaceMsg = SciCall_GetChangeHistory() ? SCI_REPLACETARGETMINIMAL : SCI_REPLACETARGET;
|
||||
pszReplace = EditGetClipboardText(hwnd, true, NULL, NULL);
|
||||
@ -6280,10 +6279,13 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wPar
|
||||
GetLngString(IDS_MUI_CLEAR_REPL_HISTORY, wchMenuBuf, COUNTOF(wchMenuBuf));
|
||||
InsertMenu(hmenu, 4, MF_BYPOSITION | MF_STRING | MF_ENABLED, IDS_MUI_CLEAR_REPL_HISTORY, wchMenuBuf);
|
||||
InsertMenu(hmenu, 5, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);
|
||||
GetLngString(IDS_MUI_SEARCHCLIPIFEMPTY, wchMenuBuf, COUNTOF(wchMenuBuf));
|
||||
InsertMenu(hmenu, 6, MF_BYPOSITION | MF_STRING | MF_ENABLED, IDS_MUI_SEARCHCLIPIFEMPTY, wchMenuBuf);
|
||||
GetLngString(IDS_MUI_REPLCLIPTAG, wchMenuBuf, COUNTOF(wchMenuBuf));
|
||||
InsertMenu(hmenu, 6, MF_BYPOSITION | MF_STRING | MF_ENABLED, IDS_MUI_REPLCLIPTAG, wchMenuBuf);
|
||||
InsertMenu(hmenu, 7, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);
|
||||
InsertMenu(hmenu, 7, MF_BYPOSITION | MF_STRING | MF_ENABLED, IDS_MUI_REPLCLIPTAG, wchMenuBuf);
|
||||
InsertMenu(hmenu, 8, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);
|
||||
|
||||
CheckCmd(hmenu, IDS_MUI_SEARCHCLIPIFEMPTY, Settings.SearchByClipboardIfEmpty);
|
||||
CheckCmd(hmenu, IDS_MUI_REPLCLIPTAG, Settings.ReplaceByClipboardTag);
|
||||
|
||||
|
||||
@ -6923,10 +6925,14 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wPar
|
||||
SetDlgItemText(hwnd, IDC_REPLACETEXT, L"");
|
||||
break;
|
||||
|
||||
case IDACC_SEARCHCLIPIFEMPTY:
|
||||
Settings.SearchByClipboardIfEmpty = !Settings.SearchByClipboardIfEmpty;
|
||||
CheckCmd(GetSystemMenu(hwnd, FALSE), IDS_MUI_SEARCHCLIPIFEMPTY, Settings.SearchByClipboardIfEmpty);
|
||||
break;
|
||||
|
||||
case IDACC_REPLCLIPTAG:
|
||||
Settings.ReplaceByClipboardTag = !Settings.ReplaceByClipboardTag;
|
||||
HMENU hmenu = GetSystemMenu(hwnd, FALSE);
|
||||
CheckCmd(hmenu, IDS_MUI_REPLCLIPTAG, Settings.ReplaceByClipboardTag);
|
||||
CheckCmd(GetSystemMenu(hwnd, FALSE), IDS_MUI_REPLCLIPTAG, Settings.ReplaceByClipboardTag);
|
||||
break;
|
||||
|
||||
case IDACC_FINDNEXT:
|
||||
@ -6979,6 +6985,9 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wPar
|
||||
} else if (wParam == IDS_MUI_CLEAR_REPL_HISTORY) {
|
||||
PostWMCommand(hwnd, IDACC_CLEAR_REPL_HISTORY);
|
||||
return TRUE;
|
||||
} else if (wParam == IDS_MUI_SEARCHCLIPIFEMPTY) {
|
||||
PostWMCommand(hwnd, IDACC_SEARCHCLIPIFEMPTY);
|
||||
return TRUE;
|
||||
} else if (wParam == IDS_MUI_REPLCLIPTAG) {
|
||||
PostWMCommand(hwnd, IDACC_REPLCLIPTAG);
|
||||
return TRUE;
|
||||
|
||||
@ -669,6 +669,7 @@ typedef struct SETTINGS_T {
|
||||
int FocusViewMarkerMode;
|
||||
bool PreferredLocale4DateFmt;
|
||||
int AutoSaveInterval;
|
||||
bool SearchByClipboardIfEmpty;
|
||||
bool ReplaceByClipboardTag;
|
||||
|
||||
AutoSaveBackupOptions AutoSaveOptions;
|
||||
|
||||
@ -98,7 +98,8 @@
|
||||
#define IDACC_PREVIEW 313
|
||||
#define IDACC_CLEAR_FIND_HISTORY 314
|
||||
#define IDACC_CLEAR_REPL_HISTORY 315
|
||||
#define IDACC_REPLCLIPTAG 316
|
||||
#define IDACC_SEARCHCLIPIFEMPTY 316
|
||||
#define IDACC_REPLCLIPTAG 317
|
||||
|
||||
#define IDC_SETCURLEXERTV 402
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user