return ret;\r
}\r
\r
+int CGit::GetRefList(STRING_VECTOR &list)\r
+{\r
+ int ret;\r
+ CString cmd,output;\r
+ cmd=_T("git show-ref -d");\r
+ ret=g_Git.Run(cmd,&output,CP_UTF8);\r
+ if(!ret)\r
+ {\r
+ int pos=0;\r
+ CString one;\r
+ while( pos>=0 )\r
+ {\r
+ one=output.Tokenize(_T("\n"),pos);\r
+ int start=one.Find(_T(" "),0);\r
+ if(start>0)\r
+ {\r
+ CString name;\r
+ name=one.Right(one.GetLength()-start-1);\r
+ list.push_back(name);\r
+ }\r
+ }\r
+ }\r
+ return ret;\r
+}\r
int CGit::GetMapHashToFriendName(MAP_HASH_NAME &map)\r
{\r
int ret;\r
\r
BOOL IsInitRepos();\r
int ListConflictFile(CTGitPathList &list,CTGitPath *path=NULL);\r
+ int GetRefList(STRING_VECTOR &list);\r
\r
};\r
extern void GetTempPath(CString &path);\r
#include "HelpCommand.h"\r
#include "StashCommand.h"\r
#include "SubmoduleCommand.h"\r
+#include "ReflogCommand.h"\r
+\r
#if 0\r
\r
\r
cmdStashList,\r
cmdSubAdd, \r
cmdSubUpdate, \r
+ cmdRefLog,\r
\r
} TGitCommand;\r
\r
{ cmdStashList, _T("stashlist") },\r
{ cmdSubAdd, _T("subadd") },\r
{ cmdSubUpdate, _T("subupdate") },\r
+ { cmdRefLog, _T("reflog") }\r
};\r
\r
\r
return new SubmoduleAddCommand;\r
case cmdSubUpdate:\r
return new SubmoduleUpdateCommand;\r
+ case cmdRefLog:\r
+ return new RefLogCommand;\r
\r
#if 0\r
\r
#include "DirFileEnum.h"\r
#include "ShellUpdater.h"\r
#include "ChangedDlg.h"\r
+#include "RefLogDlg.h"\r
\r
bool RefLogCommand::Execute()\r
{\r
bool bRet = false;\r
\r
-\r
+ CRefLogDlg dlg;\r
+ dlg.DoModal();\r
return bRet;\r
}\r
#include "stdafx.h"\r
#include "resource.h"\r
#include "RefLogDlg.h"\r
-\r
+#include "git.h"\r
\r
// CRefLogDlg dialog\r
\r
-IMPLEMENT_DYNAMIC(CRefLogDlg, CDialog)\r
+IMPLEMENT_DYNAMIC(CRefLogDlg, CResizableStandAloneDialog)\r
\r
CRefLogDlg::CRefLogDlg(CWnd* pParent /*=NULL*/)\r
- : CDialog(CRefLogDlg::IDD, pParent)\r
+ : CResizableStandAloneDialog(CRefLogDlg::IDD, pParent)\r
{\r
\r
}\r
}\r
\r
\r
-BEGIN_MESSAGE_MAP(CRefLogDlg, CDialog)\r
+BEGIN_MESSAGE_MAP(CRefLogDlg, CResizableStandAloneDialog)\r
ON_BN_CLICKED(IDOK, &CRefLogDlg::OnBnClickedOk)\r
END_MESSAGE_MAP()\r
\r
+BOOL CRefLogDlg::OnInitDialog()\r
+{\r
+ CResizableStandAloneDialog::OnInitDialog();\r
+\r
+ AddAnchor(IDOK,BOTTOM_RIGHT);\r
+ AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
+ \r
+ AddAnchor(IDC_REFLOG_LIST,TOP_LEFT,BOTTOM_RIGHT);\r
+\r
+ AddOthersToAnchor();\r
+ this->EnableSaveRestore(_T("RefLogDlg"));\r
\r
+ STRING_VECTOR list;\r
+ g_Git.GetRefList(list);\r
+\r
+ this->m_ChooseRef.AddString(list);\r
+ m_ChooseRef.SetMaxHistoryItems(0x7FFFFFFF);\r
+\r
+ return TRUE;\r
+}\r
// CRefLogDlg message handlers\r
\r
void CRefLogDlg::OnBnClickedOk()\r
{\r
// TODO: Add your control notification handler code here\r
OnOK();\r
-}\r
+}
\ No newline at end of file
#pragma once\r
#include "afxcmn.h"\r
-\r
-\r
+#include "StandAloneDlg.h"\r
+#include "HistoryCombo.h"\r
// CRefLogDlg dialog\r
\r
-class CRefLogDlg : public CDialog\r
+class CRefLogDlg : public CResizableStandAloneDialog\r
{\r
DECLARE_DYNAMIC(CRefLogDlg)\r
\r
\r
protected:\r
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support\r
+ BOOL OnInitDialog();\r
\r
DECLARE_MESSAGE_MAP()\r
public:\r
- CComboBoxEx m_ChooseRef;\r
+ CHistoryCombo m_ChooseRef;\r
public:\r
CListCtrl m_RefList;\r
public:\r