Column.fmt = LVCFMT_RIGHT;\r
m_LogList.SetColumn(0, &Column); \r
\r
+// CString log;\r
+// g_Git.GetLog(log);\r
+\r
temp.LoadString(IDS_LOG_ACTIONS);\r
m_LogList.InsertColumn(1, temp);\r
temp.LoadString(IDS_LOG_AUTHOR);\r
// we fill here the log message rich edit control,\r
// and also populate the changed files list control\r
// according to the selected revision(s).\r
-\r
+#if 0\r
CWnd * pMsgView = GetDlgItem(IDC_MSGVIEW);\r
// empty the log message view\r
pMsgView->SetWindowText(_T(" "));\r
else\r
SetSortArrow(&m_ChangedFileListCtrl, -1, false);\r
m_ChangedFileListCtrl.SetRedraw(TRUE);\r
+#endif\r
}\r
\r
void CLogDlg::OnBnClickedGetall()\r
return ((CLogDlg*)pVoid)->LogThread();\r
}\r
\r
-\r
+GitRev g_rev;\r
//this is the thread function which calls the subversion function\r
UINT CLogDlg::LogThread()\r
{\r
-#if 0\r
+\r
InterlockedExchange(&m_bThreadRunning, TRUE);\r
\r
//does the user force the cache to refresh (shift or control key down)?\r
m_LogProgress.SetRange32(0, 100);\r
m_LogProgress.SetPos(0);\r
GetDlgItem(IDC_PROGRESS)->ShowWindow(TRUE);\r
- git_revnum_t r = -1;\r
+// git_revnum_t r = -1;\r
\r
// get the repository root url, because the changed-files-list has the\r
// paths shown there relative to the repository root.\r
- CTGitPath rootpath;\r
- BOOL succeeded = GetRootAndHead(m_path, rootpath, r);\r
+// CTGitPath rootpath;\r
+// BOOL succeeded = GetRootAndHead(m_path, rootpath, r);\r
\r
- m_sRepositoryRoot = rootpath.GetGitPathString();\r
- m_sURL = m_path.GetGitPathString();\r
+// m_sRepositoryRoot = rootpath.GetGitPathString();\r
+// m_sURL = m_path.GetGitPathString();\r
\r
// we need the UUID to unambigously identify the log cache\r
- if (logCachePool.IsEnabled())\r
- m_sUUID = logCachePool.GetRepositoryInfo().GetRepositoryUUID (rootpath);\r
+// if (logCachePool.IsEnabled())\r
+// m_sUUID = logCachePool.GetRepositoryInfo().GetRepositoryUUID (rootpath);\r
\r
// if the log dialog is started from a working copy, we need to turn that\r
// local path into an url here\r
- if (succeeded)\r
- {\r
- if (!m_path.IsUrl())\r
- {\r
- m_sURL = GetURLFromPath(m_path);\r
+// if (succeeded)\r
+// {\r
+// if (!m_path.IsUrl())\r
+// {\r
+// m_sURL = GetURLFromPath(m_path);\r
\r
// The URL is escaped because Git::logReceiver\r
// returns the path in a native format\r
- m_sURL = CPathUtils::PathUnescape(m_sURL);\r
- }\r
- m_sRelativeRoot = m_sURL.Mid(CPathUtils::PathUnescape(m_sRepositoryRoot).GetLength());\r
- m_sSelfRelativeURL = m_sRelativeRoot;\r
- }\r
-\r
+// m_sURL = CPathUtils::PathUnescape(m_sURL);\r
+ // }\r
+// m_sRelativeRoot = m_sURL.Mid(CPathUtils::PathUnescape(m_sRepositoryRoot).GetLength());\r
+// m_sSelfRelativeURL = m_sRelativeRoot;\r
+ // }\r
+#if 0\r
if (succeeded && !m_mergePath.IsEmpty() && m_mergedRevs.empty())\r
{\r
// in case we got a merge path set, retrieve the merge info\r
m_DateTo.SetRange(&m_timFrom, &m_timTo);\r
m_DateFrom.SetTime(&m_timFrom);\r
m_DateTo.SetTime(&m_timTo);\r
-\r
+#endif\r
DialogEnableWindow(IDC_GETALL, TRUE);\r
+ m_LogList.ClearText();\r
+\r
+ this->m_logEntries.ClearAll();\r
+ this->m_logEntries.ParserFromLog();\r
+ m_LogList.SetItemCountEx(this->m_logEntries.size());\r
\r
+ this->m_arShownList.Add(&g_rev);\r
+ g_rev.m_AuthorName.Append(_T("Frank Li"));\r
+ \r
+#if 0 \r
if (!m_bShowedAll)\r
DialogEnableWindow(IDC_NEXTHUNDRED, TRUE);\r
+#endif\r
DialogEnableWindow(IDC_CHECK_STOPONCOPY, TRUE);\r
DialogEnableWindow(IDC_INCLUDEMERGE, TRUE);\r
DialogEnableWindow(IDC_STATBUTTON, TRUE);\r
DialogEnableWindow(IDC_REFRESH, TRUE);\r
\r
+#if 0\r
LogCache::CRepositoryInfo& cachedProperties = logCachePool.GetRepositoryInfo();\r
SetDlgTitle(cachedProperties.IsOffline (m_sUUID, m_sRepositoryRoot, false));\r
\r
GetDlgItem(IDC_PROGRESS)->ShowWindow(FALSE);\r
m_bCancelled = true;\r
+#endif\r
InterlockedExchange(&m_bThreadRunning, FALSE);\r
m_LogList.RedrawItems(0, m_arShownList.GetCount());\r
m_LogList.SetRedraw(false);\r
m_LogList.SetItemState(0, LVIS_SELECTED, LVIS_SELECTED);\r
}\r
}\r
+\r
if (!GetDlgItem(IDOK)->IsWindowVisible())\r
{\r
temp.LoadString(IDS_MSGBOX_OK);\r
SetDlgItemText(IDCANCEL, temp);\r
}\r
+\r
RefreshCursor();\r
// make sure the filter is applied (if any) now, after we refreshed/fetched\r
// the log messages\r
PostMessage(WM_TIMER, LOGFILTER_TIMER);\r
-#endif\r
+\r
return 0;\r
}\r
\r
\r
void CLogDlg::OnNMCustomdrawLoglist(NMHDR *pNMHDR, LRESULT *pResult)\r
{\r
-#if 0\r
+\r
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );\r
// Take the default processing unless we set this to something else below.\r
*pResult = CDRF_DODEFAULT;\r
\r
if (m_arShownList.GetCount() > (INT_PTR)pLVCD->nmcd.dwItemSpec)\r
{\r
- PLOGENTRYDATA data = (PLOGENTRYDATA)m_arShownList.GetAt(pLVCD->nmcd.dwItemSpec);\r
+ GitRev* data = (GitRev*)m_arShownList.GetAt(pLVCD->nmcd.dwItemSpec);\r
if (data)\r
{\r
+#if 0\r
if (data->bCopiedSelf)\r
{\r
// only change the background color if the item is not 'hot' (on vista with themes enabled)\r
if (!theme.IsAppThemed() || !m_bVista || ((pLVCD->nmcd.uItemState & CDIS_HOT)==0))\r
pLVCD->clrTextBk = GetSysColor(COLOR_MENU);\r
}\r
+\r
if (data->bCopies)\r
crText = m_Colors.GetColor(CColors::Modified);\r
- if ((data->childStackDepth)||(m_mergedRevs.find(data->Rev) != m_mergedRevs.end()))\r
- crText = GetSysColor(COLOR_GRAYTEXT);\r
- if (data->Rev == m_wcRev)\r
- {\r
- SelectObject(pLVCD->nmcd.hdc, m_boldFont);\r
+#endif\r
+// if ((data->childStackDepth)||(m_mergedRevs.find(data->Rev) != m_mergedRevs.end()))\r
+// crText = GetSysColor(COLOR_GRAYTEXT);\r
+// if (data->Rev == m_wcRev)\r
+// {\r
+// SelectObject(pLVCD->nmcd.hdc, m_boldFont);\r
// We changed the font, so we're returning CDRF_NEWFONT. This\r
// tells the control to recalculate the extent of the text.\r
- *pResult = CDRF_NOTIFYSUBITEMDRAW | CDRF_NEWFONT;\r
- }\r
+// *pResult = CDRF_NOTIFYSUBITEMDRAW | CDRF_NEWFONT;\r
+// }\r
}\r
}\r
if (m_arShownList.GetCount() == (INT_PTR)pLVCD->nmcd.dwItemSpec)\r
int iconwidth = ::GetSystemMetrics(SM_CXSMICON);\r
int iconheight = ::GetSystemMetrics(SM_CYSMICON);\r
\r
- PLOGENTRYDATA pLogEntry = reinterpret_cast<PLOGENTRYDATA>(m_arShownList.GetAt(pLVCD->nmcd.dwItemSpec));\r
+ GitRev* pLogEntry = reinterpret_cast<GitRev *>(m_arShownList.GetAt(pLVCD->nmcd.dwItemSpec));\r
\r
// Get the selected state of the\r
// item being drawn.\r
}\r
else\r
{\r
+#if 0\r
if (pLogEntry->bCopiedSelf)\r
{\r
// unfortunately, the pLVCD->nmcd.uItemState does not contain valid\r
}\r
}\r
}\r
+#endif\r
}\r
\r
if (theme.IsBackgroundPartiallyTransparent(LVP_LISTDETAIL, state))\r
}\r
else\r
{\r
- if (pLogEntry->bCopiedSelf)\r
- brush = ::CreateSolidBrush(::GetSysColor(COLOR_MENU));\r
- else\r
+ //if (pLogEntry->bCopiedSelf)\r
+ // brush = ::CreateSolidBrush(::GetSysColor(COLOR_MENU));\r
+ //else\r
brush = ::CreateSolidBrush(::GetSysColor(COLOR_WINDOW));\r
}\r
if (brush == NULL)\r
::FillRect(pLVCD->nmcd.hdc, &rect, brush);\r
::DeleteObject(brush);\r
}\r
-\r
+#if 0\r
// Draw the icon(s) into the compatible DC\r
if (pLogEntry->actions & LOGACTIONS_MODIFIED)\r
::DrawIconEx(pLVCD->nmcd.hdc, rect.left + ICONITEMBORDER, rect.top, m_hModifiedIcon, iconwidth, iconheight, 0, NULL, DI_NORMAL);\r
if (pLogEntry->actions & LOGACTIONS_REPLACED)\r
::DrawIconEx(pLVCD->nmcd.hdc, rect.left+nIcons*iconwidth + ICONITEMBORDER, rect.top, m_hReplacedIcon, iconwidth, iconheight, 0, NULL, DI_NORMAL);\r
nIcons++;\r
-\r
+#endif\r
*pResult = CDRF_SKIPDEFAULT;\r
return;\r
}\r
break;\r
}\r
*pResult = CDRF_DODEFAULT;\r
-#endif\r
+\r
}\r
void CLogDlg::OnNMCustomdrawChangedFileList(NMHDR *pNMHDR, LRESULT *pResult)\r
{\r
\r
LRESULT CLogDlg::OnClickedCancelFilter(WPARAM /*wParam*/, LPARAM /*lParam*/)\r
{\r
+#if 0\r
KillTimer(LOGFILTER_TIMER);\r
\r
m_sFilterText.Empty();\r
GetDlgItem(IDC_SEARCHEDIT)->ShowWindow(SW_SHOW);\r
GetDlgItem(IDC_SEARCHEDIT)->SetFocus();\r
UpdateLogInfoLabel();\r
+#endif\r
return 0L; \r
}\r
\r
\r
// Which item number?\r
int itemid = pItem->iItem;\r
- PLOGENTRYDATA pLogEntry = NULL;\r
+ GitRev * pLogEntry = NULL;\r
if (itemid < m_arShownList.GetCount())\r
- pLogEntry = reinterpret_cast<PLOGENTRYDATA>(m_arShownList.GetAt(pItem->iItem));\r
+ pLogEntry = reinterpret_cast<GitRev*>(m_arShownList.GetAt(pItem->iItem));\r
\r
// Which column?\r
switch (pItem->iSubItem)\r
case 0: //revision\r
if (pLogEntry)\r
{\r
+#if 0\r
_stprintf_s(pItem->pszText, pItem->cchTextMax, _T("%ld"), pLogEntry->Rev);\r
// to make the child entries indented, add spaces\r
size_t len = _tcslen(pItem->pszText);\r
nSpaces--;\r
}\r
*pBuf = 0;\r
+#endif\r
}\r
break;\r
case 1: //action -- no text in the column\r
break;\r
case 2: //author\r
if (pLogEntry)\r
- lstrcpyn(pItem->pszText, (LPCTSTR)pLogEntry->sAuthor, pItem->cchTextMax);\r
+ lstrcpyn(pItem->pszText, (LPCTSTR)pLogEntry->m_AuthorName, pItem->cchTextMax);\r
break;\r
case 3: //date\r
+#if 0\r
if (pLogEntry)\r
lstrcpyn(pItem->pszText, (LPCTSTR)pLogEntry->sDate, pItem->cchTextMax);\r
break;\r
+#endif\r
case 4: //message or bug id\r
+#if 0\r
if (m_bShowBugtraqColumn)\r
{\r
if (pLogEntry)\r
lstrcpyn(pItem->pszText, (LPCTSTR)pLogEntry->sBugIDs, pItem->cchTextMax);\r
break;\r
}\r
+#endif\r
// fall through here!\r
case 5:\r
+#if 0\r
if (pLogEntry)\r
{\r
// Add as many characters as possible from the short log message\r
sTemp.LoadString(IDS_LOG_STOPONCOPY_HINT);\r
lstrcpyn(pItem->pszText, sTemp, pItem->cchTextMax);\r
}\r
+#endif\r
break;\r
default:\r
ASSERT(false);\r
\r
void CLogDlg::OnEnChangeSearchedit()\r
{\r
+#if 0\r
UpdateData();\r
if (m_sFilterText.IsEmpty())\r
{\r
SetTimer(LOGFILTER_TIMER, 1000, NULL);\r
else\r
KillTimer(LOGFILTER_TIMER);\r
+#endif\r
}\r
\r
bool CLogDlg::ValidateRegexp(LPCTSTR regexp_str, tr1::wregex& pat, bool bMatchCase /* = false */)\r
\r
BOOL CLogDlg::IsEntryInDateRange(int i)\r
{\r
+#if 0\r
__time64_t time = m_logEntries[i]->tmDate;\r
if ((time >= m_tFrom)&&(time <= m_tTo))\r
return TRUE;\r
+#endif\r
return FALSE;\r
+\r
}\r
\r
CTGitPathList CLogDlg::GetChangedPathsFromSelectedRevisions(bool bRelativePaths /* = false */, bool bUseFilter /* = true */)\r
\r
void CLogDlg::SortByColumn(int nSortColumn, bool bAscending)\r
{\r
+#if 0\r
switch(nSortColumn)\r
{\r
case 0: // Revision\r
ATLASSERT(0);\r
break;\r
}\r
+#endif\r
}\r
\r
void CLogDlg::OnLvnColumnclick(NMHDR *pNMHDR, LRESULT *pResult)\r
return;\r
if (pFindInfo->lvfi.psz == 0)\r
return;\r
- \r
+#if 0\r
CString sCmp = pFindInfo->lvfi.psz;\r
CString sRev; \r
for (int i=pFindInfo->iStart; i<m_arShownList.GetCount(); ++i)\r
{\r
- PLOGENTRYDATA pLogEntry = reinterpret_cast<PLOGENTRYDATA>(m_arShownList.GetAt(i));\r
+ GitRev * pLogEntry = reinterpret_cast<GitRev*>(m_arShownList.GetAt(i));\r
sRev.Format(_T("%ld"), pLogEntry->Rev);\r
if (pFindInfo->lvfi.flags & LVFI_PARTIAL)\r
{\r
}\r
}\r
}\r
-\r
+#endif\r
*pResult = -1;\r
}\r
\r
\r
void CLogDlg::UpdateLogInfoLabel()\r
{\r
+#if 0\r
git_revnum_t rev1 = 0;\r
git_revnum_t rev2 = 0;\r
long selectedrevs = 0;\r
CString sTemp;\r
sTemp.Format(IDS_LOG_LOGINFOSTRING, m_arShownList.GetCount(), rev2, rev1, selectedrevs);\r
m_sLogInfo = sTemp;\r
+#endif\r
UpdateData(FALSE);\r
}\r
\r
}\r
return url;\r
}\r
+\r
+\r
+int CLogDataVector::ParserFromLog()\r
+{\r
+ CString log;\r
+ GitRev rev;\r
+ g_Git.GetLog(log);\r
+\r
+ CString begin;\r
+ begin.Format(_T("#<%c>"),LOG_REV_ITEM_BEGIN);\r
+ \r
+ if(log.GetLength()==0)\r
+ return 0;\r
+ \r
+ int start=4;\r
+ int length;\r
+ int next =1;\r
+ while( next>0 )\r
+ {\r
+ next=log.Find(begin,start);\r
+ if(next >0 )\r
+ length = next - start+4;\r
+ else\r
+ length = log.GetLength()-start+4;\r
+\r
+ CString onelog =log;\r
+ onelog=log.Mid(start -4,length);\r
+ rev.ParserFromLog(onelog);\r
+ this->push_back(rev);\r
+ start = next +4;\r
+ }\r
+\r
+ return 0;\r
+}\r