Index: src/ch/CustomCopyDlg.cpp =================================================================== diff -u -re912e0a6b456c2eed24bec7303a908d3ff0aa59a -r09d557ffefb1dd57e7606695e16c3151e42285f2 --- src/ch/CustomCopyDlg.cpp (.../CustomCopyDlg.cpp) (revision e912e0a6b456c2eed24bec7303a908d3ff0aa59a) +++ src/ch/CustomCopyDlg.cpp (.../CustomCopyDlg.cpp) (revision 09d557ffefb1dd57e7606695e16c3151e42285f2) @@ -242,7 +242,7 @@ lvc.cx=static_cast(0.1*rc.Width()); m_ctlFilters.InsertColumn(6, &lvc); - m_bFilters=!!m_ccData.m_afFilters.GetSize(); + m_bFilters = !m_ccData.m_afFilters.IsEmpty(); // other custom flags m_bAdvanced=(m_ccData.m_bIgnoreFolders | m_ccData.m_bCreateStructure); @@ -341,8 +341,12 @@ // refresh the entries in filters' list m_ctlFilters.DeleteAllItems(); - for (int i=0;im_bUseMask) + dlg.m_astrAddMask.Add(pFilter->GetCombinedMask(strData)); + if(pFilter->m_bUseExcludeMask) + dlg.m_astrAddExcludeMask.Add(pFilter->GetCombinedExcludeMask(strData)); + } } if (dlg.DoModal() == IDOK) @@ -749,28 +758,36 @@ { int iItem=m_ctlFilters.GetNextSelectedItem(pos); CFilterDlg dlg; - dlg.m_ffFilter=m_ccData.m_afFilters.GetAt(iItem); + const CFileFilter* pFilter = m_ccData.m_afFilters.GetAt(iItem); + BOOST_ASSERT(pFilter); + if(pFilter) + dlg.m_ffFilter = *pFilter; CString strData; - for (int i=0;im_bUseMask && i != iItem) + dlg.m_astrAddMask.Add(pFilter->GetCombinedMask(strData)); + if (pFilter->m_bUseExcludeMask && i != iItem) + dlg.m_astrAddExcludeMask.Add(pFilter->GetCombinedExcludeMask(strData)); + } } if (dlg.DoModal() == IDOK) { // delete old element m_ctlFilters.DeleteItem(iItem); - m_ccData.m_afFilters.RemoveAt(iItem); + //m_ccData.m_afFilters.RemoveAt(iItem); // insert new if needed if (dlg.m_ffFilter.m_bUseMask || dlg.m_ffFilter.m_bUseExcludeMask || dlg.m_ffFilter.m_bUseSize || dlg.m_ffFilter.m_bUseDate || dlg.m_ffFilter.m_bUseAttributes) { - m_ccData.m_afFilters.InsertAt(iItem, dlg.m_ffFilter); + m_ccData.m_afFilters.SetAt(iItem, dlg.m_ffFilter); AddFilter(dlg.m_ffFilter, iItem); } }