m_bFilterWithRegex = !!CRegDWORD(_T("Software\\TortoiseGit\\UseRegexFilter"), TRUE);\r
\r
g_Git.GetMapHashToFriendName(m_HashMap);\r
+\r
+ m_From=CTime(1970,1,2,0,0,0);\r
+ m_To=CTime::GetCurrentTime();\r
}\r
\r
CGitLogList::~CGitLogList()\r
\r
}\r
\r
-void Refresh()\r
-{\r
- \r
-}\r
\r
BOOL CGitLogList::GetShortName(CString ref, CString &shortname,CString prefix)\r
{\r
return ((CGitLogList*)pVoid)->LogThread();\r
}\r
\r
+void CGitLogList::GetTimeRange(CTime &oldest, CTime &latest)\r
+{\r
+ //CTime time;\r
+ oldest=CTime::GetCurrentTime();\r
+ latest=CTime(1971,1,2,0,0,0);\r
+ for(int i=0;i<m_logEntries.size();i++)\r
+ {\r
+ if(m_logEntries[i].m_AuthorDate.GetTime() < oldest.GetTime())\r
+ oldest = m_logEntries[i].m_AuthorDate.GetTime();\r
+\r
+ if(m_logEntries[i].m_AuthorDate.GetTime() > latest.GetTime())\r
+ latest = m_logEntries[i].m_AuthorDate.GetTime();\r
+\r
+ }\r
+}\r
\r
UINT CGitLogList::LogThread()\r
{\r
InterlockedExchange(&m_bNoDispUpdates, FALSE);\r
CMessageBox::Show(NULL, IDS_ERR_THREADSTARTFAILED, IDS_APPNAME, MB_OK | MB_ICONERROR);\r
}\r
+ m_sFilterText.Empty();\r
+ m_From=CTime(1970,1,2,0,0,0);\r
+ m_To=CTime::GetCurrentTime();\r
}\r
}\r
bool CGitLogList::ValidateRegexp(LPCTSTR regexp_str, tr1::wregex& pat, bool bMatchCase /* = false */)\r
\r
BOOL CGitLogList::IsEntryInDateRange(int i)\r
{\r
-#if 0\r
- __time64_t time = m_logEntries[i]->tmDate;\r
- if ((time >= m_tFrom)&&(time <= m_tTo))\r
+ __time64_t time = m_logEntries[i].m_AuthorDate.GetTime();\r
+ if ((time >= m_From.GetTime())&&(time <= m_To.GetTime()))\r
return TRUE;\r
\r
return FALSE;\r
\r
-#endif;\r
- return TRUE;\r
+// return TRUE;\r
}\r
void CGitLogList::StartFilter()\r
{\r
SetItemCountEx(ShownCountWithStopped());\r
RedrawItems(0, ShownCountWithStopped());\r
SetRedraw(false);\r
- ResizeAllListCtrlCols();\r
+ //ResizeAllListCtrlCols();\r
SetRedraw(true);\r
Invalidate();\r
}\r
\r
// first start a thread to obtain the log messages without\r
// blocking the dialog\r
- m_tTo = 0;\r
- m_tFrom = (DWORD)-1;\r
+ //m_tTo = 0;\r
+ //m_tFrom = (DWORD)-1;\r
\r
m_LogList.FetchLogAsync(LogCallBack,this);\r
\r
\r
PostMessage(WM_TIMER, LOGFILTER_TIMER);\r
\r
+ //CTime time=m_LogList.GetOldestTime();\r
+ CTime begin,end;\r
+ m_LogList.GetTimeRange(begin,end);\r
+ m_DateFrom.SetTime(&begin);\r
+ m_DateTo.SetTime(&end);\r
}\r
\r
m_LogProgress.SetPos(cur);\r
\r
m_LogList.RemoveFilter();\r
\r
+ CTime begin,end;\r
+ m_LogList.GetTimeRange(begin,end);\r
+ m_DateFrom.SetTime(&begin);\r
+ m_DateTo.SetTime(&end);\r
+\r
theApp.DoWaitCursor(-1);\r
GetDlgItem(IDC_SEARCHEDIT)->ShowWindow(SW_HIDE);\r
GetDlgItem(IDC_SEARCHEDIT)->ShowWindow(SW_SHOW);\r
try\r
{\r
CTime time(_time.GetYear(), _time.GetMonth(), _time.GetDay(), 23, 59, 59);\r
- if (time.GetTime() != m_tTo)\r
+ if (time.GetTime() != m_LogList.m_To.GetTime())\r
{\r
- m_tTo = (DWORD)time.GetTime();\r
+ m_LogList.m_To = (DWORD)time.GetTime();\r
SetTimer(LOGFILTER_TIMER, 10, NULL);\r
}\r
}\r
try\r
{\r
CTime time(_time.GetYear(), _time.GetMonth(), _time.GetDay(), 0, 0, 0);\r
- if (time.GetTime() != m_tFrom)\r
+ if (time.GetTime() != m_LogList.m_From.GetTime())\r
{\r
- m_tFrom = (DWORD)time.GetTime();\r
+ m_LogList.m_From = (DWORD)time.GetTime();\r
SetTimer(LOGFILTER_TIMER, 10, NULL);\r
}\r
}\r