1 // RefLogDlg.cpp : implementation file
11 IMPLEMENT_DYNAMIC(CRefLogDlg
, CResizableStandAloneDialog
)
13 CRefLogDlg::CRefLogDlg(CWnd
* pParent
/*=NULL*/)
14 : CResizableStandAloneDialog(CRefLogDlg::IDD
, pParent
)
19 CRefLogDlg::~CRefLogDlg()
23 void CRefLogDlg::DoDataExchange(CDataExchange
* pDX
)
25 CDialog::DoDataExchange(pDX
);
26 DDX_Control(pDX
, IDC_COMBOBOXEX_REF
, m_ChooseRef
);
27 DDX_Control(pDX
, IDC_REFLOG_LIST
, m_RefList
);
31 BEGIN_MESSAGE_MAP(CRefLogDlg
, CResizableStandAloneDialog
)
32 ON_BN_CLICKED(IDOK
, &CRefLogDlg::OnBnClickedOk
)
33 ON_CBN_SELCHANGE(IDC_COMBOBOXEX_REF
, &CRefLogDlg::OnCbnSelchangeRef
)
34 ON_MESSAGE(MSG_REFLOG_CHANGED
,OnRefLogChanged
)
37 LRESULT
CRefLogDlg::OnRefLogChanged(WPARAM wParam
, LPARAM lParam
)
39 m_RefList
.m_RefMap
.clear();
44 BOOL
CRefLogDlg::OnInitDialog()
46 CResizableStandAloneDialog::OnInitDialog();
48 AddAnchor(IDOK
,BOTTOM_RIGHT
);
49 AddAnchor(IDCANCEL
,BOTTOM_RIGHT
);
51 AddAnchor(IDC_REFLOG_LIST
,TOP_LEFT
,BOTTOM_RIGHT
);
54 this->EnableSaveRestore(_T("RefLogDlg"));
57 g_Git
.GetRefList(list
);
59 if(this->m_CurrentBranch
.IsEmpty())
61 m_CurrentBranch
.Format(_T("refs/heads/%s"),g_Git
.GetCurrentBranch());
64 m_ChooseRef
.SetMaxHistoryItems(0x7FFFFFFF);
65 this->m_ChooseRef
.AddString(list
);
68 this->m_RefList
.InsertRefLogColumn();
69 //m_RefList.m_logEntries.ParserFromRefLog(_T("master"));
71 for(int i
=0;i
<list
.size();i
++)
73 if(list
[i
] == m_CurrentBranch
)
75 m_ChooseRef
.SetCurSel(i
);
84 // CRefLogDlg message handlers
86 void CRefLogDlg::OnBnClickedOk()
88 // TODO: Add your control notification handler code here
92 void CRefLogDlg::OnCbnSelchangeRef()
94 CString ref
=m_ChooseRef
.GetString();
95 if(m_RefList
.m_RefMap
.find(ref
) == m_RefList
.m_RefMap
.end())
97 m_RefList
.m_RefMap
[ref
].ParserFromRefLog(ref
);
99 m_RefList
.ClearText();
101 //this->m_logEntries.ParserFromLog();
102 m_RefList
.SetRedraw(false);
104 CLogDataVector
*plog
;
105 plog
= &m_RefList
.m_RefMap
[ref
];
107 m_RefList
.SetItemCountEx(plog
->size());
109 this->m_RefList
.m_arShownList
.RemoveAll();
111 for(unsigned int i
=0;i
<m_RefList
.m_RefMap
[ref
].size();i
++)
113 plog
->at(i
).m_IsFull
=TRUE
;
114 this->m_RefList
.m_arShownList
.Add(&(plog
->at(i
)));
118 m_RefList
.SetRedraw(true);
120 m_RefList
.Invalidate();