--- /dev/null
+// CleanTypeDlg.cpp : implementation file\r
+//\r
+\r
+#include "stdafx.h"\r
+#include "TortoiseProc.h"\r
+#include "CleanTypeDlg.h"\r
+#include "git.h"\r
+\r
+// CCleanTypeDlg dialog\r
+\r
+IMPLEMENT_DYNAMIC(CCleanTypeDlg, CResizableStandAloneDialog)\r
+\r
+CCleanTypeDlg::CCleanTypeDlg(CWnd* pParent /*=NULL*/)\r
+ : CResizableStandAloneDialog(CCleanTypeDlg::IDD, pParent)\r
+ \r
+{\r
+ CString WorkingDir=g_Git.m_CurrentDir;\r
+ WorkingDir.Replace(_T(':'),_T('_'));\r
+ this->m_regDir = CRegDWORD( CString(_T("Software\\TortoiseGit\\History\\CleanDir\\"))+WorkingDir, 1);\r
+ this->m_regType = CRegDWORD( CString(_T("Software\\TortoiseGit\\History\\CleanType\\"))+WorkingDir, 0);\r
+\r
+ this->m_bDir = this->m_regDir;\r
+ this->m_CleanType = this->m_regType;\r
+}\r
+\r
+CCleanTypeDlg::~CCleanTypeDlg()\r
+{\r
+}\r
+\r
+void CCleanTypeDlg::DoDataExchange(CDataExchange* pDX)\r
+{\r
+ CDialog::DoDataExchange(pDX);\r
+ DDX_Check(pDX, IDC_CHECK_DIR, m_bDir);\r
+ DDX_Radio(pDX, IDC_RADIO_CLEAN_ALL,m_CleanType);\r
+}\r
+\r
+\r
+BEGIN_MESSAGE_MAP(CCleanTypeDlg, CResizableStandAloneDialog)\r
+END_MESSAGE_MAP()\r
+\r
+\r
+// CCleanTypeDlg message handlers\r
+\r
+BOOL CCleanTypeDlg::OnInitDialog()\r
+{\r
+ CResizableStandAloneDialog::OnInitDialog();\r
+\r
+ this->AddAnchor(IDOK,BOTTOM_RIGHT);\r
+ this->AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
+ this->AddAnchor(IDHELP,BOTTOM_RIGHT);\r
+\r
+ this->AddAnchor(IDC_GROUP_CLEAN_TYPE,TOP_LEFT,TOP_RIGHT);\r
+\r
+ this->AddOthersToAnchor();\r
+ // TODO: Add extra initialization here\r
+\r
+ return TRUE; // return TRUE unless you set the focus to a control\r
+ // EXCEPTION: OCX Property Pages should return FALSE\r
+}\r
+\r
+void CCleanTypeDlg::OnOK()\r
+{\r
+ // TODO: Add your specialized code here and/or call the base class\r
+ this->UpdateData();\r
+ \r
+ this->m_regDir = this->m_bDir;\r
+ this->m_regType = this->m_CleanType ;\r
+\r
+ CResizableStandAloneDialog::OnOK();\r
+}\r
#include "GitAdminDir.h"\r
#include "DirFileEnum.h"\r
#include "ShellUpdater.h"\r
+#include "CleanTypeDlg.h"\r
\r
bool CleanupCommand::Execute()\r
{\r
bool bRet = false;\r
- CString temp;\r
- temp.Format(_T("Are you sure clean all untracked files"));\r
- if(CMessageBox::Show(NULL,temp,_T("TortoiseGit"),MB_YESNO)==IDYES)\r
- {\r
+\r
+ CCleanTypeDlg dlg;\r
+ if( dlg.DoModal() == IDOK)\r
+ { \r
CProgressDlg progress;\r
- progress.m_GitCmd.Format(_T("git clean -d -x -f "));\r
+ progress.m_GitCmd.Format(_T("git clean "));\r
+ if(dlg.m_bDir)\r
+ progress.m_GitCmd += _T(" -d ");\r
+ switch(dlg.m_CleanType)\r
+ {\r
+ case 0:\r
+ progress.m_GitCmd += _T(" -fx");\r
+ break;\r
+ case 1:\r
+ progress.m_GitCmd += _T(" -f");\r
+ break;\r
+ case 2:\r
+ progress.m_GitCmd += _T(" -fX");\r
+ break;\r
+ }\r
if(progress.DoModal()==IDOK)\r
return TRUE;\r
}\r