mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-28 16:24:27 +02:00
Remember the directory of "Remember last used directory" through sessions
Fix #11326, fix #10901, fix #4961, fix #4119, close #13887
This commit is contained in:
parent
eef91b0214
commit
ff2179aeca
@ -5743,6 +5743,12 @@ void NppParameters::feedGUIParameters(TiXmlNode *node)
|
|||||||
lstrcpyn(_nppGUI._defaultDir, path, MAX_PATH);
|
lstrcpyn(_nppGUI._defaultDir, path, MAX_PATH);
|
||||||
::ExpandEnvironmentStrings(_nppGUI._defaultDir, _nppGUI._defaultDirExp, MAX_PATH);
|
::ExpandEnvironmentStrings(_nppGUI._defaultDir, _nppGUI._defaultDirExp, MAX_PATH);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const TCHAR* path2 = element->Attribute(TEXT("lastUsedDirPath"));
|
||||||
|
if (path2 && path2[0])
|
||||||
|
{
|
||||||
|
lstrcpyn(_nppGUI._lastUsedDir, path2, MAX_PATH);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (!lstrcmp(nm, TEXT("titleBar")))
|
else if (!lstrcmp(nm, TEXT("titleBar")))
|
||||||
@ -7171,6 +7177,7 @@ void NppParameters::createXmlTreeFromGUIParams()
|
|||||||
GUIConfigElement->SetAttribute(TEXT("name"), TEXT("openSaveDir"));
|
GUIConfigElement->SetAttribute(TEXT("name"), TEXT("openSaveDir"));
|
||||||
GUIConfigElement->SetAttribute(TEXT("value"), _nppGUI._openSaveDir);
|
GUIConfigElement->SetAttribute(TEXT("value"), _nppGUI._openSaveDir);
|
||||||
GUIConfigElement->SetAttribute(TEXT("defaultDirPath"), _nppGUI._defaultDir);
|
GUIConfigElement->SetAttribute(TEXT("defaultDirPath"), _nppGUI._defaultDir);
|
||||||
|
GUIConfigElement->SetAttribute(TEXT("lastUsedDirPath"), _nppGUI._lastUsedDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
// <GUIConfig name="titleBar" short="no" />
|
// <GUIConfig name="titleBar" short="no" />
|
||||||
|
@ -758,6 +758,7 @@ struct NppGUI final
|
|||||||
|
|
||||||
_defaultDir[0] = 0;
|
_defaultDir[0] = 0;
|
||||||
_defaultDirExp[0] = 0;
|
_defaultDirExp[0] = 0;
|
||||||
|
_lastUsedDir[0] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
toolBarStatusType _toolBarStatus = TB_STANDARD;
|
toolBarStatusType _toolBarStatus = TB_STANDARD;
|
||||||
@ -887,6 +888,8 @@ struct NppGUI final
|
|||||||
|
|
||||||
TCHAR _defaultDir[MAX_PATH];
|
TCHAR _defaultDir[MAX_PATH];
|
||||||
TCHAR _defaultDirExp[MAX_PATH]; //expanded environment variables
|
TCHAR _defaultDirExp[MAX_PATH]; //expanded environment variables
|
||||||
|
TCHAR _lastUsedDir[MAX_PATH];
|
||||||
|
|
||||||
generic_string _themeName;
|
generic_string _themeName;
|
||||||
MultiInstSetting _multiInstSetting = monoInst;
|
MultiInstSetting _multiInstSetting = monoInst;
|
||||||
bool _clipboardHistoryPanelKeepState = false;
|
bool _clipboardHistoryPanelKeepState = false;
|
||||||
|
@ -876,10 +876,12 @@ public:
|
|||||||
okPressed = SUCCEEDED(hr);
|
okPressed = SUCCEEDED(hr);
|
||||||
|
|
||||||
NppParameters& params = NppParameters::getInstance();
|
NppParameters& params = NppParameters::getInstance();
|
||||||
if (okPressed && params.getNppGUI()._openSaveDir == dir_last)
|
NppGUI& nppGUI = params.getNppGUI();
|
||||||
|
if (okPressed && nppGUI._openSaveDir == dir_last)
|
||||||
{
|
{
|
||||||
// Note: IFileDialog doesn't modify the current directory.
|
// Note: IFileDialog doesn't modify the current directory.
|
||||||
// At least, after it is hidden, the current directory is the same as before it was shown.
|
// At least, after it is hidden, the current directory is the same as before it was shown.
|
||||||
|
lstrcpyn(nppGUI._lastUsedDir, _events->getLastUsedFolder().c_str(), MAX_PATH);
|
||||||
params.setWorkingDir(_events->getLastUsedFolder().c_str());
|
params.setWorkingDir(_events->getLastUsedFolder().c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -986,7 +988,8 @@ CustomFileDialog::CustomFileDialog(HWND hwnd) : _impl{ std::make_unique<Impl>()
|
|||||||
_impl->_hwndOwner = hwnd;
|
_impl->_hwndOwner = hwnd;
|
||||||
|
|
||||||
NppParameters& params = NppParameters::getInstance();
|
NppParameters& params = NppParameters::getInstance();
|
||||||
const TCHAR* workDir = params.getWorkingDir();
|
NppGUI& nppGUI = params.getNppGUI();
|
||||||
|
const TCHAR* workDir = nppGUI._openSaveDir == dir_last ? nppGUI._lastUsedDir : params.getWorkingDir();
|
||||||
if (workDir)
|
if (workDir)
|
||||||
_impl->_fallbackFolder = workDir;
|
_impl->_fallbackFolder = workDir;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user