From 4c2002d305917d3304a9d4e1c20b3cc2997690ce Mon Sep 17 00:00:00 2001 From: lltcggie Date: Sun, 27 Dec 2015 07:42:13 +0900 Subject: [PATCH] =?UTF-8?q?GUI=E3=81=A7UI=E3=81=AE=E8=A8=80=E8=AA=9E?= =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E3=82=82=E4=BF=9D=E5=AD=98=E3=80=81=E5=BE=A9?= =?UTF-8?q?=E5=85=83=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E3=81=97?= =?UTF-8?q?=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- waifu2x-caffe-gui/Source.cpp | 39 +++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/waifu2x-caffe-gui/Source.cpp b/waifu2x-caffe-gui/Source.cpp index ea5cbc2..f22b9ca 100644 --- a/waifu2x-caffe-gui/Source.cpp +++ b/waifu2x-caffe-gui/Source.cpp @@ -158,6 +158,7 @@ private: eModelType modelType; LangStringList langStringList; + std::wstring LangName; private: template @@ -740,6 +741,8 @@ private: WritePrivateProfileString(TEXT("Setting"), TEXT("LastOutputQuality"), boost::lexical_cast(output_quality).c_str(), getTString(SettingFilePath).c_str()); WritePrivateProfileString(TEXT("Setting"), TEXT("LastOutputDepth"), boost::lexical_cast(output_depth).c_str(), getTString(SettingFilePath).c_str()); + + WritePrivateProfileString(TEXT("Setting"), TEXT("LastLanguage"), LangName.c_str(), getTString(SettingFilePath).c_str()); } // 出力パスを選択する @@ -1097,6 +1100,8 @@ public: exeDir = exePath.branch_path(); } + const boost::filesystem::path SettingFilePath(exeDir / SettingFileName); + { const boost::filesystem::path LangDirPath(exeDir / LangDir); const boost::filesystem::path LangListPath(exeDir / LangListFileName); @@ -1104,7 +1109,14 @@ public: langStringList.ReadLangList(getTString(LangListPath)); } - SetWindowTextLang(); + std::wstring langName; + { + TCHAR tmp[1000]; + + GetPrivateProfileString(TEXT("Setting"), TEXT("LastLanguage"), TEXT(""), tmp, _countof(tmp), getTString(SettingFilePath).c_str()); + tmp[_countof(tmp) - 1] = TEXT('\0'); + langName = tmp; + } { HWND hlang = GetDlgItem(dh, IDC_COMBO_LANG); @@ -1115,7 +1127,7 @@ public: const int index = SendMessageW(hlang, CB_ADDSTRING, 0, (LPARAM)lang.LangName.c_str()); } - int defaultListIndex = 0; + size_t defaultListIndex = 0; const auto &DefaultLang = langStringList.GetLang(); for (size_t i = 0; i < list.size(); i++) { @@ -1123,14 +1135,32 @@ public: if (lang.LangName == DefaultLang.LangName && lang.LangID == DefaultLang.LangID && lang.SubLangID == DefaultLang.SubLangID && lang.FileName == DefaultLang.FileName) { - (int)defaultListIndex = i; + defaultListIndex = i; break; } } + if (langName.length() > 0) // 前回起動時の言語があったらそっちを優先 + { + for (size_t i = 0; i < list.size(); i++) + { + const auto &lang = list[i]; + if (lang.LangName == langName) + { + defaultListIndex = i; + langStringList.SetLang(list[i]); + + LangName = langName; + break; + } + } + } + SendMessage(hlang, CB_SETCURSEL, defaultListIndex, 0); } + SetWindowTextLang(); + { HWND houtext = GetDlgItem(dh, IDC_COMBO_OUT_EXT); @@ -1184,8 +1214,6 @@ public: SendMessage(hcrop, CB_SETCURSEL, defaultListIndex, 0); } - const boost::filesystem::path SettingFilePath(exeDir / SettingFileName); - tstring tScale; tstring tmode; tstring tprcess; @@ -1580,6 +1608,7 @@ public: return; langStringList.SetLang(list[cur]); + LangName = list[cur].LangName; SetWindowTextLang(); }