1 // TortoiseSVN - a Windows shell extension for easy version control
\r
3 // Copyright (C) 2008 - TortoiseSVN
\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
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
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
20 #include "TortoiseProc.h"
\r
21 #include "MergeWizard.h"
\r
22 #include "MergeWizardReintegrate.h"
\r
24 #include "Balloon.h"
\r
25 #include "AppUtils.h"
\r
26 #include "PathUtils.h"
\r
29 IMPLEMENT_DYNAMIC(CMergeWizardReintegrate, CMergeWizardBasePage)
\r
31 CMergeWizardReintegrate::CMergeWizardReintegrate()
\r
32 : CMergeWizardBasePage(CMergeWizardReintegrate::IDD)
\r
37 m_psp.dwFlags |= PSP_DEFAULT|PSP_USEHEADERTITLE|PSP_USEHEADERSUBTITLE;
\r
38 m_psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_MERGEWIZARD_TREETITLE);
\r
39 m_psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_MERGEWIZARD_TREESUBTITLE);
\r
42 CMergeWizardReintegrate::~CMergeWizardReintegrate()
\r
46 m_pLogDlg->DestroyWindow();
\r
51 m_pLogDlg2->DestroyWindow();
\r
56 void CMergeWizardReintegrate::DoDataExchange(CDataExchange* pDX)
\r
58 CMergeWizardBasePage::DoDataExchange(pDX);
\r
59 DDX_Control(pDX, IDC_URLCOMBO, m_URLCombo);
\r
63 BEGIN_MESSAGE_MAP(CMergeWizardReintegrate, CMergeWizardBasePage)
\r
64 ON_BN_CLICKED(IDC_SHOWMERGELOG, &CMergeWizardReintegrate::OnBnClickedShowmergelog)
\r
65 ON_BN_CLICKED(IDC_BROWSE, &CMergeWizardReintegrate::OnBnClickedBrowse)
\r
66 ON_BN_CLICKED(IDC_SHOWLOGWC, &CMergeWizardReintegrate::OnBnClickedShowlogwc)
\r
70 BOOL CMergeWizardReintegrate::OnInitDialog()
\r
72 CMergeWizardBasePage::OnInitDialog();
\r
74 CString sUUID = ((CMergeWizard*)GetParent())->sUUID;
\r
75 m_URLCombo.SetURLHistory(TRUE);
\r
76 m_URLCombo.LoadHistory(_T("Software\\TortoiseSVN\\History\\repoURLS\\")+sUUID, _T("url"));
\r
77 if (!(DWORD)CRegDWORD(_T("Software\\TortoiseSVN\\MergeWCURL"), FALSE))
\r
78 m_URLCombo.SetCurSel(0);
\r
80 SetDlgItemText(IDC_WCEDIT, ((CMergeWizard*)GetParent())->wcPath.GetWinPath());
\r
85 BOOL CMergeWizardReintegrate::CheckData(bool bShowErrors /* = true */)
\r
87 UNREFERENCED_PARAMETER(bShowErrors);
\r
89 if (!UpdateData(TRUE))
\r
93 m_URLCombo.SaveHistory();
\r
94 m_URL = m_URLCombo.GetString();
\r
96 ((CMergeWizard*)GetParent())->URL1 = m_URL;
\r
102 LRESULT CMergeWizardReintegrate::OnWizardNext()
\r
104 if (!CheckData(true))
\r
107 return IDD_MERGEWIZARD_OPTIONS;
\r
110 LRESULT CMergeWizardReintegrate::OnWizardBack()
\r
112 return IDD_MERGEWIZARD_START;
\r
115 BOOL CMergeWizardReintegrate::OnSetActive()
\r
117 CPropertySheet* psheet = (CPropertySheet*) GetParent();
\r
118 psheet->SetWizardButtons(PSWIZB_NEXT|PSWIZB_BACK);
\r
121 return CMergeWizardBasePage::OnSetActive();
\r
125 void CMergeWizardReintegrate::OnBnClickedShowmergelog()
\r
127 if (::IsWindow(m_pLogDlg->GetSafeHwnd())&&(m_pLogDlg->IsWindowVisible()))
\r
130 m_URLCombo.GetWindowText(url);
\r
132 if (!url.IsEmpty())
\r
134 CTSVNPath wcPath = ((CMergeWizard*)GetParent())->wcPath;
\r
136 m_pLogDlg->DestroyWindow();
\r
138 m_pLogDlg = new CLogDlg();
\r
139 CRegDWORD reg = CRegDWORD(_T("Software\\TortoiseSVN\\NumberOfLogs"), 100);
\r
140 int limit = (int)(LONG)reg;
\r
141 m_pLogDlg->SetDialogTitle(CString(MAKEINTRESOURCE(IDS_MERGE_SELECTRANGE)));
\r
143 m_pLogDlg->SetSelect(true);
\r
144 m_pLogDlg->m_pNotifyWindow = this;
\r
145 m_pLogDlg->SetParams(CTSVNPath(url), SVNRev::REV_HEAD, SVNRev::REV_HEAD, 1, limit, TRUE, FALSE);
\r
146 m_pLogDlg->SetProjectPropertiesPath(wcPath);
\r
147 m_pLogDlg->SetMergePath(wcPath);
\r
148 m_pLogDlg->Create(IDD_LOGMESSAGE, this);
\r
149 m_pLogDlg->ShowWindow(SW_SHOW);
\r
153 void CMergeWizardReintegrate::OnBnClickedBrowse()
\r
155 SVNRev rev(SVNRev::REV_HEAD);
\r
156 CAppUtils::BrowseRepository(m_URLCombo, this, rev);
\r
159 void CMergeWizardReintegrate::OnBnClickedShowlogwc()
\r
161 CTSVNPath wcPath = ((CMergeWizard*)GetParent())->wcPath;
\r
163 m_pLogDlg2->DestroyWindow();
\r
165 m_pLogDlg2 = new CLogDlg();
\r
166 CRegDWORD reg = CRegDWORD(_T("Software\\TortoiseSVN\\NumberOfLogs"), 100);
\r
167 int limit = (int)(LONG)reg;
\r
168 m_pLogDlg2->SetDialogTitle(CString(MAKEINTRESOURCE(IDS_MERGE_SELECTRANGE)));
\r
170 m_pLogDlg2->m_pNotifyWindow = NULL;
\r
171 m_pLogDlg2->SetParams(wcPath, SVNRev::REV_HEAD, SVNRev::REV_HEAD, 1, limit, TRUE, FALSE);
\r
172 m_pLogDlg2->SetProjectPropertiesPath(wcPath);
\r
173 m_pLogDlg2->SetMergePath(wcPath);
\r
174 m_pLogDlg2->Create(IDD_LOGMESSAGE, this);
\r
175 m_pLogDlg2->ShowWindow(SW_SHOW);
\r