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.
20 #include "TortoiseProc.h"
21 #include "MergeWizard.h"
22 #include "MergeWizardReintegrate.h"
26 #include "PathUtils.h"
29 IMPLEMENT_DYNAMIC(CMergeWizardReintegrate
, CMergeWizardBasePage
)
31 CMergeWizardReintegrate::CMergeWizardReintegrate()
32 : CMergeWizardBasePage(CMergeWizardReintegrate::IDD
)
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()
46 m_pLogDlg
->DestroyWindow();
51 m_pLogDlg2
->DestroyWindow();
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
)
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());
85 BOOL
CMergeWizardReintegrate::CheckData(bool bShowErrors
/* = true */)
87 UNREFERENCED_PARAMETER(bShowErrors
);
89 if (!UpdateData(TRUE
))
93 m_URLCombo
.SaveHistory();
94 m_URL
= m_URLCombo
.GetString();
96 ((CMergeWizard
*)GetParent())->URL1
= m_URL
;
102 LRESULT
CMergeWizardReintegrate::OnWizardNext()
104 if (!CheckData(true))
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
);
121 return CMergeWizardBasePage::OnSetActive();
125 void CMergeWizardReintegrate::OnBnClickedShowmergelog()
127 if (::IsWindow(m_pLogDlg
->GetSafeHwnd())&&(m_pLogDlg
->IsWindowVisible()))
130 m_URLCombo
.GetWindowText(url
);
134 CTSVNPath wcPath
= ((CMergeWizard
*)GetParent())->wcPath
;
136 m_pLogDlg
->DestroyWindow();
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
;
163 m_pLogDlg2
->DestroyWindow();
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
);