Index: src/ch/FeedbackReplaceDlg.cpp =================================================================== diff -u -rc435ab507c8b8280264188b49e9ada56d46c0261 -r8068e0c351055554340ac9755d1bc846893bf2b8 --- src/ch/FeedbackReplaceDlg.cpp (.../FeedbackReplaceDlg.cpp) (revision c435ab507c8b8280264188b49e9ada56d46c0261) +++ src/ch/FeedbackReplaceDlg.cpp (.../FeedbackReplaceDlg.cpp) (revision 8068e0c351055554340ac9755d1bc846893bf2b8) @@ -3,20 +3,21 @@ #include "stdafx.h" #include "ch.h" -#include "FileInfo.h" +#include "../libchcore/TFileInfo.h" #include "FeedbackReplaceDlg.h" #include "../libictranslate/ResourceManager.h" -#include "FileInfo.h" +#include "../libchcore/TFileInfo.h" #include "FeedbackHandler.h" +#include "resource.h" // CFeedbackReplaceDlg dialog IMPLEMENT_DYNAMIC(CFeedbackReplaceDlg, ictranslate::CLanguageDialog) -CFeedbackReplaceDlg::CFeedbackReplaceDlg(const CFileInfoPtr& spSrcFile, const CFileInfoPtr& spDstFile, CWnd* pParent /*=NULL*/) +CFeedbackReplaceDlg::CFeedbackReplaceDlg(const chcore::TFileInfo& spSrcFile, const chcore::TFileInfo& spDstFile, CWnd* pParent /*=nullptr*/) : ictranslate::CLanguageDialog(IDD_FEEDBACK_REPLACE_DIALOG, pParent), - m_spSrcFile(spSrcFile), - m_spDstFile(spDstFile), + m_rSrcFile(spSrcFile), + m_rDstFile(spDstFile), m_bAllItems(FALSE) { } @@ -30,8 +31,17 @@ ictranslate::CLanguageDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_SRC_ICON_STATIC, m_ctlSrcIcon); DDX_Control(pDX, IDC_DST_ICON_STATIC, m_ctlDstIcon); - DDX_Control(pDX, IDC_SRC_INFO_STATIC, m_ctlSrcInfo); - DDX_Control(pDX, IDC_DST_INFO_STATIC, m_ctlDstInfo); + + DDX_Control(pDX, IDC_SRC_FILENAME_EDIT, m_ctlSrcName); + DDX_Control(pDX, IDC_SRC_PATH_EDIT, m_ctlSrcPath); + DDX_Control(pDX, IDC_SRC_MODIFIEDDATE_EDIT, m_ctlSrcDate); + DDX_Control(pDX, IDC_SRC_FILESIZE_EDIT, m_ctlSrcSize); + + DDX_Control(pDX, IDC_DST_FILENAME_EDIT, m_ctlDstName); + DDX_Control(pDX, IDC_DST_PATH_EDIT, m_ctlDstPath); + DDX_Control(pDX, IDC_DST_MODIFIEDDATE_EDIT, m_ctlDstDate); + DDX_Control(pDX, IDC_DST_FILESIZE_EDIT, m_ctlDstSize); + DDX_Check(pDX, IDC_ALL_ITEMS_CHECK, m_bAllItems); } @@ -55,12 +65,22 @@ AddResizableControl(IDC_00_STATIC, 0.0, 0.0, 1.0, 0.0); AddResizableControl(IDC_SRC_ICON_STATIC, 0.0, 0.0, 0.0, 0.0); - AddResizableControl(IDC_SRC_INFO_STATIC, 0.0, 0.0, 1.0, 0.5); + AddResizableControl(IDC_SRCFILE_STATIC, 0.0, 0.0, 1.0, 0.0); + AddResizableControl(IDC_SRC_FILENAME_EDIT, 0.0, 0.0, 1.0, 0.0); + AddResizableControl(IDC_SRC_PATH_EDIT, 0.0, 0.0, 1.0, 0.0); + AddResizableControl(IDC_SRC_FILESIZE_EDIT, 0.0, 0.0, 1.0, 0.0); + AddResizableControl(IDC_SRC_MODIFIEDDATE_EDIT, 0.0, 0.0, 1.0, 0.0); + AddResizableControl(IDC_01_STATIC, 0.0, 0.5, 1.0, 0.0); AddResizableControl(IDC_DST_ICON_STATIC, 0.0, 0.5, 0.0, 0.0); - AddResizableControl(IDC_DST_INFO_STATIC, 0.0, 0.5, 1.0, 0.5); + AddResizableControl(IDC_DSTFILE_STATIC, 0.0, 0.0, 1.0, 0.0); + AddResizableControl(IDC_DST_FILENAME_EDIT, 0.0, 1.0, 1.0, 0.0); + AddResizableControl(IDC_DST_PATH_EDIT, 0.0, 1.0, 1.0, 0.0); + AddResizableControl(IDC_DST_FILESIZE_EDIT, 0.0, 1.0, 1.0, 0.0); + AddResizableControl(IDC_DST_MODIFIEDDATE_EDIT, 0.0, 1.0, 1.0, 0.0); + AddResizableControl(IDC_COPY_REST_BUTTON, 0.0, 1.0, 0.0, 0.0); AddResizableControl(IDC_SKIP_BUTTON, 0.0, 1.0, 0.0, 0.0); AddResizableControl(IDC_PAUSE_BUTTON, 0.0, 1.0, 0.0, 0.0); @@ -81,80 +101,118 @@ void CFeedbackReplaceDlg::RefreshFilesInfo() { - BOOST_ASSERT(m_spSrcFile && m_spDstFile); - if(!m_spSrcFile || !m_spDstFile) - return; - // load template ictranslate::CResourceManager& rManager = GetResManager(); CString strTemplate; - strTemplate += rManager.LoadString(IDS_INFO_FILE_STRING); - strTemplate += _T("\r\n"); - strTemplate += rManager.LoadString(IDS_INFO_SIZE_STRING); - strTemplate += _T("\r\n"); - strTemplate += rManager.LoadString(IDS_INFO_MODIFIED_STRING); + ///////////////////////////////////////////////////////////// + // src file + chcore::TSmartPath pathSrc = m_rSrcFile.GetFullFilePath(); + + // name + m_ctlSrcName.SetWindowText(pathSrc.GetFileName().ToString()); + + // path + strTemplate = rManager.LoadString(IDS_INFO_PATH_STRING); ictranslate::CFormat fmt(strTemplate); - fmt.SetParam(_T("%filename"), m_spSrcFile->GetFullFilePath()); - fmt.SetParam(_T("%size"), m_spSrcFile->GetLength64()); + fmt.SetParam(_T("%pathname"), pathSrc.GetParent().ToString()); + m_ctlSrcPath.SetWindowText(fmt); - COleDateTime dtTemp = m_spSrcFile->GetLastWriteTime(); + // size + strTemplate = rManager.LoadString(IDS_INFO_SIZE_STRING); + fmt.SetFormat(strTemplate); + fmt.SetParam(_T("%size"), m_rSrcFile.GetLength64()); + m_ctlSrcSize.SetWindowText(fmt); + + // modified date + strTemplate = rManager.LoadString(IDS_INFO_MODIFIED_STRING); + fmt.SetFormat(strTemplate); + COleDateTime dtTemp = m_rSrcFile.GetLastWriteTime().GetAsFiletime(); fmt.SetParam(_T("%datemod"), dtTemp.Format(LOCALE_NOUSEROVERRIDE, LANG_USER_DEFAULT)); + m_ctlSrcDate.SetWindowText(fmt); - m_ctlSrcInfo.SetWindowText(fmt); + ///////////////////////////////////////////////////////////// + // dst file + chcore::TSmartPath pathDst = m_rDstFile.GetFullFilePath(); + // name + m_ctlDstName.SetWindowText(pathDst.GetFileName().ToString()); + + // path + strTemplate = rManager.LoadString(IDS_INFO_PATH_STRING); fmt.SetFormat(strTemplate); - fmt.SetParam(_T("%filename"), m_spDstFile->GetFullFilePath()); - fmt.SetParam(_T("%size"), m_spDstFile->GetLength64()); - dtTemp = m_spDstFile->GetLastWriteTime(); + fmt.SetParam(_T("%pathname"), pathDst.GetParent().ToString()); + m_ctlDstPath.SetWindowText(fmt); + + // size + strTemplate = rManager.LoadString(IDS_INFO_SIZE_STRING); + fmt.SetFormat(strTemplate); + fmt.SetParam(_T("%size"), m_rDstFile.GetLength64()); + m_ctlDstSize.SetWindowText(fmt); + + // modified date + strTemplate = rManager.LoadString(IDS_INFO_MODIFIED_STRING); + fmt.SetFormat(strTemplate); + dtTemp = m_rDstFile.GetLastWriteTime().GetAsFiletime(); fmt.SetParam(_T("%datemod"), dtTemp.Format(LOCALE_NOUSEROVERRIDE, LANG_USER_DEFAULT)); + m_ctlDstDate.SetWindowText(fmt); - m_ctlDstInfo.SetWindowText(fmt); + // button captions + CWnd* pAppendButton = GetDlgItem(IDC_COPY_REST_BUTTON); + if(pAppendButton) + { + if(m_rDstFile.GetLength64() > m_rSrcFile.GetLength64()) + { + CString strAltButtonCaption = rManager.LoadString(IDS_BUTTON_TRUNCATE_STRING); + pAppendButton->SetWindowText(strAltButtonCaption); + } + } } void CFeedbackReplaceDlg::RefreshImages() { - BOOST_ASSERT(m_spSrcFile && m_spDstFile); - if(!m_spSrcFile || !m_spDstFile) - return; - SHFILEINFO shfi; - DWORD_PTR dwRes = SHGetFileInfo(m_spSrcFile->GetFullFilePath(), 0, &shfi, sizeof(shfi), SHGFI_ICON); + DWORD_PTR dwRes = SHGetFileInfo(m_rSrcFile.GetFullFilePath().ToString(), 0, &shfi, sizeof(shfi), SHGFI_ICON); if(dwRes) m_ctlSrcIcon.SetIcon(shfi.hIcon); - dwRes = SHGetFileInfo(m_spDstFile->GetFullFilePath(), 0, &shfi, sizeof(shfi), SHGFI_ICON); + dwRes = SHGetFileInfo(m_rDstFile.GetFullFilePath().ToString(), 0, &shfi, sizeof(shfi), SHGFI_ICON); if(dwRes) m_ctlDstIcon.SetIcon(shfi.hIcon); } void CFeedbackReplaceDlg::OnBnClickedReplaceButton() { UpdateData(TRUE); - EndDialog(CFeedbackHandler::eResult_Overwrite); + EndDialog(chcore::EFeedbackResult::eResult_Overwrite); } void CFeedbackReplaceDlg::OnBnClickedCopyRestButton() { UpdateData(TRUE); - EndDialog(CFeedbackHandler::eResult_CopyRest); + EndDialog(chcore::EFeedbackResult::eResult_CopyRest); } void CFeedbackReplaceDlg::OnBnClickedSkipButton() { UpdateData(TRUE); - EndDialog(CFeedbackHandler::eResult_Skip); + EndDialog(chcore::EFeedbackResult::eResult_Skip); } void CFeedbackReplaceDlg::OnBnClickedPauseButton() { UpdateData(TRUE); - EndDialog(CFeedbackHandler::eResult_Pause); + EndDialog(chcore::EFeedbackResult::eResult_Pause); } void CFeedbackReplaceDlg::OnBnClickedCancelButton() { UpdateData(TRUE); - EndDialog(CFeedbackHandler::eResult_Cancel); + EndDialog(chcore::EFeedbackResult::eResult_Cancel); } + +bool CFeedbackReplaceDlg::IsApplyToAllItemsChecked() const +{ + return m_bAllItems != FALSE; +}