void CSubmoduleUpdateDlg::Refresh() { while (m_PathListBox.GetCount() > 0) m_PathListBox.DeleteString(m_PathListBox.GetCount() - 1); CString WorkingDir = g_Git.m_CurrentDir; WorkingDir.Replace(_T(':'), _T('_')); m_regPath = CRegString(CString(_T("Software\\TortoiseGit\\History\\SubmoduleUpdatePath\\") + WorkingDir)); CString path = m_regPath; STRING_VECTOR emptylist; STRING_VECTOR list; GetSubmodulePathList(list, m_bWholeProject ? emptylist : m_PathFilterList); STRING_VECTOR selected; if (m_PathList.empty()) { int pos = 0; while (pos >= 0) { CString part = path.Tokenize(_T("|"), pos); if (!part.IsEmpty()) selected.push_back(part); } } else { for (size_t i = 0; i < m_PathList.size(); ++i) selected.push_back(m_PathList[i]); } for (size_t i = 0; i < list.size(); ++i) { m_PathListBox.AddString(list[i]); if (selected.size() == 0) m_PathListBox.SetSel((int)i); else { for (size_t j = 0; j < selected.size(); ++j) { if (selected[j] == list[i]) m_PathListBox.SetSel((int)i); } } } OnLbnSelchangeListPath(); }
void CSubmoduleUpdateDlg::OnBnClickedSelectall() { UINT state = (m_SelectAll.GetState() & 0x0003); if (state == BST_INDETERMINATE) { // It is not at all useful to manually place the checkbox into the indeterminate state... // We will force this on to the unchecked state state = BST_UNCHECKED; m_SelectAll.SetCheck(state); } if (state == BST_UNCHECKED) { for (int i = 0; i < m_PathListBox.GetCount(); ++i) m_PathListBox.SetSel(i, FALSE); } else { for (int i = 0; i < m_PathListBox.GetCount(); ++i) m_PathListBox.SetSel(i, TRUE); } OnLbnSelchangeListPath(); }