Index: src/ch/FeedbackNotEnoughSpaceDlg.cpp =================================================================== diff -u -N -r3993a75a24145732742d61be638111d1d85c367b -re6f64ea0eecaf86dfa1a42c80604d227b69be768 --- src/ch/FeedbackNotEnoughSpaceDlg.cpp (.../FeedbackNotEnoughSpaceDlg.cpp) (revision 3993a75a24145732742d61be638111d1d85c367b) +++ src/ch/FeedbackNotEnoughSpaceDlg.cpp (.../FeedbackNotEnoughSpaceDlg.cpp) (revision e6f64ea0eecaf86dfa1a42c80604d227b69be768) @@ -1,27 +1,28 @@ -/*************************************************************************** -* Copyright (C) 2001-2008 by J�zef Starosczyk * -* ixen@copyhandler.com * -* * -* This program is free software; you can redistribute it and/or modify * -* it under the terms of the GNU Library General Public License * -* (version 2) as published by the Free Software Foundation; * -* * -* This program is distributed in the hope that it will be useful, * -* but WITHOUT ANY WARRANTY; without even the implied warranty of * -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -* GNU General Public License for more details. * -* * -* You should have received a copy of the GNU Library General Public * -* License along with this program; if not, write to the * -* Free Software Foundation, Inc., * -* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * -***************************************************************************/ +// ============================================================================ +// Copyright (C) 2001-2020 by Jozef Starosczyk +// ixen {at} copyhandler [dot] com +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License +// (version 2) as published by the Free Software Foundation; +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// ============================================================================ #include "stdafx.h" #include "ch.h" #include "FeedbackNotEnoughSpaceDlg.h" -#include "StringHelpers.h" #include "resource.h" #include "../libchengine/EFeedbackResult.h" +#include "RuleEditDlg.h" +#include "StringHelpers.h" #ifdef _DEBUG #define new DEBUG_NEW @@ -32,22 +33,15 @@ ///////////////////////////////////////////////////////////////////////////// // CFeedbackNotEnoughSpaceDlg dialog -CFeedbackNotEnoughSpaceDlg::CFeedbackNotEnoughSpaceDlg(chengine::FeedbackRules& currentRules, unsigned long long ullSizeRequired, const wchar_t* pszSrcPath, const wchar_t* pszDstPath) +CFeedbackNotEnoughSpaceDlg::CFeedbackNotEnoughSpaceDlg(chengine::FeedbackRules& currentRules, unsigned long long ullSizeRequired, const wchar_t* pszDstPath) :ictranslate::CLanguageDialog(IDD_FEEDBACK_NOTENOUGHSPACE_DIALOG), - m_strDisk(pszDstPath), + m_strDstPath(pszDstPath), m_ullRequired(ullSizeRequired), - m_bAllItems(FALSE), m_fsLocal(GetLogFileData()), m_rules(currentRules) { - m_vstrFiles.emplace_back(pszSrcPath); } -bool CFeedbackNotEnoughSpaceDlg::IsApplyToAllItemsChecked() const -{ - return m_bAllItems; -} - const chengine::FeedbackRules& CFeedbackNotEnoughSpaceDlg::GetRules() const { return m_rules; @@ -56,53 +50,47 @@ void CFeedbackNotEnoughSpaceDlg::DoDataExchange(CDataExchange* pDX) { CLanguageDialog::DoDataExchange(pDX); - //{{AFX_DATA_MAP(CFeedbackNotEnoughSpaceDlg) - DDX_Control(pDX, IDC_FILES_LIST, m_ctlFiles); - //}}AFX_DATA_MAP - DDX_Check(pDX, IDC_ALL_ITEMS_CHECK, m_bAllItems); + + DDX_Control(pDX, IDC_LOCATION_EDIT, m_ctlLocationEdit); + DDX_Control(pDX, IDC_REQUIRED_SPACE_STATIC, m_ctlRequiredSpaceStatic); + DDX_Control(pDX, IDC_AVAILABLE_SPACE_STATIC, m_ctlAvailableSpaceStatic); + DDX_Control(pDX, IDC_RETRY_BUTTON, m_btnRetry); + DDX_Control(pDX, IDC_IGNORE_BUTTON, m_btnIgnore); + DDX_Control(pDX, IDC_CUSTOM_RULES_BUTTON, m_btnCustomRules); + DDX_Control(pDX, IDC_PAUSE_BUTTON, m_btnPause); + DDX_Control(pDX, IDCANCEL, m_btnCancel); } BEGIN_MESSAGE_MAP(CFeedbackNotEnoughSpaceDlg,ictranslate::CLanguageDialog) - //{{AFX_MSG_MAP(CFeedbackNotEnoughSpaceDlg) ON_WM_TIMER() - ON_BN_CLICKED(IDC_RETRY_BUTTON, OnRetryButton) - ON_BN_CLICKED(IDC_IGNORE_BUTTON, OnIgnoreButton) - //}}AFX_MSG_MAP - ON_BN_CLICKED(IDCANCEL, &CFeedbackNotEnoughSpaceDlg::OnBnClickedCancel) + ON_BN_CLICKED(IDC_RETRY_BUTTON, OnBnRetry) + ON_BN_CLICKED(IDC_IGNORE_BUTTON, OnBnIgnore) + ON_BN_CLICKED(IDCANCEL, OnCancel) + ON_BN_CLICKED(IDC_CUSTOM_RULES_BUTTON, OnBnCustomRules) + ON_BN_CLICKED(IDC_PAUSE_BUTTON, OnBnPause) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CFeedbackNotEnoughSpaceDlg message handlers void CFeedbackNotEnoughSpaceDlg::UpdateDialog() { - // format needed text - ictranslate::CFormat fmt(GetResManager().LoadString(IDS_NERPATH_STRING)); - fmt.SetParam(_T("%path"), m_strDisk); + // update size information + m_ctlRequiredSpaceStatic.SetWindowText(GetSizeString(m_ullRequired)); - CWnd* pWnd=GetDlgItem(IDC_HEADER_STATIC); - if (pWnd) - pWnd->SetWindowText(fmt.ToString()); - - // now the sizes - pWnd=GetDlgItem(IDC_REQUIRED_STATIC); - if (pWnd) - pWnd->SetWindowText(GetSizeString(m_ullRequired)); - unsigned long long ullFree = 0, ullTotal = 0; - pWnd=GetDlgItem(IDC_AVAILABLE_STATIC); - if(pWnd) + try { - try - { - m_fsLocal.GetDynamicFreeSpace(chcore::PathFromString(m_strDisk), ullFree, ullTotal); - } - catch(const std::exception&) - { - ullFree = 0; - } - pWnd->SetWindowText(GetSizeString(ullFree)); + m_fsLocal.GetDynamicFreeSpace(chcore::PathFromString(m_strDstPath), ullFree, ullTotal); } + catch(const std::exception&) + { + ullFree = 0; + } + m_ctlAvailableSpaceStatic.SetWindowText(GetSizeString(ullFree)); + + // location + m_ctlLocationEdit.SetWindowText(m_strDstPath); } BOOL CFeedbackNotEnoughSpaceDlg::OnInitDialog() @@ -114,31 +102,29 @@ 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); + AddResizableControl(IDC_DETAILS_STATIC, 0.0, 0.0, 1.0, 1.0); + AddResizableControl(IDC_ICON_STATIC, 0.0, 0.0, 0.0, 0.0); - AddResizableControl(IDC_FILES_LIST, 0.0, 0.0, 1.0, 1.0); + AddResizableControl(IDC_LOCATION_STATIC, 0.0, 0.0, 0.0, 0.0); + AddResizableControl(IDC_LOCATION_EDIT, 0.0, 0.0, 0.0, 1.0); - AddResizableControl(IDC_003_STATIC, 0.0, 1.0, 0.0, 0.0); - AddResizableControl(IDC_004_STATIC, 0.0, 1.0, 0.0, 0.0); + AddResizableControl(IDC_REQUIRED_SPACE_HDR_STATIC, 0.0, 0.0, 0.0, 0.0); + AddResizableControl(IDC_REQUIRED_SPACE_STATIC, 0.0, 0.0, 1.0, 0.0); - AddResizableControl(IDC_REQUIRED_STATIC, 0.0, 1.0, 1.0, 0.0); - AddResizableControl(IDC_AVAILABLE_STATIC, 0.0, 1.0, 1.0, 0.0); + AddResizableControl(IDC_AVAILABLE_SPACE_HDR_STATIC, 0.0, 0.0, 0.0, 0.0); + AddResizableControl(IDC_AVAILABLE_SPACE_STATIC, 0.0, 0.0, 1.0, 0.0); - AddResizableControl(IDC_RETRY_BUTTON, 1.0, 1.0, 0.0, 0.0); - AddResizableControl(IDC_IGNORE_BUTTON, 1.0, 1.0, 0.0, 0.0); - AddResizableControl(IDCANCEL, 1.0, 1.0, 0.0, 0.0); + AddResizableControl(IDC_RETRY_BUTTON, 0.34, 1.0, 0.33, 0.0); + AddResizableControl(IDC_IGNORE_BUTTON, 0.67, 1.0, 0.33, 0.0); + AddResizableControl(IDC_CUSTOM_RULES_BUTTON, 0.0, 1.0, 0.34, 0.0); + AddResizableControl(IDC_PAUSE_BUTTON, 0.34, 1.0, 0.33, 0.0); + AddResizableControl(IDCANCEL, 0.67, 1.0, 0.33, 0.0); - AddResizableControl(IDC_ALL_ITEMS_CHECK, 0.0, 1.0, 1.0, 0.0); - InitializeResizableControls(); // set to top - SetWindowPos(&wndNoTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE /*| SWP_SHOWWINDOW*/); + //SetWindowPos(&wndNoTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE /*| SWP_SHOWWINDOW*/); - // needed data - for (size_t i=0;iSetWindowText(GetSizeString(ullFree)); + m_ctlAvailableSpaceStatic.SetWindowText(GetSizeString(ullFree)); - // end dialog if this is enough - if (m_ullRequired <= ullFree) - { - CLanguageDialog::OnTimer(nIDEvent); - EndDialog(chengine::EFeedbackResult::eResult_Retry); - } + // end dialog if this is enough + if (m_ullRequired <= ullFree) + { + KillTimer(1601); + EndDialog(chengine::EFeedbackResult::eResult_Retry); } } CLanguageDialog::OnTimer(nIDEvent); } -void CFeedbackNotEnoughSpaceDlg::OnRetryButton() +void CFeedbackNotEnoughSpaceDlg::OnLanguageChanged() { - UpdateData(TRUE); - EndDialog(chengine::EFeedbackResult::eResult_Retry); + UpdateDialog(); } -void CFeedbackNotEnoughSpaceDlg::OnIgnoreButton() +void CFeedbackNotEnoughSpaceDlg::OnBnRetry() { - UpdateData(TRUE); - EndDialog(chengine::EFeedbackResult::eResult_Ignore); + EndDialog(chengine::EFeedbackResult::eResult_Retry); } -void CFeedbackNotEnoughSpaceDlg::OnLanguageChanged() +void CFeedbackNotEnoughSpaceDlg::OnBnIgnore() { - UpdateDialog(); + EndDialog(chengine::EFeedbackResult::eResult_Ignore); } void CFeedbackNotEnoughSpaceDlg::OnCancel() { - UpdateData(TRUE); EndDialog(chengine::EFeedbackResult::eResult_Cancel); } -void CFeedbackNotEnoughSpaceDlg::OnBnClickedCancel() +void CFeedbackNotEnoughSpaceDlg::OnBnCustomRules() { - UpdateData(TRUE); - EndDialog(chengine::EFeedbackResult::eResult_Cancel); + RuleEditDlg dlg(m_rules); + if(dlg.DoModal() == IDOK) + { + m_rules = dlg.GetRules(); + } } + +void CFeedbackNotEnoughSpaceDlg::OnBnPause() +{ + EndDialog(chengine::EFeedbackResult::eResult_Pause); +}