OSDN Git Service

Fixed issue #209: High CPU usage in tortoiseproc.exe
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / MergeDlg.cpp
1 // TortoiseGit - a Windows shell extension for easy version control\r
2 \r
3 // Copyright (C) 2007-2009 - TortoiseGit\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 \r
20 // MergeDlg.cpp : implementation file\r
21 //\r
22 \r
23 #include "stdafx.h"\r
24 \r
25 #include "Git.h"\r
26 #include "TortoiseProc.h"\r
27 #include "MergeDlg.h"\r
28 \r
29 \r
30 #include "Messagebox.h"\r
31 // CMergeDlg dialog\r
32 \r
33 IMPLEMENT_DYNAMIC(CMergeDlg, CResizableStandAloneDialog)\r
34 \r
35 CMergeDlg::CMergeDlg(CWnd* pParent /*=NULL*/)\r
36         : CResizableStandAloneDialog(CMergeDlg::IDD, pParent),\r
37         CChooseVersion(this)\r
38 {\r
39         \r
40         m_pDefaultText = _T("<Auto Generated by Git>");\r
41         \r
42 }\r
43 \r
44 CMergeDlg::~CMergeDlg()\r
45 {\r
46 }\r
47 \r
48 void CMergeDlg::DoDataExchange(CDataExchange* pDX)\r
49 {\r
50         CDialog::DoDataExchange(pDX);\r
51 \r
52         CHOOSE_VERSION_DDX;\r
53 \r
54         DDX_Check(pDX,IDC_CHECK_NOFF,this->m_bNoFF);\r
55         DDX_Check(pDX,IDC_CHECK_SQUASH,this->m_bSquash);\r
56         DDX_Check(pDX,IDC_CHECK_NOCOMMIT,this->m_bNoCommit);\r
57         DDX_Control(pDX, IDC_LOGMESSAGE, m_cLogMessage);\r
58 }\r
59 \r
60 \r
61 BEGIN_MESSAGE_MAP(CMergeDlg, CResizableStandAloneDialog)\r
62         CHOOSE_VERSION_EVENT\r
63         ON_BN_CLICKED(IDOK, &CMergeDlg::OnBnClickedOk)\r
64 END_MESSAGE_MAP()\r
65 \r
66 \r
67 BOOL CMergeDlg::OnInitDialog()\r
68 {\r
69         CResizableStandAloneDialog::OnInitDialog();\r
70 \r
71 \r
72         CHOOSE_VERSION_ADDANCHOR;\r
73 \r
74         AddAnchor(IDC_GROUP_OPTION, TOP_LEFT, TOP_RIGHT);\r
75         AddAnchor(IDC_STATIC_MERGE_MESSAGE,TOP_LEFT,BOTTOM_RIGHT);\r
76         AddAnchor(IDC_LOGMESSAGE,TOP_LEFT,BOTTOM_RIGHT);\r
77         \r
78         AddAnchor(IDOK,BOTTOM_RIGHT);\r
79         AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
80         AddAnchor(IDHELP, BOTTOM_RIGHT);\r
81 \r
82         this->AddOthersToAnchor();\r
83 \r
84         CheckRadioButton(IDC_RADIO_BRANCH,IDC_RADIO_VERSION,IDC_RADIO_BRANCH);\r
85 \r
86         Init();\r
87         \r
88         this->SetDefaultChoose(IDC_RADIO_BRANCH);\r
89 \r
90         m_ProjectProperties.ReadProps(CTGitPath(g_Git.m_CurrentDir));\r
91 \r
92         m_cLogMessage.Init(m_ProjectProperties);\r
93         m_cLogMessage.SetFont((CString)CRegString(_T("Software\\TortoiseGit\\LogFontName"), _T("Courier New")), (DWORD)CRegDWORD(_T("Software\\TortoiseGit\\LogFontSize"), 8));\r
94         m_cLogMessage.RegisterContextMenuHandler(this);\r
95 \r
96         m_cLogMessage.SetText(m_pDefaultText);\r
97         \r
98         EnableSaveRestore(_T("MergeDlg"));\r
99 \r
100         return TRUE;\r
101 }\r
102 \r
103 // CMergeDlg message handlers\r
104 \r
105 \r
106 void CMergeDlg::OnBnClickedOk()\r
107 {\r
108         // TODO: Add your control notification handler code here\r
109         this->UpdateData(TRUE);\r
110         \r
111         this->UpdateRevsionName();\r
112 \r
113         this->m_strLogMesage = m_cLogMessage.GetText() ;\r
114         if( m_strLogMesage == CString(this->m_pDefaultText) )\r
115         {\r
116                 m_strLogMesage.Empty();\r
117         }\r
118 \r
119         OnOK();\r
120 }\r