ON_MESSAGE(WM_FILTEREDIT_CANCELCLICKED, OnClickedCancelFilter)\r
ON_EN_CHANGE(IDC_FILTER, &CFileDiffDlg::OnEnChangeFilter)\r
ON_WM_TIMER()\r
- ON_EN_CHANGE(IDC_REV1EDIT, &CFileDiffDlg::OnEnChangeRev1edit)\r
- ON_EN_CHANGE(IDC_REV2EDIT, &CFileDiffDlg::OnEnChangeRev2edit)\r
+ ON_MESSAGE(ENAC_UPDATE, &CFileDiffDlg::OnEnUpdate)\r
ON_MESSAGE(MSG_REF_LOADED, OnRefLoad)\r
END_MESSAGE_MAP()\r
\r
\r
if(m_rev2.m_CommitHash.IsEmpty())\r
m_SwitchButton.EnableWindow(FALSE);\r
+\r
+ KillTimer(IDT_INPUT);\r
return FALSE;\r
}\r
\r
\r
}\r
\r
-void CFileDiffDlg::SetURLLabels()\r
+void CFileDiffDlg::SetURLLabels(int mask)\r
{\r
\r
// m_cRev1Btn.SetWindowText(m_rev1.m_CommitHash.ToString().Left(6));\r
// m_cRev2Btn.SetWindowText(m_rev2.m_CommitHash.ToString().Left(6));\r
\r
- SetDlgItemText(IDC_FIRSTURL, m_rev1.m_CommitHash.ToString().Left(8)+_T(": ")+m_rev1.m_Subject);\r
- SetDlgItemText(IDC_SECONDURL,m_rev2.m_CommitHash.ToString().Left(8)+_T(": ")+m_rev2.m_Subject);\r
+ if(mask &0x1)\r
+ {\r
+ SetDlgItemText(IDC_FIRSTURL, m_rev1.m_CommitHash.ToString().Left(8)+_T(": ")+m_rev1.m_Subject);\r
+ m_tooltips.AddTool(IDC_FIRSTURL, \r
+ CAppUtils::FormatDateAndTime( m_rev1.m_AuthorDate, DATE_SHORTDATE, false )+_T(" ")+m_rev1.m_AuthorName);\r
+ \r
+ }\r
\r
- m_tooltips.AddTool(IDC_FIRSTURL, \r
- CAppUtils::FormatDateAndTime( m_rev1.m_AuthorDate, DATE_SHORTDATE, false )+_T(" ")+m_rev1.m_AuthorName);\r
- m_tooltips.AddTool(IDC_SECONDURL, \r
- CAppUtils::FormatDateAndTime( m_rev2.m_AuthorDate, DATE_SHORTDATE, false )+_T(" ")+m_rev2.m_AuthorName);\r
+ if(mask &0x2)\r
+ {\r
+ SetDlgItemText(IDC_SECONDURL,m_rev2.m_CommitHash.ToString().Left(8)+_T(": ")+m_rev2.m_Subject);\r
+\r
+ m_tooltips.AddTool(IDC_SECONDURL, \r
+ CAppUtils::FormatDateAndTime( m_rev2.m_AuthorDate, DATE_SHORTDATE, false )+_T(" ")+m_rev2.m_AuthorName);\r
+ }\r
\r
}\r
\r
+void CFileDiffDlg::ClearURLabels(int mask)\r
+{\r
+ if(mask&0x1)\r
+ {\r
+ SetDlgItemText(IDC_FIRSTURL, _T(""));\r
+ m_tooltips.AddTool(IDC_FIRSTURL, _T(""));\r
+ }\r
+\r
+ if(mask&0x2)\r
+ {\r
+ SetDlgItemText(IDC_SECONDURL, _T(""));\r
+ m_tooltips.AddTool(IDC_SECONDURL, _T(""));\r
+ }\r
+}\r
BOOL CFileDiffDlg::PreTranslateMessage(MSG* pMsg)\r
{\r
m_tooltips.RelayEvent(pMsg);\r
{\r
\r
ClickRevButton(&this->m_cRev1Btn,&this->m_rev1, &this->m_ctrRev1Edit);\r
+ \r
\r
}\r
\r
InterlockedExchange(&m_bThreadRunning, FALSE);\r
CMessageBox::Show(NULL, IDS_ERR_THREADSTARTFAILED, IDS_APPNAME, MB_OK | MB_ICONERROR);\r
}\r
+ KillTimer(IDT_INPUT);\r
}\r
\r
void CFileDiffDlg::OnBnClickedRev2btn()\r
if (m_bThreadRunning)\r
return;\r
\r
- CString sFilterText;\r
- KillTimer(IDT_FILTER);\r
- m_cFilter.GetWindowText(sFilterText);\r
+ if( nIDEvent == IDT_FILTER)\r
+ {\r
\r
- m_cFileList.SetRedraw(FALSE);\r
- m_cFileList.DeleteAllItems();\r
+ CString sFilterText;\r
+ KillTimer(IDT_FILTER);\r
+ m_cFilter.GetWindowText(sFilterText);\r
\r
- Filter(sFilterText);\r
+ m_cFileList.SetRedraw(FALSE);\r
+ m_cFileList.DeleteAllItems();\r
\r
- m_cFileList.SetRedraw(TRUE);\r
+ Filter(sFilterText);\r
+\r
+ m_cFileList.SetRedraw(TRUE);\r
+\r
+ __super::OnTimer(nIDEvent);\r
+ }\r
\r
- __super::OnTimer(nIDEvent);\r
+ if( nIDEvent == IDT_INPUT)\r
+ {\r
+ KillTimer(IDT_INPUT);\r
+ TRACE(_T("Input Timer\r\n"));\r
+\r
+ GitRev gitrev;\r
+ CString str;\r
+ int mask = 0;\r
+ this->m_ctrRev1Edit.GetWindowText(str);\r
+ if( !gitrev.GetCommit(str) )\r
+ {\r
+ this->m_rev1=gitrev;\r
+ mask |= 0x1;\r
+ this->SetURLLabels(0x1);\r
+ }\r
+\r
+ this->m_ctrRev2Edit.GetWindowText(str);\r
+\r
+ if( !gitrev.GetCommit(str) )\r
+ {\r
+ this->m_rev2=gitrev;\r
+ mask |= 0x2;\r
+ this->SetURLLabels(0x2);\r
+ }\r
+ \r
+ if(mask == 0x3)\r
+ {\r
+ InterlockedExchange(&m_bThreadRunning, TRUE);\r
+ if (AfxBeginThread(DiffThreadEntry, this)==NULL)\r
+ {\r
+ InterlockedExchange(&m_bThreadRunning, FALSE);\r
+ CMessageBox::Show(NULL, IDS_ERR_THREADSTARTFAILED, IDS_APPNAME, MB_OK | MB_ICONERROR);\r
+ }\r
+ }\r
+ }\r
}\r
\r
void CFileDiffDlg::Filter(CString sFilterText)\r
}\r
return 0;\r
}\r
+\r
+BOOL CFileDiffDlg::DestroyWindow()\r
+{\r
+ return CResizableStandAloneDialog::DestroyWindow();\r
+}\r
+\r
+LRESULT CFileDiffDlg::OnEnUpdate(WPARAM wParam, LPARAM lParam)\r
+{\r
+ if(lParam == IDC_REV1EDIT)\r
+ {\r
+ OnTextUpdate(&this->m_ctrRev1Edit);\r
+ ClearURLabels(1);\r
+ }\r
+ if(lParam == IDC_REV2EDIT)\r
+ {\r
+ OnTextUpdate(&this->m_ctrRev2Edit);\r
+ ClearURLabels(1<<1);\r
+ }\r
+ return 0;\r
+}\r
+\r
+void CFileDiffDlg::OnTextUpdate(CACEdit *pEdit)\r
+{\r
+ SetTimer(IDT_INPUT, 1000, NULL);\r
+ this->m_cFileList.ShowText(_T("Wait For input validate version"));\r
+}
\ No newline at end of file