OSDN Git Service

diff command basic finished
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / Commands / AddCommand.cpp
1 // TortoiseSVN - a Windows shell extension for easy version control\r
2 \r
3 // Copyright (C) 2007-2008 - TortoiseSVN\r
4 \r
5 // This program is free software; you can redistribute it and/or\r
6 // modify it under the terms of the GNU General Public License\r
7 // as published by the Free Software Foundation; either version 2\r
8 // of the License, or (at your option) any later version.\r
9 \r
10 // This program is distributed in the hope that it will be useful,\r
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 // GNU General Public License for more details.\r
14 \r
15 // You should have received a copy of the GNU General Public License\r
16 // along with this program; if not, write to the Free Software Foundation,\r
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\r
18 //\r
19 #include "StdAfx.h"\r
20 #include "AddCommand.h"\r
21 \r
22 #include "AddDlg.h"\r
23 #include "SVNProgressDlg.h"\r
24 #include "ShellUpdater.h"\r
25 \r
26 bool AddCommand::Execute()\r
27 {\r
28         bool bRet = false;\r
29         if (parser.HasKey(_T("noui")))\r
30         {\r
31                 SVN svn;\r
32                 ProjectProperties props;\r
33                 props.ReadPropsPathList(pathList);\r
34                 bRet = !!svn.Add(pathList, &props, svn_depth_empty, FALSE, FALSE, TRUE);\r
35                 CShellUpdater::Instance().AddPathsForUpdate(pathList);\r
36         }\r
37         else\r
38         {\r
39                 if (pathList.AreAllPathsFiles())\r
40                 {\r
41                         SVN svn;\r
42                         ProjectProperties props;\r
43                         props.ReadPropsPathList(pathList);\r
44                         bRet = !!svn.Add(pathList, &props, svn_depth_empty, FALSE, FALSE, TRUE);\r
45                         CShellUpdater::Instance().AddPathsForUpdate(pathList);\r
46                 }\r
47                 else\r
48                 {\r
49                         CAddDlg dlg;\r
50                         dlg.m_pathList = pathList;\r
51                         if (dlg.DoModal() == IDOK)\r
52                         {\r
53                                 if (dlg.m_pathList.GetCount() == 0)\r
54                                         return FALSE;\r
55                                 CSVNProgressDlg progDlg;\r
56                                 theApp.m_pMainWnd = &progDlg;\r
57                                 progDlg.SetCommand(CSVNProgressDlg::SVNProgress_Add);\r
58                                 if (parser.HasVal(_T("closeonend")))\r
59                                         progDlg.SetAutoClose(parser.GetLongVal(_T("closeonend")));\r
60                                 progDlg.SetPathList(dlg.m_pathList);\r
61                                 ProjectProperties props;\r
62                                 props.ReadPropsPathList(dlg.m_pathList);\r
63                                 progDlg.SetProjectProperties(props);\r
64                                 progDlg.SetItemCount(dlg.m_pathList.GetCount());\r
65                                 progDlg.DoModal();\r
66                                 bRet = !progDlg.DidErrorsOccur();\r
67                         }\r
68                 }\r
69         }\r
70         return bRet;\r
71 }\r