#include "OutputWnd.h"\r
#include "Resource.h"\r
#include "MainFrm.h"\r
+#include "TortoiseGitBlameDoc.h"\r
+#include "TortoiseGitBlameView.h"\r
\r
#ifdef _DEBUG\r
#define new DEBUG_NEW\r
{\r
}\r
\r
+IMPLEMENT_DYNCREATE(CGitMFCTabCtrl, CMFCTabCtrl)\r
+\r
+BEGIN_MESSAGE_MAP(CGitMFCTabCtrl, CMFCTabCtrl)\r
+ ON_NOTIFY(LVN_ITEMCHANGED, 0, OnLvnItemchangedLoglist)\r
+END_MESSAGE_MAP()\r
+\r
+void CGitMFCTabCtrl::OnLvnItemchangedLoglist(NMHDR *pNMHDR, LRESULT *pResult)\r
+{\r
+ COutputWnd *pWnd=DYNAMIC_DOWNCAST(COutputWnd,this->GetParent());\r
+ pWnd->OnLvnItemchangedLoglist(pNMHDR,pResult);\r
+}\r
+\r
BEGIN_MESSAGE_MAP(COutputWnd, CDockablePane)\r
ON_WM_CREATE()\r
ON_WM_SIZE()\r
+ ON_NOTIFY(LVN_ITEMCHANGED, 0, OnLvnItemchangedLoglist)\r
END_MESSAGE_MAP()\r
\r
int COutputWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)\r
if (CDockablePane::OnCreate(lpCreateStruct) == -1)\r
return -1;\r
\r
+ TRACE(_T("%u\n"),LVN_ITEMCHANGED);\r
m_Font.CreateStockObject(DEFAULT_GUI_FONT);\r
\r
CRect rectDummy;\r
rectDummy.SetRectEmpty();\r
\r
// Create tabs window:\r
- if (!m_wndTabs.Create(CMFCTabCtrl::STYLE_FLAT, rectDummy, this, 1))\r
+ if (!m_wndTabs.Create(CMFCTabCtrl::STYLE_FLAT, rectDummy, this, 0))\r
{\r
TRACE0("Failed to create output tab window\n");\r
return -1; // fail to create\r
}\r
\r
// Create output panes:\r
- const DWORD dwStyle = LBS_NOINTEGRALHEIGHT | WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL;\r
+ //const DWORD dwStyle = LBS_NOINTEGRALHEIGHT | WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL;\r
+ const DWORD dwStyle =LVS_REPORT | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_OWNERDATA | WS_BORDER | WS_TABSTOP |LVS_SINGLESEL |WS_CHILD | WS_VISIBLE;\r
\r
+ if (! m_LogList.Create(dwStyle,rectDummy,&m_wndTabs,0) )\r
+ {\r
+ TRACE0("Failed to create output windows\n");\r
+ return -1; // fail to create\r
+ }\r
+#if 0\r
if (!m_wndOutputBuild.Create(dwStyle, rectDummy, &m_wndTabs, 2) ||\r
!m_wndOutputDebug.Create(dwStyle, rectDummy, &m_wndTabs, 3) ||\r
!m_wndOutputFind.Create(dwStyle, rectDummy, &m_wndTabs, 4))\r
TRACE0("Failed to create output windows\n");\r
return -1; // fail to create\r
}\r
+#endif\r
\r
- m_wndOutputBuild.SetFont(&m_Font);\r
- m_wndOutputDebug.SetFont(&m_Font);\r
- m_wndOutputFind.SetFont(&m_Font);\r
+ m_LogList.SetFont(&m_Font);\r
+ //m_wndOutputBuild.SetFont(&m_Font);\r
+ //m_wndOutputDebug.SetFont(&m_Font);\r
+ //m_wndOutputFind.SetFont(&m_Font);\r
\r
CString strTabName;\r
BOOL bNameValid;\r
\r
// Attach list windows to tab:\r
- bNameValid = strTabName.LoadString(IDS_BUILD_TAB);\r
+ bNameValid = strTabName.LoadString(IDS_GIT_LOG_TAB);\r
ASSERT(bNameValid);\r
- m_wndTabs.AddTab(&m_wndOutputBuild, strTabName, (UINT)0);\r
+\r
+ m_wndTabs.AddTab(&m_LogList, strTabName, (UINT)0);\r
+\r
+ m_LogList.m_IsIDReplaceAction=TRUE;\r
+ m_LogList.DeleteAllItems();\r
+ m_LogList.InsertGitColumn();\r
+\r
+\r
+#if 0\r
bNameValid = strTabName.LoadString(IDS_DEBUG_TAB);\r
ASSERT(bNameValid);\r
m_wndTabs.AddTab(&m_wndOutputDebug, strTabName, (UINT)1);\r
bNameValid = strTabName.LoadString(IDS_FIND_TAB);\r
ASSERT(bNameValid);\r
m_wndTabs.AddTab(&m_wndOutputFind, strTabName, (UINT)2);\r
+#endif;\r
\r
// Fill output tabs with some dummy text (nothing magic here)\r
FillBuildWindow();\r
- FillDebugWindow();\r
- FillFindWindow();\r
+// FillDebugWindow();\r
+// FillFindWindow();\r
\r
+ this->SetWindowTextW(_T("Git Log"));\r
return 0;\r
}\r
\r
\r
void COutputWnd::FillBuildWindow()\r
{\r
- m_wndOutputBuild.AddString(_T("Build output is being displayed here."));\r
- m_wndOutputBuild.AddString(_T("The output is being displayed in rows of a list view"));\r
- m_wndOutputBuild.AddString(_T("but you can change the way it is displayed as you wish..."));\r
+// m_wndOutputBuild.AddString(_T("Build output is being displayed here."));\r
+// m_wndOutputBuild.AddString(_T("The output is being displayed in rows of a list view"));\r
+// m_wndOutputBuild.AddString(_T("but you can change the way it is displayed as you wish..."));\r
}\r
\r
void COutputWnd::FillDebugWindow()\r
{\r
- m_wndOutputDebug.AddString(_T("Debug output is being displayed here."));\r
- m_wndOutputDebug.AddString(_T("The output is being displayed in rows of a list view"));\r
- m_wndOutputDebug.AddString(_T("but you can change the way it is displayed as you wish..."));\r
+// m_wndOutputDebug.AddString(_T("Debug output is being displayed here."));\r
+// m_wndOutputDebug.AddString(_T("The output is being displayed in rows of a list view"));\r
+// m_wndOutputDebug.AddString(_T("but you can change the way it is displayed as you wish..."));\r
}\r
\r
void COutputWnd::FillFindWindow()\r
{\r
- m_wndOutputFind.AddString(_T("Find output is being displayed here."));\r
- m_wndOutputFind.AddString(_T("The output is being displayed in rows of a list view"));\r
- m_wndOutputFind.AddString(_T("but you can change the way it is displayed as you wish..."));\r
+// m_wndOutputFind.AddString(_T("Find output is being displayed here."));\r
+// m_wndOutputFind.AddString(_T("The output is being displayed in rows of a list view"));\r
+// m_wndOutputFind.AddString(_T("but you can change the way it is displayed as you wish..."));\r
}\r
\r
+int COutputWnd::LoadHistory(CString filename)\r
+{\r
+ m_LogList.ReloadHashMap();\r
+ CTGitPath path;\r
+ path.SetFromWin(filename);\r
+ \r
+ m_LogList.Clear();\r
+ m_LogList.FillGitLog(&path,0/*CGit::LOG_INFO_FULLHISTORY*/);\r
+\r
+ return 0;\r
+\r
+}\r
+void COutputWnd::OnLvnItemchangedLoglist(NMHDR *pNMHDR, LRESULT *pResult)\r
+{\r
+ LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);\r
+ *pResult = 0;\r
+\r
+ //if (this->IsThreadRunning())\r
+ if (pNMLV->iItem >= 0)\r
+ {\r
+ if (pNMLV->iSubItem != 0)\r
+ return;\r
+ \r
+ if (pNMLV->uNewState & LVIS_SELECTED)\r
+ {\r
+ CMainFrame *pMain=DYNAMIC_DOWNCAST(CMainFrame,AfxGetApp()->GetMainWnd());\r
+ POSITION pos=pMain->GetActiveDocument()->GetFirstViewPosition();\r
+ CTortoiseGitBlameView *pView=DYNAMIC_DOWNCAST(CTortoiseGitBlameView,pMain->GetActiveDocument()->GetNextView(pos));\r
+ pView->FocusOn(&this->m_LogList.m_logEntries[pNMLV->iItem]);\r
+ }\r
+ }\r
+}\r
/////////////////////////////////////////////////////////////////////////////\r
// COutputList1\r
\r
}\r
}\r
\r
-\r