OSDN Git Service

Log Dialog refresh okay
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / Commands / LockCommand.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 "LockCommand.h"\r
21 \r
22 #include "LockDlg.h"\r
23 #include "SVNProgressDlg.h"\r
24 \r
25 bool LockCommand::Execute()\r
26 {\r
27         bool bRet = false;\r
28         CLockDlg lockDlg;\r
29         lockDlg.m_pathList = pathList;\r
30         ProjectProperties props;\r
31         props.ReadPropsPathList(pathList);\r
32         lockDlg.SetProjectProperties(&props);\r
33         if (pathList.AreAllPathsFiles() && !DWORD(CRegDWORD(_T("Software\\TortoiseSVN\\ShowLockDlg"), TRUE)) && !props.nMinLockMsgSize)\r
34         {\r
35                 // just lock the requested files\r
36                 CSVNProgressDlg progDlg;\r
37                 progDlg.SetCommand(CSVNProgressDlg::SVNProgress_Lock);\r
38                 progDlg.SetPathList(pathList);\r
39                 if (parser.HasVal(_T("closeonend")))\r
40                         progDlg.SetAutoClose(parser.GetLongVal(_T("closeonend")));\r
41                 progDlg.DoModal();\r
42                 bRet = !progDlg.DidErrorsOccur();\r
43         }\r
44         else if (lockDlg.DoModal()==IDOK)\r
45         {\r
46                 if (lockDlg.m_pathList.GetCount() != 0)\r
47                 {\r
48                         CSVNProgressDlg progDlg;\r
49                         progDlg.SetCommand(CSVNProgressDlg::SVNProgress_Lock);\r
50                         progDlg.SetOptions(lockDlg.m_bStealLocks ? ProgOptLockForce : ProgOptNone);\r
51                         progDlg.SetPathList(lockDlg.m_pathList);\r
52                         progDlg.SetCommitMessage(lockDlg.m_sLockMessage);\r
53                         if (parser.HasVal(_T("closeonend")))\r
54                                 progDlg.SetAutoClose(parser.GetLongVal(_T("closeonend")));\r
55                         progDlg.DoModal();\r
56                         bRet = !progDlg.DidErrorsOccur();\r
57                 }\r
58         }\r
59         return bRet;\r
60 }