+ took the nice pull request from @zufuliu (notepad2-mod PR #200 : (https://github.com/XhmikosR/notepad2-mod/pull/200)

and put some of the "hidden" shortcuts into NP3's menu tree.
   - couldn't reproduce the "reload as UTF-8 not work bug" in NP3 (?) - so didn't merge the related change.
     (if someone can reproduce it, please tell me)
+  I "guard" the shortcut for direct editing the NP3's .ini-file (Ctrl+F7) by disabling "Save Settings Now (F7)" and  "Save Settings on Exit" - Flag
    as long as I edit the settings file itself.
    (Example not disabling this:  Editing the .ini-file while "Save Settings on Exit"-Flag is checked,
     leaving NP3 would override the just edited .ini-file with "old" NP3 settings ...)
This commit is contained in:
Rainer Kottenhoff 2017-08-14 21:30:16 +02:00
parent 592796d44f
commit 640274b0a5
4 changed files with 74 additions and 67 deletions

View File

@ -106,9 +106,10 @@ BOOL IsCmdEnabled(HWND, UINT);
#define EnableSettingsCmds(hwnd) {\
HMENU _hmenu = GetSystemMenu((hwnd), FALSE); \
BOOL hasIniFile = (lstrlen(szIniFile) > 0 || lstrlen(szIniFile2) > 0); \
CheckCmd(_hmenu, IDM_VIEW_SAVESETTINGS, bSaveSettings); \
EnableCmd(_hmenu, IDM_VIEW_SAVESETTINGS, hasIniFile && (bSaveSettings == bSaveSettingsSafe)); \
EnableCmd(_hmenu, IDM_VIEW_SAVESETTINGSNOW, hasIniFile && (bSaveSettings == bSaveSettingsSafe)); }
CheckCmd(_hmenu, IDM_VIEW_SAVESETTINGS, bSaveSettings && bEnableSaveSettings); \
EnableCmd(_hmenu, IDM_VIEW_SAVESETTINGS, hasIniFile && bEnableSaveSettings); \
EnableCmd(_hmenu, IDM_VIEW_SAVESETTINGSNOW, hasIniFile && bEnableSaveSettings); \
}
#define GetString(id,pb,cb) LoadString(g_hInstance,id,pb,cb)

View File

@ -96,7 +96,7 @@ TBBUTTON tbbMainWnd[] = { {0,IDT_FILE_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0},
WCHAR szIniFile[MAX_PATH] = { L'\0' };
WCHAR szIniFile2[MAX_PATH] = { L'\0' };
BOOL bSaveSettings;
BOOL bSaveSettingsSafe;
BOOL bEnableSaveSettings;
BOOL bSaveRecentFiles;
BOOL bSaveFindReplace;
WCHAR tchLastSaveCopyDir[MAX_PATH] = L"";
@ -2362,14 +2362,16 @@ void MsgInitMenu(HWND hwnd,WPARAM wParam,LPARAM lParam)
i = lstrlen(szIniFile);
CheckCmd(hmenu,IDM_VIEW_SAVESETTINGS,bSaveSettings && i);
EnableCmd(hmenu, IDM_VIEW_SAVESETTINGS, i);
EnableCmd(hmenu,IDM_VIEW_REUSEWINDOW,i);
EnableCmd(hmenu,IDM_VIEW_STICKYWINPOS,i);
EnableCmd(hmenu,IDM_VIEW_SINGLEFILEINSTANCE,i);
EnableCmd(hmenu,IDM_VIEW_NOSAVERECENT,i);
EnableCmd(hmenu,IDM_VIEW_NOSAVEFINDREPL,i);
EnableCmd(hmenu,IDM_VIEW_SAVESETTINGS,bEnableSaveSettings && i);
i = (lstrlen(szIniFile) > 0 || lstrlen(szIniFile2) > 0);
EnableCmd(hmenu,IDM_VIEW_SAVESETTINGSNOW, (bSaveSettings == bSaveSettingsSafe) && i);
EnableCmd(hmenu,IDM_VIEW_SAVESETTINGSNOW,bEnableSaveSettings && i);
UNUSED(lParam);
}
@ -3096,6 +3098,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
if (flagPasteBoard)
bLastCopyFromMe = TRUE;
SendMessage(hwndEdit,SCI_LINECUT,0,0);
UpdateToolbar();
break;
@ -4408,13 +4411,14 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
case IDM_VIEW_SAVESETTINGS:
bSaveSettings = (bSaveSettings) ? FALSE : TRUE;
bSaveSettingsSafe = bSaveSettings;
if (IsCmdEnabled(hwnd, IDM_VIEW_SAVESETTINGS))
bSaveSettings = (bSaveSettings) ? FALSE : TRUE;
break;
case IDM_VIEW_SAVESETTINGSNOW:
{
if (IsCmdEnabled(hwnd, IDM_VIEW_SAVESETTINGSNOW)) {
BOOL bCreateFailure = FALSE;
if (lstrlen(szIniFile) == 0) {
@ -5057,7 +5061,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
if (IsCmdEnabled(hwnd,IDM_EDIT_COPY))
SendMessage(hwnd,WM_COMMAND,MAKELONG(IDM_EDIT_COPY,1),0);
else
SendMessage(hwnd,WM_COMMAND,MAKELONG(IDM_EDIT_COPYALL,1),0);
SendMessage(hwnd,WM_COMMAND,MAKELONG(IDM_EDIT_COPYALL,1),0); // different to Keyboard-Shortcut
//SendMessage(hwnd,WM_COMMAND,MAKELONG(IDM_EDIT_COPYLINE,1),0);
break;
@ -5612,17 +5616,14 @@ void LoadSettings()
LoadIniSection(L"Settings",pIniSection,cchIniSection);
bSaveSettings =
IniSectionGetInt(pIniSection,L"SaveSettings",1);
bEnableSaveSettings = TRUE;
bSaveSettings = IniSectionGetInt(pIniSection,L"SaveSettings",1);
if (bSaveSettings) bSaveSettings = 1;
bSaveSettingsSafe = bSaveSettings;
bSaveRecentFiles =
IniSectionGetInt(pIniSection,L"SaveRecentFiles",0);
bSaveRecentFiles = IniSectionGetInt(pIniSection,L"SaveRecentFiles",0);
if (bSaveRecentFiles) bSaveRecentFiles = 1;
bSaveFindReplace =
IniSectionGetInt(pIniSection,L"SaveFindReplace",0);
bSaveFindReplace = IniSectionGetInt(pIniSection,L"SaveFindReplace",0);
if (bSaveFindReplace) bSaveFindReplace = 1;
efrData.bFindClose = IniSectionGetInt(pIniSection,L"CloseFind",0);
@ -5966,6 +5967,9 @@ void SaveSettings(BOOL bSaveSettingsNow) {
if (lstrlen(szIniFile) == 0)
return;
if (!bEnableSaveSettings)
return;
CreateIniFile();
if (!bSaveSettings && !bSaveSettingsNow) {
@ -6677,6 +6681,7 @@ int FindIniFile() {
}
}
// normalize path
PathCanonicalizeEx(szIniFile);
GetLongPathNameEx(szIniFile, COUNTOF(szIniFile));
@ -7029,7 +7034,7 @@ BOOL FileLoad(BOOL bDontSave,BOOL bNew,BOOL bReload,BOOL bNoEncDetect,LPCWSTR lp
if (bResetFileWatching)
iFileWatchingMode = 0;
InstallFileWatching(NULL);
bSaveSettings = bSaveSettingsSafe;
bEnableSaveSettings = TRUE;
EnableSettingsCmds(hwndMain);
return TRUE;
}
@ -7103,16 +7108,6 @@ BOOL FileLoad(BOOL bDontSave,BOOL bNew,BOOL bReload,BOOL bNoEncDetect,LPCWSTR lp
if (fSuccess) {
lstrcpy(szCurFile,szFileName);
// consistent settings file handling (if loaded in editor)
if (lstrcmp(szCurFile, szIniFile) == 0) {
bSaveSettingsSafe = bSaveSettings;
bSaveSettings = FALSE;
EnableSettingsCmds(hwndMain);
}
else if (!bReload && (bSaveSettings != bSaveSettingsSafe)) {
bSaveSettings = bSaveSettingsSafe;
EnableSettingsCmds(hwndMain);
}
SetDlgItemText(hwndMain,IDC_FILENAME,szCurFile);
SetDlgItemInt(hwndMain,IDC_REUSELOCK,GetTickCount(),FALSE);
if (!fKeepTitleExcerpt)
@ -7153,6 +7148,10 @@ BOOL FileLoad(BOOL bDontSave,BOOL bNew,BOOL bReload,BOOL bNoEncDetect,LPCWSTR lp
}
}
// consistent settings file handling (if loaded in editor)
bEnableSaveSettings = (lstrcmp(szCurFile, szIniFile) == 0) ? FALSE : TRUE;
EnableSettingsCmds(hwndMain);
// Show warning: Unicode file loaded as ANSI
if (bUnicodeErr)
MsgBox(MBWARN,IDS_ERR_UNICODE);

View File

@ -108,8 +108,8 @@ BEGIN
MENUITEM "Recode to &ANSI\tCtrl-Shift+A", CMD_RECODEANSI
MENUITEM "Recode to &Default\tCtrl-Alt-F", CMD_RECODEDEFAULT
MENUITEM "Recode to &OEM\tCtrl+Shift+O", CMD_RECODEOEM
MENUITEM "ASCII as UFT-&8\tCtrl+Shift+F8", CMD_RELOADASCIIASUTF8
MENUITEM "Recode &No FileVars\tAlt+F8", CMD_RELOADNOFILEVARS
MENUITEM "ASCII as UFT-&8\tShift+F8", CMD_RELOADASCIIASUTF8
MENUITEM "&Recode...\tF8", IDM_ENCODING_RECODE
MENUITEM SEPARATOR
MENUITEM "Set &Default...", IDM_ENCODING_SETDEFAULT
@ -155,24 +155,29 @@ BEGIN
MENUITEM "Clear Clipboar&d", IDM_EDIT_CLEARCLIPBOARD
MENUITEM "&Select All\tCtrl+A", IDM_EDIT_SELECTALL
MENUITEM SEPARATOR
MENUITEM "Delete Line Left\tCtrl+Shift+Back", IDM_EDIT_DELETELINELEFT
MENUITEM "Delete Line Right\tCtrl+Shift+Del", IDM_EDIT_DELETELINERIGHT
MENUITEM "Delete Word Left\tCtrl+Back", CMD_CTRLBACK
MENUITEM "Delete Word Right\tCtrl+Del", CMD_CTRLDEL
MENUITEM SEPARATOR
POPUP "&Words"
BEGIN
MENUITEM "Cursor Word Left\tCtrl+Left", CMD_CTRLBACK
MENUITEM "Cursor Word Right\tCtrl+Right", CMD_CTRLBACK
MENUITEM "Delete Word Left\tCtrl+Back", CMD_CTRLBACK
MENUITEM "Delete Word Right\tCtrl+Del", CMD_CTRLDEL
END
POPUP "L&ines"
BEGIN
MENUITEM "Move &Up\tCtrl+Shift+Up", IDM_EDIT_MOVELINEUP
MENUITEM "&Move Down\tCtrl+Shift+Down", IDM_EDIT_MOVELINEDOWN
MENUITEM SEPARATOR
MENUITEM "&Duplicate Line\tCtrl+D", IDM_EDIT_DUPLICATELINE
MENUITEM "&Cut Line\tCtrl+Shift+X", IDM_EDIT_CUTLINE
MENUITEM "C&opy Line\tCtrl+Shift+C", IDM_EDIT_COPYLINE
MENUITEM "D&elete Line\tCtrl+Shift+D", IDM_EDIT_DELETELINE
MENUITEM "&Cut Line\tCtrl+X,Ctrl+Shift+X", IDM_EDIT_CUTLINE
MENUITEM "C&opy Line\tCtrl+C,Ctrl+Shift+C", IDM_EDIT_COPYLINE
MENUITEM "D&elete Line\tCtrl+Shift+D", IDM_EDIT_DELETELINE
MENUITEM "&Duplicate Line\tCtrl+D", IDM_EDIT_DUPLICATELINE
MENUITEM SEPARATOR
MENUITEM "Column &Wrap...\tCtrl+Shift+W", IDM_EDIT_COLUMNWRAP
MENUITEM "&Split Lines\tCtrl+I", IDM_EDIT_SPLITLINES
MENUITEM "&Join Lines\tCtrl+J", IDM_EDIT_JOINLINES
MENUITEM "Delete Line Left\tCtrl+Shift+Back", IDM_EDIT_DELETELINELEFT
MENUITEM "Delete Line Right\tCtrl+Shift+Del", IDM_EDIT_DELETELINERIGHT
MENUITEM SEPARATOR
MENUITEM "Column &Wrap...\tCtrl+Shift+W", IDM_EDIT_COLUMNWRAP
MENUITEM "&Split Lines\tCtrl+I", IDM_EDIT_SPLITLINES
MENUITEM "&Join Lines\tCtrl+J", IDM_EDIT_JOINLINES
MENUITEM "Join &Paragraphs\tCtrl+Shift+J", IDM_EDIT_JOINLINESEX
END
POPUP "&Block"
@ -180,6 +185,19 @@ BEGIN
MENUITEM "&Indent\tTab", IDM_EDIT_INDENT
MENUITEM "&Unindent\tShift+Tab", IDM_EDIT_UNINDENT
MENUITEM SEPARATOR
POPUP "&Enclose Selection"
BEGIN
MENUITEM "&Single Quotes\tCtrl+1", CMD_STRINGIFY
MENUITEM "&Double Quotes\tCtrl+2", CMD_STRINGIFY2
MENUITEM SEPARATOR
MENUITEM "( )\tCtrl+3", CMD_EMBRACE
MENUITEM "[ ]\tCtrl+4", CMD_EMBRACE2
MENUITEM "{ }\tCtrl+5", CMD_EMBRACE3
MENUITEM SEPARATOR
MENUITEM "&Backticks\tCtrl+6", CMD_EMBRACE4
MENUITEM SEPARATOR
MENUITEM "&With...\tAlt+Q", IDM_EDIT_ENCLOSESELECTION
END
MENUITEM "&Duplicate Selection\tAlt+D", IDM_EDIT_SELECTIONDUPLICATE
MENUITEM SEPARATOR
MENUITEM "&Pad With Spaces\tAlt+B", IDM_EDIT_PADWITHSPACES
@ -194,18 +212,6 @@ BEGIN
MENUITEM "Alig&n Lines...\tAlt+J", IDM_EDIT_ALIGN
MENUITEM "S&ort Lines...\tAlt+O", IDM_EDIT_SORTLINES
END
POPUP "&Enclose Selection"
BEGIN
MENUITEM "( )\tCtrl+3", CMD_EMBRACE
MENUITEM "{ }\tCtrl+4", CMD_EMBRACE2
MENUITEM "[ ]\tCtrl+5", CMD_EMBRACE3
MENUITEM SEPARATOR
MENUITEM "&Single Quotes\tCtrl+1", CMD_STRINGIFY
MENUITEM "&Double Quotes\tCtrl+2", CMD_STRINGIFY2
MENUITEM "&Backticks\tCtrl+6", CMD_EMBRACE4
MENUITEM SEPARATOR
MENUITEM "&With...\tAlt+Q", IDM_EDIT_ENCLOSESELECTION
END
POPUP "C&onvert"
BEGIN
MENUITEM "&Uppercase\tCtrl+Shift+U", IDM_EDIT_CONVERTUPPERCASE
@ -484,6 +490,19 @@ BEGIN
"U", IDM_EDIT_CONVERTUPPERCASE, VIRTKEY, SHIFT, CONTROL, NOINVERT
"V", IDM_EDIT_PASTE, VIRTKEY, CONTROL, NOINVERT
"V", IDM_VIEW_MATCHBRACES, VIRTKEY, SHIFT, CONTROL, NOINVERT
"W", IDM_VIEW_WORDWRAP, VIRTKEY, CONTROL, NOINVERT
"W", IDM_EDIT_TRIMLINES, VIRTKEY, ALT, NOINVERT
"W", IDM_EDIT_COLUMNWRAP, VIRTKEY, SHIFT, CONTROL, NOINVERT
"X", IDM_EDIT_CUT, VIRTKEY, CONTROL, NOINVERT
"X", IDM_EDIT_INSERT_TAG, VIRTKEY, ALT, NOINVERT
"X", IDM_EDIT_CHAR2HEX, VIRTKEY, CONTROL, ALT, NOINVERT
"X", IDM_EDIT_CUTLINE, VIRTKEY, SHIFT, CONTROL, NOINVERT
"Y", IDM_EDIT_REDO, VIRTKEY, CONTROL, NOINVERT
"Y", IDM_EDIT_MERGEBLANKLINES, VIRTKEY, ALT, NOINVERT
"Y", IDM_EDIT_UNDO, VIRTKEY, SHIFT, CONTROL, NOINVERT
"Z", IDM_EDIT_UNDO, VIRTKEY, CONTROL, NOINVERT
"Z", IDM_EDIT_STRIP1STCHAR, VIRTKEY, ALT, NOINVERT
"Z", IDM_EDIT_REDO, VIRTKEY, SHIFT, CONTROL, NOINVERT
VK_ADD, IDM_VIEW_ZOOMIN, VIRTKEY, CONTROL, NOINVERT
VK_ADD, CMD_INCLINELIMIT, VIRTKEY, ALT, NOINVERT
VK_ADD, CMD_INCREASENUM, VIRTKEY, CONTROL, ALT, NOINVERT
@ -532,6 +551,7 @@ BEGIN
VK_F8, IDM_EDIT_INSERT_ENCODING, VIRTKEY, CONTROL, NOINVERT
VK_F8, CMD_RELOADNOFILEVARS, VIRTKEY, ALT, NOINVERT
VK_F8, IDM_ENCODING_UTF8, VIRTKEY, SHIFT, NOINVERT
VK_F8, CMD_RELOADASCIIASUTF8, VIRTKEY, SHIFT, CONTROL, NOINVERT
VK_F9, IDM_ENCODING_SELECT, VIRTKEY, NOINVERT
VK_F9, IDM_EDIT_INSERT_FILENAME, VIRTKEY, CONTROL, NOINVERT
VK_F9, IDM_FILE_MANAGEFAV, VIRTKEY, ALT, NOINVERT
@ -557,19 +577,6 @@ BEGIN
VK_SUBTRACT, CMD_DECREASENUM, VIRTKEY, CONTROL, ALT, NOINVERT
VK_TAB, CMD_CTRLTAB, VIRTKEY, CONTROL, NOINVERT
VK_UP, IDM_EDIT_MOVELINEUP, VIRTKEY, SHIFT, CONTROL, NOINVERT
"W", IDM_VIEW_WORDWRAP, VIRTKEY, CONTROL, NOINVERT
"W", IDM_EDIT_TRIMLINES, VIRTKEY, ALT, NOINVERT
"W", IDM_EDIT_COLUMNWRAP, VIRTKEY, SHIFT, CONTROL, NOINVERT
"X", IDM_EDIT_CUT, VIRTKEY, CONTROL, NOINVERT
"X", IDM_EDIT_INSERT_TAG, VIRTKEY, ALT, NOINVERT
"X", IDM_EDIT_CHAR2HEX, VIRTKEY, CONTROL, ALT, NOINVERT
"X", IDM_EDIT_CUTLINE, VIRTKEY, SHIFT, CONTROL, NOINVERT
"Y", IDM_EDIT_REDO, VIRTKEY, CONTROL, NOINVERT
"Y", IDM_EDIT_MERGEBLANKLINES, VIRTKEY, ALT, NOINVERT
"Y", IDM_EDIT_UNDO, VIRTKEY, SHIFT, CONTROL, NOINVERT
"Z", IDM_EDIT_UNDO, VIRTKEY, CONTROL, NOINVERT
"Z", IDM_EDIT_STRIP1STCHAR, VIRTKEY, ALT, NOINVERT
"Z", IDM_EDIT_REDO, VIRTKEY, SHIFT, CONTROL, NOINVERT
VK_OEM_PERIOD, IDM_EDIT_INSERT_GUID, VIRTKEY, SHIFT, CONTROL, NOINVERT
END

View File

@ -1,4 +1,4 @@
#define VERSION_MAJOR 2
#define VERSION_MINOR 0
#define VERSION_REV 2
#define VERSION_BUILD 422
#define VERSION_BUILD 438