Merge pull request #3969 from RaiKoHoff/Dev_Master

Add F/R-dialog menu item to switch replace by clipboard tag (^c)
This commit is contained in:
Pairi Daiza 2022-02-16 20:41:13 +01:00 committed by GitHub
commit 4cefeae452
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 30 additions and 3 deletions

View File

@ -227,6 +227,7 @@
#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_TRANSL_AUTHOR 15050
#define IDS_MUI_ASSOCIATED_EXT 15051

View File

@ -268,6 +268,7 @@ BEGIN
"Suchen-Historie löschen"
IDS_MUI_CLEAR_REPL_HISTORY
"Ersetzen-Historie löschen"
IDS_MUI_REPLCLIPTAG "Ersetzen durch Clipboard Shortcut [^c]"
IDS_MUI_WRAPSEARCH_FWD "Wrap-Around Fund von Oben"
IDS_MUI_WRAPSEARCH_BCK "Wrap-Around Fund von Unten"
END

View File

@ -268,6 +268,7 @@ BEGIN
"Clear Find History"
IDS_MUI_CLEAR_REPL_HISTORY
"Clear Replace History"
IDS_MUI_REPLCLIPTAG "Replace by Clipboard Shortcut [^c]"
IDS_MUI_WRAPSEARCH_FWD "Wrap-Around match from top"
IDS_MUI_WRAPSEARCH_BCK "Wrap-Around match from bottom"
END

View File

@ -1579,6 +1579,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(ReplaceByClipboardTag, true);
#ifdef D_NP3_WIN10_DARK_MODE
Defaults.WinThemeDarkMode = ShouldAppsUseDarkModeEx();
@ -1850,6 +1851,7 @@ static bool _SaveSettings(bool bForceSaveSettings)
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, SaveRecentFiles);
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, PreserveCaretPos);
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, SaveFindReplace);
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, SaveFindReplace);
if (Settings.EFR_Data.bFindClose != Defaults.EFR_Data.bFindClose) {
IniSectionSetBool(IniSecSettings, L"CloseFind", Settings.EFR_Data.bFindClose);
@ -2028,6 +2030,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, ReplaceByClipboardTag);
#ifdef D_NP3_WIN10_DARK_MODE
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, WinThemeDarkMode);

View File

@ -5836,7 +5836,9 @@ 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 (StringCchCompareXW(StrgGet(lpefr->chReplaceTemplate), L"^c") == 0) {
if (Settings.ReplaceByClipboardTag &&
(StringCchCompareXW(StrgGet(lpefr->chReplaceTemplate), L"^c")) == 0)
{
*iReplaceMsg = SCI_REPLACETARGET;
pszReplace = EditGetClipboardText(hwnd, true, NULL, NULL);
}
@ -6227,7 +6229,7 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wPar
}
WCHAR wchMenuBuf[80] = {L'\0'};
HMENU hmenu = GetSystemMenu(hwnd, false);
HMENU hmenu = GetSystemMenu(hwnd, FALSE);
GetLngString(IDS_MUI_SAVEPOS, wchMenuBuf, COUNTOF(wchMenuBuf));
InsertMenu(hmenu, 0, MF_BYPOSITION | MF_STRING | MF_ENABLED, IDS_MUI_SAVEPOS, wchMenuBuf);
@ -6239,6 +6241,11 @@ 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_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);
CheckCmd(hmenu, IDS_MUI_REPLCLIPTAG, Settings.ReplaceByClipboardTag);
hBrushRed = CreateSolidBrush(rgbRedColorRef);
@ -6323,6 +6330,8 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wPar
DeleteObject(hBrushRed);
DeleteObject(hBrushGreen);
DeleteObject(hBrushBlue);
GetSystemMenu(hwnd, TRUE);
s_pEfrData = NULL;
Globals.hwndDlgFindReplace = NULL;
}
@ -6868,6 +6877,12 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd, UINT umsg, WPARAM wPar
SetDlgItemText(hwnd, IDC_REPLACETEXT, L"");
break;
case IDACC_REPLCLIPTAG:
Settings.ReplaceByClipboardTag = !Settings.ReplaceByClipboardTag;
HMENU hmenu = GetSystemMenu(hwnd, FALSE);
CheckCmd(hmenu, IDS_MUI_REPLCLIPTAG, Settings.ReplaceByClipboardTag);
break;
case IDACC_FINDNEXT:
PostWMCommand(hwnd, IDOK);
break;
@ -6918,6 +6933,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_REPLCLIPTAG) {
PostWMCommand(hwnd, IDACC_REPLCLIPTAG);
return TRUE;
}
break;

View File

@ -614,6 +614,8 @@ typedef struct SETTINGS_T {
int FocusViewMarkerMode;
bool PreferredLocale4DateFmt;
int AutoSaveInterval;
bool ReplaceByClipboardTag;
AutoSaveBackupOptions AutoSaveOptions;
#ifdef D_NP3_WIN10_DARK_MODE
@ -642,7 +644,7 @@ extern SETTINGS_T Settings;
typedef struct FLAGS_T {
int ToolbarLook;
int PrintFileAndLeave;
int PrintFileAndLeave;
bool bHugeFileLoadState;
bool bDevDebugMode;

View File

@ -97,6 +97,7 @@
#define IDACC_PREVIEW 313
#define IDACC_CLEAR_FIND_HISTORY 314
#define IDACC_CLEAR_REPL_HISTORY 315
#define IDACC_REPLCLIPTAG 316
#define IDC_SETCURLEXERTV 402