From 052a2fc84adaa4d81f3bfa1270df667fcb4c4c95 Mon Sep 17 00:00:00 2001 From: Sup Yut Sum Date: Fri, 3 Oct 2014 20:40:10 +0800 Subject: [PATCH] Do not use static CComboBox variable Signed-off-by: Sup Yut Sum --- src/TortoiseProc/Settings/SetDialogs3.cpp | 12 +++++++++--- src/TortoiseProc/Settings/SetDialogs3.h | 3 ++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/TortoiseProc/Settings/SetDialogs3.cpp b/src/TortoiseProc/Settings/SetDialogs3.cpp index 904d516ba..19367fdff 100644 --- a/src/TortoiseProc/Settings/SetDialogs3.cpp +++ b/src/TortoiseProc/Settings/SetDialogs3.cpp @@ -22,7 +22,7 @@ #include "ProjectProperties.h" #include "SetDialogs3.h" -CComboBox CSetDialogs3::m_langCombo; +static std::vector g_langs; IMPLEMENT_DYNAMIC(CSetDialogs3, ISettingsPropPage) CSetDialogs3::CSetDialogs3() @@ -79,7 +79,10 @@ BOOL CSetDialogs3::OnInitDialog() m_langCombo.AddString(_T("(disable)")); // do not translate, the order matters! m_langCombo.SetItemData(2, (DWORD_PTR)-1); // fill the combo box with all available languages + g_langs.clear(); EnumSystemLocales(EnumLocalesProc, LCID_SUPPORTED); + for (DWORD langID : g_langs) + AddLangToCombo(langID); m_tooltips.Create(this); @@ -278,7 +281,12 @@ BOOL CSetDialogs3::OnApply() BOOL CSetDialogs3::EnumLocalesProc(LPTSTR lpLocaleString) { DWORD langID = _tcstol(lpLocaleString, NULL, 16); + g_langs.push_back(langID); + return TRUE; +} +void CSetDialogs3::AddLangToCombo(DWORD langID) +{ TCHAR buf[MAX_PATH] = {0}; GetLocaleInfo(langID, LOCALE_SNATIVELANGNAME, buf, _countof(buf)); CString sLang = buf; @@ -292,6 +300,4 @@ BOOL CSetDialogs3::EnumLocalesProc(LPTSTR lpLocaleString) int index = m_langCombo.AddString(sLang); m_langCombo.SetItemData(index, langID); - - return TRUE; } diff --git a/src/TortoiseProc/Settings/SetDialogs3.h b/src/TortoiseProc/Settings/SetDialogs3.h index 4fb61101d..74bf3ff30 100644 --- a/src/TortoiseProc/Settings/SetDialogs3.h +++ b/src/TortoiseProc/Settings/SetDialogs3.h @@ -56,11 +56,12 @@ protected: GITSETTINGS_RADIO_EVENT_HANDLE; static BOOL CALLBACK EnumLocalesProc(LPTSTR lpLocaleString); + void AddLangToCombo(DWORD langID); private: bool m_bNeedSave; CToolTips m_tooltips; - static CComboBox m_langCombo; + CComboBox m_langCombo; CString m_LogMinSize; BOOL m_bInheritLogMinSize; CString m_Border; -- 2.11.4.GIT