Index: src/ch/FeedbackNotEnoughSpaceDlg.cpp =================================================================== diff -u -r8068e0c351055554340ac9755d1bc846893bf2b8 -r5f6477e71c348782f8149a86c7a3ae903e5ff635 --- src/ch/FeedbackNotEnoughSpaceDlg.cpp (.../FeedbackNotEnoughSpaceDlg.cpp) (revision 8068e0c351055554340ac9755d1bc846893bf2b8) +++ src/ch/FeedbackNotEnoughSpaceDlg.cpp (.../FeedbackNotEnoughSpaceDlg.cpp) (revision 5f6477e71c348782f8149a86c7a3ae903e5ff635) @@ -18,12 +18,11 @@ ***************************************************************************/ #include "stdafx.h" #include "ch.h" -#include "../libchcore/TFileInfo.h" #include "FeedbackNotEnoughSpaceDlg.h" #include "StringHelpers.h" #include "FeedbackHandler.h" -#include "FileSupport.h" #include "resource.h" +#include "../libchcore/TLocalFilesystem.h" #ifdef _DEBUG #define new DEBUG_NEW @@ -34,12 +33,12 @@ ///////////////////////////////////////////////////////////////////////////// // CFeedbackNotEnoughSpaceDlg dialog - CFeedbackNotEnoughSpaceDlg::CFeedbackNotEnoughSpaceDlg(unsigned long long ullSizeRequired, const wchar_t* pszSrcPath, const wchar_t* pszDstPath) :ictranslate::CLanguageDialog(IDD_FEEDBACK_NOTENOUGHSPACE_DIALOG), - m_bAllItems(FALSE), + m_strDisk(pszDstPath), m_ullRequired(ullSizeRequired), - m_strDisk(pszDstPath) + m_bAllItems(FALSE), + m_fsLocal(GetLogFileData()) { m_vstrFiles.push_back(pszSrcPath); } @@ -80,16 +79,31 @@ pWnd=GetDlgItem(IDC_REQUIRED_STATIC); if (pWnd) pWnd->SetWindowText(GetSizeString(m_ullRequired)); - unsigned long long ullFree; + + unsigned long long ullFree = 0, ullTotal = 0; pWnd=GetDlgItem(IDC_AVAILABLE_STATIC); - if (pWnd && GetDynamicFreeSpace(m_strDisk, &ullFree, nullptr)) + if(pWnd) + { + try + { + m_fsLocal.GetDynamicFreeSpace(chcore::PathFromString(m_strDisk), ullFree, ullTotal); + } + catch(const std::exception&) + { + ullFree = 0; + } pWnd->SetWindowText(GetSizeString(ullFree)); + } } BOOL CFeedbackNotEnoughSpaceDlg::OnInitDialog() { CLanguageDialog::OnInitDialog(); + // set dialog icon + HICON hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); + SetIcon(hIcon, FALSE); + AddResizableControl(IDC_HEADER_STATIC, 0.0, 0.0, 1.0, 0.0); AddResizableControl(IDC_001_STATIC, 0.0, 0.0, 0.0, 0.0); @@ -129,10 +143,20 @@ if (nIDEvent == 1601) { // update free space - unsigned long long ullFree; CWnd *pWnd=GetDlgItem(IDC_AVAILABLE_STATIC); - if (pWnd && GetDynamicFreeSpace(m_strDisk, &ullFree, nullptr)) + if (pWnd) { + unsigned long long ullFree = 0; + try + { + unsigned long long ullTotal = 0; + m_fsLocal.GetDynamicFreeSpace(chcore::PathFromString(m_strDisk), ullFree, ullTotal); + } + catch(const std::exception&) + { + ullFree = 0; + } + pWnd->SetWindowText(GetSizeString(ullFree)); // end dialog if this is enough @@ -164,6 +188,12 @@ UpdateDialog(); } +void CFeedbackNotEnoughSpaceDlg::OnCancel() +{ + UpdateData(TRUE); + EndDialog(chcore::EFeedbackResult::eResult_Cancel); +} + void CFeedbackNotEnoughSpaceDlg::OnBnClickedCancel() { UpdateData(TRUE);