diff --git a/Build/Notepad3.ini b/Build/Notepad3.ini index a34227077..582a25bff 100644 --- a/Build/Notepad3.ini +++ b/Build/Notepad3.ini @@ -3,6 +3,8 @@ ;Notepad3.ini=%APPDATA%\Rizonesoft\Notepad3\Notepad3.ini [Settings] SettingsVersion=4 +OpenWithDir=%USERPROFILE%\Desktop +Favorites=%USERPROFILE%\Favorites [Settings2] ;IMEInteraction=0 ;AutoReloadTimeout=2000 diff --git a/src/Config/Config.cpp b/src/Config/Config.cpp index 19eaa26d6..3a8f9e932 100644 --- a/src/Config/Config.cpp +++ b/src/Config/Config.cpp @@ -26,6 +26,7 @@ extern "C" { #include "Dialogs.h" #include "Encoding.h" #include "Notepad3.h" +#include "MuiLanguage.h" #include "resource.h" } @@ -696,11 +697,16 @@ void LoadSettings() // -------------------------------------------------------------------------- + LANGID lngID = 0; Defaults2.PreferredLanguageLocaleName[0] = L'\0'; + GetUserPreferredLanguage(Defaults2.PreferredLanguageLocaleName, COUNTOF(Defaults2.PreferredLanguageLocaleName), &lngID); + IniSectionGetString(IniSecSettings2, L"PreferredLanguageLocaleName", Defaults2.PreferredLanguageLocaleName, Settings2.PreferredLanguageLocaleName, COUNTOF(Settings2.PreferredLanguageLocaleName)); //_wsetlocale(LC_COLLATE, Settings2.PreferredLanguageLocaleName); + // -------------------------------------------------------------------------- + StringCchCopyW(Defaults2.DefaultExtension, COUNTOF(Defaults2.DefaultExtension), L"txt"); IniSectionGetString(IniSecSettings2, L"DefaultExtension", Defaults2.DefaultExtension, Settings2.DefaultExtension, COUNTOF(Settings2.DefaultExtension)); @@ -901,7 +907,7 @@ void LoadSettings() Defaults.EFR_Data.fuFlags = 0; Settings.EFR_Data.fuFlags = (UINT)IniSectionGetInt(IniSecSettings, L"efrData_fuFlags", (int)Defaults.EFR_Data.fuFlags); - Defaults.OpenWithDir[0] = L'\0'; + StringCchCopy(Defaults.OpenWithDir, COUNTOF(Defaults.OpenWithDir), L"%USERPROFILE%\\Desktop"); if (!IniSectionGetString(IniSecSettings, L"OpenWithDir", Defaults.OpenWithDir, Settings.OpenWithDir, COUNTOF(Settings.OpenWithDir))) { GetKnownFolderPath(FOLDERID_Desktop, Settings.OpenWithDir, COUNTOF(Settings.OpenWithDir)); } @@ -909,8 +915,7 @@ void LoadSettings() PathAbsoluteFromApp(Settings.OpenWithDir, NULL, COUNTOF(Settings.OpenWithDir), true); } - Defaults.FavoritesDir[0] = L'\0'; - //StringCchCopyW(Defaults.FavoritesDir, COUNTOF(Defaults.FavoritesDir), L"%USERPROFILE%"); + StringCchCopyW(Defaults.FavoritesDir, COUNTOF(Defaults.FavoritesDir), L"%USERPROFILE%\\Favorites"); if (!IniSectionGetString(IniSecSettings, L"Favorites", Defaults.FavoritesDir, Settings.FavoritesDir, COUNTOF(Settings.FavoritesDir))) { GetKnownFolderPath(FOLDERID_Favorites, Settings.FavoritesDir, COUNTOF(Settings.FavoritesDir)); } @@ -1494,15 +1499,7 @@ bool SaveSettings(bool bSaveSettingsNow) SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, CustomSchemesDlgSizeY); SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, CustomSchemesDlgPosX); SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, CustomSchemesDlgPosY); - - - // -------------------------------------------------------------------------- - const WCHAR* const IniSecSettings2 = Constants.Settings2_Section; - // -------------------------------------------------------------------------- - - IniSectionSetString(IniSecSettings2, L"DefaultWindowPosition", Settings2.DefaultWindowPosition); - IniSectionSetString(IniSecSettings2, L"PreferredLanguageLocaleName", Settings2.PreferredLanguageLocaleName); - + // -------------------------------------------------------------------------- const WCHAR* const IniSecWindow = Constants.Window_Section; // -------------------------------------------------------------------------- diff --git a/src/MuiLanguage.c b/src/MuiLanguage.c index 2afd0c7f0..c4912b6aa 100644 --- a/src/MuiLanguage.c +++ b/src/MuiLanguage.c @@ -140,7 +140,7 @@ static bool _LngStrToMultiLngStr(WCHAR* pLngStr, WCHAR* pLngMultiStr, size_t ln // _GetUserPreferredLanguage // // -static bool _GetUserPreferredLanguage(LPWSTR pszPrefLocaleName, int cchBuffer, LANGID* pLangID) +bool GetUserPreferredLanguage(LPWSTR pszPrefLocaleName, int cchBuffer, LANGID* pLangID) { int res = 0; LANGID lngID = *pLangID; @@ -209,10 +209,13 @@ LANGID LoadLanguageResources() WCHAR wchLngLocalName[LOCALE_NAME_MAX_LENGTH]; StringCchCopy(wchLngLocalName, COUNTOF(wchLngLocalName), Settings2.PreferredLanguageLocaleName); - if (_GetUserPreferredLanguage(wchLngLocalName, COUNTOF(wchLngLocalName), &languageID)) { + if (GetUserPreferredLanguage(wchLngLocalName, COUNTOF(wchLngLocalName), &languageID)) { // push-back (corrected) name found StringCchCopy(Settings2.PreferredLanguageLocaleName, COUNTOF(Settings2.PreferredLanguageLocaleName), wchLngLocalName); //_wsetlocale(LC_COLLATE, Settings2.PreferredLanguageLocaleName); + if (StringCchCompareXIW(Settings2.PreferredLanguageLocaleName, Defaults2.PreferredLanguageLocaleName) != 0) { + IniFileSetString(Globals.IniFile, Constants.Settings2_Section, L"PreferredLanguageLocaleName", Settings2.PreferredLanguageLocaleName); + } } // set the appropriate fallback list diff --git a/src/MuiLanguage.h b/src/MuiLanguage.h index 1310debde..d5efa0ee3 100644 --- a/src/MuiLanguage.h +++ b/src/MuiLanguage.h @@ -33,6 +33,7 @@ typedef struct _muilanguage extern MUILANGUAGE MUI_LanguageDLLs[]; int MuiLanguages_CountOf(); +bool GetUserPreferredLanguage(LPWSTR pszPrefLocaleName, int cchBuffer, LANGID* pLangID); LANGID LoadLanguageResources(); void FreeLanguageResources(); diff --git a/src/Notepad3.c b/src/Notepad3.c index 3ee7d28c3..4003514a4 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -3536,6 +3536,9 @@ static void _DynamicLanguageMenuCmd(int cmd) CloseNonModalDialogs(); StringCchCopyW(Settings2.PreferredLanguageLocaleName, COUNTOF(Settings2.PreferredLanguageLocaleName), MUI_LanguageDLLs[iLngIdx].szLocaleName); + if (StringCchCompareXIW(Settings2.PreferredLanguageLocaleName, Defaults2.PreferredLanguageLocaleName) != 0) { + IniFileSetString(Globals.IniFile, Constants.Settings2_Section, L"PreferredLanguageLocaleName", Settings2.PreferredLanguageLocaleName); + } LockWindowUpdate(Globals.hwndMain); // prevent intermediate redrawing