Merge pull request #1607 from RaiKoHoff/DevNewFeatures

Preserve File Modification Time: Option stays until new Session
This commit is contained in:
Pairi Daiza 2019-09-05 23:44:04 +02:00 committed by GitHub
commit 26e9761bf6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 28 additions and 23 deletions

View File

@ -1 +1 @@
2618
2619

View File

@ -3,7 +3,7 @@
<assemblyIdentity
name="Notepad3"
processorArchitecture="*"
version="5.19.905.2618"
version="5.19.905.2619"
type="win32"
/>
<description>Notepad3 BETA</description>

View File

@ -1164,6 +1164,7 @@ void LoadFlags()
Flags.NoFileVariables = IniSectionGetInt(Settings2_Section, L"NoFileVariables", DefaultFlags.NoFileVariables);
Flags.PrintFileAndLeave = s_flagPrintFileAndLeave;
Flags.bPreserveFileModTime = false;
ReleaseIniFile();
}

View File

@ -3322,7 +3322,7 @@ WINDOWPLACEMENT WindowPlacementFromInfo(HWND hwnd, const WININFO* pWinInfo)
//
void DialogNewWindow(HWND hwnd, bool bSaveOnRunTools, bool bSetCurFile)
{
if (bSaveOnRunTools && !FileSave(false, true, false, false, false)) { return; }
if (bSaveOnRunTools && !FileSave(false, true, false, false, Flags.bPreserveFileModTime)) { return; }
WCHAR szModuleName[MAX_PATH] = { L'\0' };
GetModuleFileName(NULL, szModuleName, COUNTOF(szModuleName));

View File

@ -1234,7 +1234,7 @@ HWND InitInstance(HINSTANCE hInstance,LPCWSTR pszCmdLine,int nCmdShow)
}
SciCall_SetSavePoint();
_SetSaveNeededFlag(true);
FileSave(true, false, false, false, false); // issued from elevation instances
FileSave(true, false, false, false, Flags.bPreserveFileModTime); // issued from elevation instances
}
if (s_flagJumpTo) { // Jump to position
EditJumpTo(Globals.hwndEdit,s_iInitialLine,s_iInitialColumn);
@ -1462,13 +1462,13 @@ LRESULT CALLBACK MainWndProc(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
if (IsWindow(Globals.hwndDlgCustomizeSchemes)) {
PostMessage(Globals.hwndDlgCustomizeSchemes, WM_CLOSE, 0, 0);
}
if (FileSave(false, true, false, false, false)) {
if (FileSave(false, true, false, false, Flags.bPreserveFileModTime)) {
DestroyWindow(hwnd);
}
break;
case WM_QUERYENDSESSION:
if (FileSave(false, true, false, false, false)) {
if (FileSave(false, true, false, false, Flags.bPreserveFileModTime)) {
return TRUE;
}
break;
@ -2951,7 +2951,7 @@ LRESULT MsgChangeNotify(HWND hwnd, WPARAM wParam, LPARAM lParam)
else {
INT_PTR const answer = InfoBoxLng(MB_YESNO | MB_ICONWARNING, NULL, IDS_MUI_FILECHANGENOTIFY2);
if ((IDOK == answer) || (IDYES == answer)) {
FileSave(true, false, false, false, false);
FileSave(true, false, false, false, Flags.bPreserveFileModTime);
}
}
@ -3054,9 +3054,10 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
EnableCmd(hmenu,IDM_FILE_PROPERTIES,i);
EnableCmd(hmenu,IDM_FILE_CREATELINK,i);
EnableCmd(hmenu,IDM_FILE_ADDTOFAV,i);
EnableCmd(hmenu,IDM_FILE_READONLY,i);
CheckCmd(hmenu,IDM_FILE_READONLY,s_bFileReadOnly);
CheckCmd(hmenu, IDM_FILE_PRESERVE_FILEMODTIME, Flags.bPreserveFileModTime);
EnableCmd(hmenu,IDM_ENCODING_UNICODEREV,!ro);
EnableCmd(hmenu,IDM_ENCODING_UNICODE,!ro);
@ -3514,22 +3515,23 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
case IDM_FILE_SAVE:
FileSave(true, false, false, false, false);
FileSave(true, false, false, false, Flags.bPreserveFileModTime);
break;
case IDM_FILE_SAVEAS:
FileSave(true, false, true, false, false);
FileSave(true, false, true, false, Flags.bPreserveFileModTime);
break;
case IDM_FILE_SAVECOPY:
FileSave(true, false, true, true, false);
FileSave(true, false, true, true, Flags.bPreserveFileModTime);
break;
case IDM_FILE_PRESERVE_FILEMODTIME:
FileSave(true, false, false, false, true);
Flags.bPreserveFileModTime = true;
FileSave(true, false, false, false, Flags.bPreserveFileModTime);
break;
@ -3577,7 +3579,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
if (!StringCchLenW(Globals.CurrentFile,COUNTOF(Globals.CurrentFile)))
break;
if (Settings.SaveBeforeRunningTools && !FileSave(false,true,false,false, false))
if (Settings.SaveBeforeRunningTools && !FileSave(false,true,false,false,Flags.bPreserveFileModTime))
break;
if (StringCchLenW(Globals.CurrentFile,COUNTOF(Globals.CurrentFile))) {
@ -3618,7 +3620,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
case IDM_FILE_RUN:
{
if (Settings.SaveBeforeRunningTools && !FileSave(false, true, false, false, false)) {
if (Settings.SaveBeforeRunningTools && !FileSave(false, true, false, false, Flags.bPreserveFileModTime)) {
break;
}
StringCchCopy(tchMaxPathBuffer,COUNTOF(tchMaxPathBuffer),Globals.CurrentFile);
@ -3629,7 +3631,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
break;
case IDM_FILE_OPENWITH:
if (Settings.SaveBeforeRunningTools && !FileSave(false, true, false, false, false))
if (Settings.SaveBeforeRunningTools && !FileSave(false, true, false, false, Flags.bPreserveFileModTime))
break;
OpenWithDlg(hwnd,Globals.CurrentFile);
break;
@ -3695,7 +3697,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
case IDM_FILE_OPENFAV:
if (FileSave(false, true, false, false, false)) {
if (FileSave(false, true, false, false, Flags.bPreserveFileModTime)) {
if (FavoritesDlg(hwnd,tchMaxPathBuffer))
{
if (PathIsLnkToDirectory(tchMaxPathBuffer,NULL,0))
@ -3742,7 +3744,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
case IDM_FILE_RECENT:
if (MRU_Count(Globals.pFileMRU) > 0) {
if (FileSave(false, true, false, false, false)) {
if (FileSave(false, true, false, false, Flags.bPreserveFileModTime)) {
WCHAR tchFile[MAX_PATH] = { L'\0' };
if (FileMRUDlg(hwnd, tchFile)) {
FileLoad(true, false, false, false, true, false, tchFile);
@ -5563,7 +5565,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
case CMD_SHIFTESC:
if (FileSave(true, false, false, false, false)) {
if (FileSave(true, false, false, false, Flags.bPreserveFileModTime)) {
PostMessage(hwnd, WM_CLOSE, 0, 0);
}
break;
@ -9305,11 +9307,12 @@ bool FileLoad(bool bDontSave, bool bNew, bool bReload,
if (bNew || bReload) {
if (FocusedView.HideNonMatchedLines) { EditToggleView(Globals.hwndEdit); }
Flags.bPreserveFileModTime = false;
}
if (!bDontSave)
{
if (!FileSave(false, true, false, false, false)) {
if (!FileSave(false, true, false, false, Flags.bPreserveFileModTime)) {
return false;
}
}
@ -9445,6 +9448,8 @@ bool FileLoad(bool bDontSave, bool bNew, bool bReload,
Encoding_Current(fioStatus.iEncoding); // load may change encoding
Encoding_HasChanged(fioStatus.iEncoding);
Flags.bPreserveFileModTime = false;
int idx = 0;
DocPos iCaretPos = 0;
LPCWSTR pszBookMarks = L"";

View File

@ -451,12 +451,12 @@ extern SETTINGS_T Settings;
typedef struct _flags_t
{
int ToolbarLook;
int PrintFileAndLeave;
bool bDevDebugMode;
bool bStickyWindowPosition;
bool bReuseWindow;
bool bSingleFileInstance;
bool MultiFileArg;
bool RelativeFileMRU;
bool PortableMyDocs;
@ -466,8 +466,7 @@ typedef struct _flags_t
bool NoCGIGuess;
bool NoFileVariables;
bool ShellUseSystemMRU;
int PrintFileAndLeave;
bool bPreserveFileModTime;
} FLAGS_T, *PFLAGS_T;

View File

@ -8,7 +8,7 @@
#define VERSION_MAJOR 5
#define VERSION_MINOR 19
#define VERSION_REV 905
#define VERSION_BUILD 2618
#define VERSION_BUILD 2619
#define SCINTILLA_VER 420
#define ONIGURUMA_REGEX_VER 6.9.3
#define UCHARDET_VER 2018.09.27