| |
1 |
1 |
|
| |
2 |
2 |
|
| |
3 |
3 |
|
| |
4 |
4 |
#include "stdafx.h" |
| |
5 |
5 |
#include "ch.h" |
| |
6 |
6 |
#include "FeedbackReplaceDlg.h" |
| |
7 |
7 |
#include "../libictranslate/ResourceManager.h" |
| |
8 |
8 |
#include "FeedbackHandler.h" |
| |
9 |
9 |
#include "resource.h" |
| |
10 |
10 |
#include "../libchengine/TFileInfo.h" |
| |
11 |
11 |
#include "StringHelpers.h" |
| |
12 |
12 |
#include "../libchengine/FeedbackPredefinedRules.h" |
| |
13 |
13 |
|
| |
14 |
14 |
using namespace chengine; |
| |
15 |
15 |
using namespace string; |
| |
16 |
16 |
|
| |
17 |
17 |
IMPLEMENT_DYNAMIC(CFeedbackReplaceDlg, ictranslate::CLanguageDialog) |
| |
18 |
18 |
|
| |
19 |
|
CFeedbackReplaceDlg::CFeedbackReplaceDlg(const chengine::TFileInfo& spSrcFile, const chengine::TFileInfo& spDstFile, const TString& strSuggestedName, CWnd* pParent ) |
| |
|
19 |
CFeedbackReplaceDlg::CFeedbackReplaceDlg(chengine::FeedbackRules& currentRules, const chengine::TFileInfo& spSrcFile, const chengine::TFileInfo& spDstFile, const TString& strSuggestedName, CWnd* pParent ) |
| |
20 |
20 |
: ictranslate::CLanguageDialog(IDD_FEEDBACK_REPLACE_DIALOG, pParent), |
| |
|
21 |
m_rules(currentRules), |
| |
21 |
22 |
m_rSrcFile(spSrcFile), |
| |
22 |
23 |
m_rDstFile(spDstFile), |
| |
23 |
24 |
m_strNewName(strSuggestedName) |
| |
24 |
25 |
{ |
| |
25 |
26 |
} |
| |
26 |
27 |
|
| |
27 |
28 |
CFeedbackReplaceDlg::~CFeedbackReplaceDlg() |
| |
28 |
29 |
{ |
| |
29 |
30 |
} |
| |
30 |
31 |
|
| |
31 |
32 |
void CFeedbackReplaceDlg::DoDataExchange(CDataExchange* pDX) |
| |
32 |
33 |
{ |
| |
33 |
34 |
ictranslate::CLanguageDialog::DoDataExchange(pDX); |
| |
34 |
35 |
DDX_Control(pDX, IDC_SRC_ICON_STATIC, m_ctlSrcIcon); |
| |
35 |
36 |
DDX_Control(pDX, IDC_DST_ICON_STATIC, m_ctlDstIcon); |
| |
36 |
37 |
|
| |
37 |
38 |
DDX_Control(pDX, IDC_SRC_FILENAME_EDIT, m_ctlSrcName); |
| |
38 |
39 |
DDX_Control(pDX, IDC_SRC_PATH_EDIT, m_ctlSrcPath); |
| |
39 |
40 |
DDX_Control(pDX, IDC_SRC_MODIFIEDDATE_EDIT, m_ctlSrcDate); |
| |
40 |
41 |
DDX_Control(pDX, IDC_SRC_FILESIZE_EDIT, m_ctlSrcSize); |
|
| |
192 |
193 |
|
| |
193 |
194 |
void CFeedbackReplaceDlg::RefreshImages() |
| |
194 |
195 |
{ |
| |
195 |
196 |
SHFILEINFO shfi; |
| |
196 |
197 |
DWORD_PTR dwRes = SHGetFileInfo(m_rSrcFile.GetFullFilePath().ToString(), 0, &shfi, sizeof(shfi), SHGFI_ICON); |
| |
197 |
198 |
if(dwRes) |
| |
198 |
199 |
m_ctlSrcIcon.SetIcon(shfi.hIcon); |
| |
199 |
200 |
|
| |
200 |
201 |
dwRes = SHGetFileInfo(m_rDstFile.GetFullFilePath().ToString(), 0, &shfi, sizeof(shfi), SHGFI_ICON); |
| |
201 |
202 |
if(dwRes) |
| |
202 |
203 |
m_ctlDstIcon.SetIcon(shfi.hIcon); |
| |
203 |
204 |
} |
| |
204 |
205 |
|
| |
205 |
206 |
void CFeedbackReplaceDlg::OnBnClickedReplaceButton() |
| |
206 |
207 |
{ |
| |
207 |
208 |
UpdateData(TRUE); |
| |
208 |
209 |
|
| |
209 |
210 |
switch(m_btnReplace.m_nMenuResult) |
| |
210 |
211 |
{ |
| |
211 |
212 |
case ID_FEEDBACK_REPLACE_ALLEXISTINGFILES: |
| |
212 |
|
m_feedbackRules = FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_ApplyToAll, eResult_Overwrite); |
| |
|
213 |
m_rules.GetAlreadyExistsRules().Merge(FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_ApplyToAll, eResult_Overwrite)); |
| |
213 |
214 |
break; |
| |
214 |
215 |
case ID_FEEDBACK_REPLACE_FILESWITHDIFFERENTDATESORSIZES: |
| |
215 |
|
m_feedbackRules = FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenDifferentDateOrSize, eResult_Overwrite); |
| |
|
216 |
m_rules.GetAlreadyExistsRules().Merge(FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenDifferentDateOrSize, eResult_Overwrite)); |
| |
216 |
217 |
break; |
| |
217 |
218 |
case ID_FEEDBACK_REPLACE_OLDERFILESWITHNEWERVERSIONS: |
| |
218 |
|
m_feedbackRules = FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenNewerThanDst, eResult_Overwrite); |
| |
|
219 |
m_rules.GetAlreadyExistsRules().Merge(FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenNewerThanDst, eResult_Overwrite)); |
| |
219 |
220 |
break; |
| |
220 |
221 |
case ID_FEEDBACK_REPLACE_NEWERFILESWITHOLDERVERSIONS: |
| |
221 |
|
m_feedbackRules = FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenOlderThanDst, eResult_Overwrite); |
| |
|
222 |
m_rules.GetAlreadyExistsRules().Merge(FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenOlderThanDst, eResult_Overwrite)); |
| |
222 |
223 |
break; |
| |
223 |
224 |
} |
| |
224 |
225 |
|
| |
225 |
226 |
EndDialog(chengine::EFeedbackResult::eResult_Overwrite); |
| |
226 |
227 |
} |
| |
227 |
228 |
|
| |
228 |
229 |
void CFeedbackReplaceDlg::OnBnClickedRenameButton() |
| |
229 |
230 |
{ |
| |
230 |
231 |
UpdateData(TRUE); |
| |
231 |
232 |
|
| |
232 |
233 |
switch(m_btnRename.m_nMenuResult) |
| |
233 |
234 |
{ |
| |
234 |
235 |
case ID_FEEDBACK_RENAME_WHENDESTIONATIONFILEEXISTS: |
| |
235 |
|
m_feedbackRules = FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_ApplyToAll, eResult_Rename); |
| |
|
236 |
m_rules.GetAlreadyExistsRules().Merge(FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_ApplyToAll, eResult_Rename)); |
| |
236 |
237 |
break; |
| |
237 |
238 |
case ID_FEEDBACK_RENAME_WHENDATEORSIZEDIFFERS: |
| |
238 |
|
m_feedbackRules = FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenDifferentDateOrSize, eResult_Rename); |
| |
|
239 |
m_rules.GetAlreadyExistsRules().Merge(FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenDifferentDateOrSize, eResult_Rename)); |
| |
239 |
240 |
break; |
| |
240 |
241 |
case ID_FEEDBACK_RENAME_WHENDATEANDSZEARESAME: |
| |
241 |
|
m_feedbackRules = FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenSameDateAndSize, eResult_Rename); |
| |
|
242 |
m_rules.GetAlreadyExistsRules().Merge(FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenSameDateAndSize, eResult_Rename)); |
| |
242 |
243 |
break; |
| |
243 |
244 |
case ID_FEEDBACK_RENAME_WHENNEWERTHANDESTINATION: |
| |
244 |
|
m_feedbackRules = FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenNewerThanDst, eResult_Rename); |
| |
|
245 |
m_rules.GetAlreadyExistsRules().Merge(FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenNewerThanDst, eResult_Rename)); |
| |
245 |
246 |
break; |
| |
246 |
247 |
case ID_FEEDBACK_RENAME_WHENOLDERTHANDESTINATION: |
| |
247 |
|
m_feedbackRules = FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenOlderThanDst, eResult_Rename); |
| |
|
248 |
m_rules.GetAlreadyExistsRules().Merge(FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenOlderThanDst, eResult_Rename)); |
| |
248 |
249 |
break; |
| |
249 |
250 |
default: |
| |
250 |
251 |
{ |
| |
251 |
252 |
CString strText; |
| |
252 |
253 |
m_ctlDstRename.GetWindowText(strText); |
| |
253 |
254 |
m_strNewName = strText; |
| |
254 |
255 |
} |
| |
255 |
256 |
} |
| |
256 |
257 |
|
| |
257 |
258 |
EndDialog(chengine::EFeedbackResult::eResult_Rename); |
| |
258 |
259 |
} |
| |
259 |
260 |
|
| |
260 |
261 |
void CFeedbackReplaceDlg::OnBnClickedCopyRestButton() |
| |
261 |
262 |
{ |
| |
262 |
263 |
UpdateData(TRUE); |
| |
263 |
264 |
switch(m_btnResume.m_nMenuResult) |
| |
264 |
265 |
{ |
| |
265 |
266 |
case ID_FEEDBACK_RESUME_WHENFILEBIGGERTHANDESTINATION: |
| |
266 |
|
m_feedbackRules = FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenBiggerThanDst, eResult_CopyRest); |
| |
|
267 |
m_rules.GetAlreadyExistsRules().Merge(FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenBiggerThanDst, eResult_CopyRest)); |
| |
267 |
268 |
break; |
| |
268 |
269 |
} |
| |
269 |
270 |
|
| |
270 |
271 |
EndDialog(chengine::EFeedbackResult::eResult_CopyRest); |
| |
271 |
272 |
} |
| |
272 |
273 |
|
| |
273 |
274 |
void CFeedbackReplaceDlg::OnBnClickedSkipButton() |
| |
274 |
275 |
{ |
| |
275 |
276 |
UpdateData(TRUE); |
| |
276 |
277 |
switch(m_btnSkip.m_nMenuResult) |
| |
277 |
278 |
{ |
| |
278 |
279 |
case ID_FEEDBACK_SKIP_ALLEXISTINGDESTINATIONFILES: |
| |
279 |
|
m_feedbackRules = FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_ApplyToAll, eResult_Skip); |
| |
|
280 |
m_rules.GetAlreadyExistsRules().Merge(FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_ApplyToAll, eResult_Skip)); |
| |
280 |
281 |
break; |
| |
281 |
282 |
case ID_FEEDBACK_SKIP_ALLFILESWITHSAMEDATESANDSIZES: |
| |
282 |
|
m_feedbackRules = FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenSameDateAndSize, eResult_Skip); |
| |
|
283 |
m_rules.GetAlreadyExistsRules().Merge(FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenSameDateAndSize, eResult_Skip)); |
| |
283 |
284 |
break; |
| |
284 |
285 |
case ID_FEEDBACK_SKIP_FILESTHATAREOLDERTHANDESTINATION: |
| |
285 |
|
m_feedbackRules = FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenOlderThanDst, eResult_Skip); |
| |
|
286 |
m_rules.GetAlreadyExistsRules().Merge(FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenOlderThanDst, eResult_Skip)); |
| |
286 |
287 |
break; |
| |
287 |
288 |
case ID_FEEDBACK_SKIP_FILESTHATARENEWERTHANDESTINATION: |
| |
288 |
|
m_feedbackRules = FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenNewerThanDst, eResult_Skip); |
| |
|
289 |
m_rules.GetAlreadyExistsRules().Merge(FeedbackPredefinedRules::CreateAlreadyExistsRule(EPredefinedRuleCondition::eCondition_WhenNewerThanDst, eResult_Skip)); |
| |
289 |
290 |
break; |
| |
290 |
291 |
} |
| |
291 |
292 |
|
| |
292 |
293 |
EndDialog(chengine::EFeedbackResult::eResult_Skip); |
| |
293 |
294 |
} |
| |
294 |
295 |
|
| |
295 |
296 |
void CFeedbackReplaceDlg::OnBnClickedPauseButton() |
| |
296 |
297 |
{ |
| |
297 |
298 |
UpdateData(TRUE); |
| |
298 |
299 |
EndDialog(chengine::EFeedbackResult::eResult_Pause); |
| |
299 |
300 |
} |
| |
300 |
301 |
|
| |
301 |
302 |
void CFeedbackReplaceDlg::OnBnClickedCancelButton() |
| |
302 |
303 |
{ |
| |
303 |
304 |
UpdateData(TRUE); |
| |
304 |
305 |
EndDialog(chengine::EFeedbackResult::eResult_Cancel); |
| |
305 |
306 |
} |
| |
306 |
307 |
|
| |
307 |
308 |
void CFeedbackReplaceDlg::OnCancel() |
| |
308 |
309 |
{ |
| |
309 |
310 |
UpdateData(TRUE); |
| |
310 |
311 |
EndDialog(chengine::EFeedbackResult::eResult_Cancel); |
| |
311 |
312 |
} |
| |
312 |
313 |
|
| |
313 |
|
const chengine::FeedbackAlreadyExistsRuleList& CFeedbackReplaceDlg::GetRules() const |
| |
|
314 |
const chengine::FeedbackRules& CFeedbackReplaceDlg::GetRules() const |
| |
314 |
315 |
{ |
| |
315 |
|
return m_feedbackRules; |
| |
|
316 |
return m_rules; |
| |
316 |
317 |
} |
| |
317 |
318 |
|
| |
318 |
319 |
void CFeedbackReplaceDlg::OnGetMinMaxInfo(MINMAXINFO* lpMMI) |
| |
319 |
320 |
{ |
| |
320 |
321 |
if (m_rcInitial.Width() != 0 && m_rcInitial.Height() != 0) |
| |
321 |
322 |
{ |
| |
322 |
323 |
lpMMI->ptMinTrackSize.y = m_rcInitial.Height(); |
| |
323 |
324 |
lpMMI->ptMaxTrackSize.y = m_rcInitial.Height(); |
| |
324 |
325 |
} |
| |
325 |
326 |
} |