m_pProgDlg(NULL),\r
m_bCancelled(false)\r
{\r
+ m_bLoadingRef=FALSE;\r
}\r
\r
CFileDiffDlg::~CFileDiffDlg()\r
ON_WM_TIMER()\r
ON_EN_CHANGE(IDC_REV1EDIT, &CFileDiffDlg::OnEnChangeRev1edit)\r
ON_EN_CHANGE(IDC_REV2EDIT, &CFileDiffDlg::OnEnChangeRev2edit)\r
+ ON_MESSAGE(MSG_REF_LOADED, OnRefLoad)\r
END_MESSAGE_MAP()\r
\r
\r
CMessageBox::Show(NULL, IDS_ERR_THREADSTARTFAILED, IDS_APPNAME, MB_OK | MB_ICONERROR);\r
}\r
\r
+ InterlockedExchange(&m_bLoadingRef, TRUE);\r
+ if (AfxBeginThread(LoadRefThreadEntry, this)==NULL)\r
+ {\r
+ InterlockedExchange(&m_bLoadingRef, FALSE);\r
+ CMessageBox::Show(NULL, IDS_ERR_THREADSTARTFAILED, IDS_APPNAME, MB_OK | MB_ICONERROR);\r
+ }\r
+\r
+\r
this->m_cRev1Btn.AddEntry(_T("RefBrowse"));\r
this->m_cRev1Btn.AddEntry(_T("Log"));\r
this->m_cRev1Btn.AddEntry(_T("RefLog"));\r
this->m_cRev2Btn.EnableWindow(b);\r
m_cFilter.EnableWindow(b);\r
m_SwitchButton.EnableWindow(b);\r
- \r
}\r
\r
void CFileDiffDlg::DoDiff(int selIndex, bool blame)\r
}\r
}\r
\r
+UINT CFileDiffDlg::LoadRefThread()\r
+{\r
+ g_Git.GetBranchList(m_Reflist,NULL,CGit::BRANCH_ALL);\r
+ g_Git.GetTagList(m_Reflist);\r
+\r
+ this->PostMessage(MSG_REF_LOADED);\r
+ InterlockedExchange(&m_bLoadingRef, FALSE);\r
+ return 0;\r
+}\r
+\r
void CFileDiffDlg::OnContextMenu(CWnd* pWnd, CPoint point)\r
{\r
if ((pWnd==0)||(pWnd != &m_cFileList))\r
\r
// TODO: Add your control notification handler code here\r
}\r
+\r
+LRESULT CFileDiffDlg::OnRefLoad(WPARAM wParam, LPARAM lParam)\r
+{\r
+ for(int i=0;i<m_Reflist.size();i++)\r
+ {\r
+ CString str=m_Reflist[i];\r
+ \r
+ if(str.Find(_T("remotes/")) == 0)\r
+ str=str.Mid(8);\r
+\r
+ m_ctrRev1Edit.AddSearchString(str);\r
+ m_ctrRev2Edit.AddSearchString(str);\r
+ }\r
+ return 0;\r
+}\r