Update diff del rename ignore document.
[TortoiseGit.git] / src / TortoiseProc / MergeWizardReintegrate.cpp
blob35a61789a1f259c87be8c758a60b9a1fa1cbaf24
1 // TortoiseSVN - a Windows shell extension for easy version control
3 // Copyright (C) 2008 - TortoiseSVN
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software Foundation,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 #include "stdafx.h"
20 #include "TortoiseProc.h"
21 #include "MergeWizard.h"
22 #include "MergeWizardReintegrate.h"
24 #include "Balloon.h"
25 #include "AppUtils.h"
26 #include "PathUtils.h"
29 IMPLEMENT_DYNAMIC(CMergeWizardReintegrate, CMergeWizardBasePage)
31 CMergeWizardReintegrate::CMergeWizardReintegrate()
32 : CMergeWizardBasePage(CMergeWizardReintegrate::IDD)
33 , m_URL(_T(""))
34 , m_pLogDlg(NULL)
35 , m_pLogDlg2(NULL)
37 m_psp.dwFlags |= PSP_DEFAULT|PSP_USEHEADERTITLE|PSP_USEHEADERSUBTITLE;
38 m_psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_MERGEWIZARD_TREETITLE);
39 m_psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_MERGEWIZARD_TREESUBTITLE);
42 CMergeWizardReintegrate::~CMergeWizardReintegrate()
44 if (m_pLogDlg)
46 m_pLogDlg->DestroyWindow();
47 delete m_pLogDlg;
49 if (m_pLogDlg2)
51 m_pLogDlg2->DestroyWindow();
52 delete m_pLogDlg2;
56 void CMergeWizardReintegrate::DoDataExchange(CDataExchange* pDX)
58 CMergeWizardBasePage::DoDataExchange(pDX);
59 DDX_Control(pDX, IDC_URLCOMBO, m_URLCombo);
63 BEGIN_MESSAGE_MAP(CMergeWizardReintegrate, CMergeWizardBasePage)
64 ON_BN_CLICKED(IDC_SHOWMERGELOG, &CMergeWizardReintegrate::OnBnClickedShowmergelog)
65 ON_BN_CLICKED(IDC_BROWSE, &CMergeWizardReintegrate::OnBnClickedBrowse)
66 ON_BN_CLICKED(IDC_SHOWLOGWC, &CMergeWizardReintegrate::OnBnClickedShowlogwc)
67 END_MESSAGE_MAP()
70 BOOL CMergeWizardReintegrate::OnInitDialog()
72 CMergeWizardBasePage::OnInitDialog();
74 CString sUUID = ((CMergeWizard*)GetParent())->sUUID;
75 m_URLCombo.SetURLHistory(TRUE);
76 m_URLCombo.LoadHistory(_T("Software\\TortoiseGit\\History\\repoURLS\\")+sUUID, _T("url"));
77 if (!(DWORD)CRegDWORD(_T("Software\\TortoiseGit\\MergeWCURL"), FALSE))
78 m_URLCombo.SetCurSel(0);
80 SetDlgItemText(IDC_WCEDIT, ((CMergeWizard*)GetParent())->wcPath.GetWinPath());
82 return TRUE;
85 BOOL CMergeWizardReintegrate::CheckData(bool bShowErrors /* = true */)
87 UNREFERENCED_PARAMETER(bShowErrors);
89 if (!UpdateData(TRUE))
90 return FALSE;
93 m_URLCombo.SaveHistory();
94 m_URL = m_URLCombo.GetString();
96 ((CMergeWizard*)GetParent())->URL1 = m_URL;
98 UpdateData(FALSE);
99 return TRUE;
102 LRESULT CMergeWizardReintegrate::OnWizardNext()
104 if (!CheckData(true))
105 return -1;
107 return IDD_MERGEWIZARD_OPTIONS;
110 LRESULT CMergeWizardReintegrate::OnWizardBack()
112 return IDD_MERGEWIZARD_START;
115 BOOL CMergeWizardReintegrate::OnSetActive()
117 CPropertySheet* psheet = (CPropertySheet*) GetParent();
118 psheet->SetWizardButtons(PSWIZB_NEXT|PSWIZB_BACK);
119 SetButtonTexts();
121 return CMergeWizardBasePage::OnSetActive();
125 void CMergeWizardReintegrate::OnBnClickedShowmergelog()
127 if (::IsWindow(m_pLogDlg->GetSafeHwnd())&&(m_pLogDlg->IsWindowVisible()))
128 return;
129 CString url;
130 m_URLCombo.GetWindowText(url);
132 if (!url.IsEmpty())
134 CTSVNPath wcPath = ((CMergeWizard*)GetParent())->wcPath;
135 if (m_pLogDlg)
136 m_pLogDlg->DestroyWindow();
137 delete m_pLogDlg;
138 m_pLogDlg = new CLogDlg();
139 CRegDWORD reg = CRegDWORD(_T("Software\\TortoiseGit\\NumberOfLogs"), 100);
140 int limit = (int)(LONG)reg;
141 m_pLogDlg->SetDialogTitle(CString(MAKEINTRESOURCE(IDS_MERGE_SELECTRANGE)));
143 m_pLogDlg->SetSelect(true);
144 m_pLogDlg->m_pNotifyWindow = this;
145 m_pLogDlg->SetParams(CTSVNPath(url), SVNRev::REV_HEAD, SVNRev::REV_HEAD, 1, limit, TRUE, FALSE);
146 m_pLogDlg->SetProjectPropertiesPath(wcPath);
147 m_pLogDlg->SetMergePath(wcPath);
148 m_pLogDlg->Create(IDD_LOGMESSAGE, this);
149 m_pLogDlg->ShowWindow(SW_SHOW);
153 void CMergeWizardReintegrate::OnBnClickedBrowse()
155 SVNRev rev(SVNRev::REV_HEAD);
156 CAppUtils::BrowseRepository(m_URLCombo, this, rev);
159 void CMergeWizardReintegrate::OnBnClickedShowlogwc()
161 CTSVNPath wcPath = ((CMergeWizard*)GetParent())->wcPath;
162 if (m_pLogDlg2)
163 m_pLogDlg2->DestroyWindow();
164 delete m_pLogDlg2;
165 m_pLogDlg2 = new CLogDlg();
166 CRegDWORD reg = CRegDWORD(_T("Software\\TortoiseGit\\NumberOfLogs"), 100);
167 int limit = (int)(LONG)reg;
168 m_pLogDlg2->SetDialogTitle(CString(MAKEINTRESOURCE(IDS_MERGE_SELECTRANGE)));
170 m_pLogDlg2->m_pNotifyWindow = NULL;
171 m_pLogDlg2->SetParams(wcPath, SVNRev::REV_HEAD, SVNRev::REV_HEAD, 1, limit, TRUE, FALSE);
172 m_pLogDlg2->SetProjectPropertiesPath(wcPath);
173 m_pLogDlg2->SetMergePath(wcPath);
174 m_pLogDlg2->Create(IDD_LOGMESSAGE, this);
175 m_pLogDlg2->ShowWindow(SW_SHOW);