BEGIN_MESSAGE_MAP(CRefLogDlg, CResizableStandAloneDialog)\r
ON_BN_CLICKED(IDOK, &CRefLogDlg::OnBnClickedOk)\r
ON_CBN_SELCHANGE(IDC_COMBOBOXEX_REF, &CRefLogDlg::OnCbnSelchangeRef)\r
+ ON_MESSAGE(MSG_REFLOG_CHANGED,OnRefLogChanged)\r
END_MESSAGE_MAP()\r
\r
+LRESULT CRefLogDlg::OnRefLogChanged(WPARAM wParam, LPARAM lParam)\r
+{\r
+ m_RefList.m_RefMap.clear();\r
+ OnCbnSelchangeRef();\r
+ return 0;\r
+}\r
+\r
BOOL CRefLogDlg::OnInitDialog()\r
{\r
CResizableStandAloneDialog::OnInitDialog();\r
STRING_VECTOR list;\r
g_Git.GetRefList(list);\r
\r
- this->m_ChooseRef.AddString(list);\r
+ if(this->m_CurrentBranch.IsEmpty())\r
+ {\r
+ m_CurrentBranch.Format(_T("refs/heads/%s"),g_Git.GetCurrentBranch());\r
+ }\r
+\r
m_ChooseRef.SetMaxHistoryItems(0x7FFFFFFF);\r
+ this->m_ChooseRef.AddString(list);\r
+ \r
\r
this->m_RefList.InsertRefLogColumn();\r
- m_RefList.m_logEntries.ParserFromRefLog(_T("master"));\r
+ //m_RefList.m_logEntries.ParserFromRefLog(_T("master"));\r
+ \r
+ for(int i=0;i<list.size();i++)\r
+ {\r
+ if(list[i] == m_CurrentBranch)\r
+ {\r
+ m_ChooseRef.SetCurSel(i);\r
+ break;\r
+ }\r
+ }\r
+\r
+ OnCbnSelchangeRef();\r
+\r
return TRUE;\r
}\r
// CRefLogDlg message handlers\r
\r
void CRefLogDlg::OnCbnSelchangeRef()\r
{\r
- \r
+ CString ref=m_ChooseRef.GetString();\r
+ if(m_RefList.m_RefMap.find(ref) == m_RefList.m_RefMap.end())\r
+ {\r
+ m_RefList.m_RefMap[ref].ParserFromRefLog(ref);\r
+ }\r
+ m_RefList.ClearText();\r
+\r
+ //this->m_logEntries.ParserFromLog();\r
+ m_RefList.SetRedraw(false);\r
+\r
+ CLogDataVector *plog;\r
+ plog = &m_RefList.m_RefMap[ref];\r
+\r
+ m_RefList.SetItemCountEx(plog->size());\r
+\r
+ this->m_RefList.m_arShownList.RemoveAll();\r
+\r
+ for(unsigned int i=0;i<m_RefList.m_RefMap[ref].size();i++)\r
+ {\r
+ plog->at(i).m_IsFull=TRUE;\r
+ this->m_RefList.m_arShownList.Add(&(plog->at(i)));\r
+ \r
+ }\r
+\r
+ m_RefList.SetRedraw(true);\r
+\r
+ m_RefList.Invalidate();\r
+\r
}
\ No newline at end of file