www.gusucode.com > 网页爬虫VC++源码下载-源码程序 > 网页爬虫VC++源码下载-源码程序\code\webpageloader_SourceCode\FileProp.cpp

    //Download by http://www.NewXing.com
// FileProp.cpp : implementation file
//

#include "stdafx.h"
#include "WebPageLoader.h"
#include "FileProp.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CFileProp property page

IMPLEMENT_DYNCREATE(CFileProp, CPropertyPage)

CFileProp::CFileProp() : CPropertyPage(CFileProp::IDD)
{
   ASSERT(FALSE);
}

CFileProp::CFileProp(CSession *pSession) : CPropertyPage(CFileProp::IDD)
{
   ASSERT_VALID(pSession);
   m_pSession = pSession;

   //{{AFX_DATA_INIT(CFileProp)
   m_Duplicates = m_pSession->m_Settings.m_Duplicates;
   m_sExtensions = m_pSession->m_Settings.m_sFileExtensions;
   m_sFileNameFilter = m_pSession->m_Settings.m_sFileNameFilter;
   m_sExcludeFilter = m_pSession->m_Settings.m_sExcludeFilter;
   m_iFileSizeFilter = m_pSession->m_Settings.m_iFileSizeFilter;
   m_bFilterName = m_pSession->m_Settings.m_bUseFileNameFilter;
   m_bExcludeFilter = m_pSession->m_Settings.m_bUseExcludeFilter;
   m_bFilterSize = m_pSession->m_Settings.m_bUseFileSizeFilter;
   if( m_pSession->m_Settings.m_bPrefixRename ) m_iPrefix = 0; else m_iPrefix = 1;
   m_bSkipBanners = m_pSession->m_Settings.m_bSkipBanners;
   m_bSkipReoccouring = m_pSession->m_Settings.m_bPreventRepeating;
   //}}AFX_DATA_INIT
}

CFileProp::~CFileProp()
{
}

void CFileProp::DoDataExchange(CDataExchange* pDX)
{
   CPropertyPage::DoDataExchange(pDX);
   //{{AFX_DATA_MAP(CFileProp)
   DDX_Control(pDX, IDC_PREFIX, m_ctlPrefix);
   DDX_Control(pDX, IDC_FILESIZEFILTER, m_ctlFilesizeFilter);
   DDX_Control(pDX, IDC_FILENAMEFILTER, m_ctlFilenameFilter);
   DDX_Control(pDX, IDC_EXCLUDEFILTERSTRING, m_ctlExcludeFilter);
   DDX_CBIndex(pDX, IDC_DUPLICATES, m_Duplicates);
   DDX_Text(pDX, IDC_EXTENSIONS, m_sExtensions);
   DDV_MaxChars(pDX, m_sExtensions, 256);
   DDX_Text(pDX, IDC_FILESIZEFILTER, m_iFileSizeFilter);
   DDX_Text(pDX, IDC_FILENAMEFILTER, m_sFileNameFilter);
   DDX_Text(pDX, IDC_EXCLUDEFILTERSTRING, m_sExcludeFilter);
   DDV_MinMaxInt(pDX, m_iFileSizeFilter, 1, 500);
   DDX_Check(pDX, IDC_FILTERSIZE, m_bFilterSize);
   DDX_Check(pDX, IDC_FILTERNAME, m_bFilterName);
   DDX_Check(pDX, IDC_EXCLUDEFILTER, m_bExcludeFilter);
   DDX_CBIndex(pDX, IDC_PREFIX, m_iPrefix);
   DDX_Check(pDX, IDC_SKIPBANNERS, m_bSkipBanners);
   DDX_Check(pDX, IDC_SKIPREOCCOURING, m_bSkipReoccouring);
   //}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFileProp, CPropertyPage)
   //{{AFX_MSG_MAP(CFileProp)
   ON_BN_CLICKED(IDC_FILTERNAME, OnFilterName)
   ON_BN_CLICKED(IDC_FILTERSIZE, OnFilterSize)
   ON_BN_CLICKED(IDC_EXCLUDEFILTER, OnExcludeFilter)
   ON_CBN_SELCHANGE(IDC_DUPLICATES, OnSelChangeDuplicates)
   //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFileProp message handlers

void CFileProp::OnOK() 
{
   ASSERT_VALID(m_pSession);
   
   CSingleLock lock( *m_pSession, TRUE );
   m_pSession->m_Settings.m_Duplicates = (Duplicate)m_Duplicates;
   m_pSession->m_Settings.m_sFileExtensions = m_sExtensions;
   m_pSession->m_Settings.m_sFileNameFilter = m_sFileNameFilter;
   m_pSession->m_Settings.m_sExcludeFilter = m_sExcludeFilter;
   m_pSession->m_Settings.m_iFileSizeFilter = m_iFileSizeFilter;
   m_pSession->m_Settings.m_bUseFileNameFilter = m_bFilterName;
   m_pSession->m_Settings.m_bUseFileSizeFilter = m_bFilterSize;
   m_pSession->m_Settings.m_bUseExcludeFilter = m_bExcludeFilter;
   m_pSession->m_Settings.m_bPrefixRename = (m_iPrefix==0);
   m_pSession->m_Settings.m_bSkipBanners = m_bSkipBanners;
   m_pSession->m_Settings.m_bPreventRepeating = m_bSkipReoccouring;

   CPropertyPage::OnOK();
}

BOOL CFileProp::OnKillActive() 
{
   if( UpdateData()==FALSE ) return FALSE;

   if( m_sExtensions.FindOneOf(_T("*?:\\.\"|"))>=0 ) {
      AfxMessageBox(IDS_ERR_EXTENSIONS);
      return FALSE;
   };
   
   return CPropertyPage::OnKillActive();
}

void CFileProp::OnFilterName() 
{
   UpdateData();   
   m_ctlFilenameFilter.EnableWindow(m_bFilterName);
}

void CFileProp::OnExcludeFilter() 
{
   UpdateData();   
   m_ctlExcludeFilter.EnableWindow(m_bExcludeFilter);
}

void CFileProp::OnFilterSize() 
{
   UpdateData();   
   m_ctlFilesizeFilter.EnableWindow(m_bFilterSize);
}

BOOL CFileProp::OnInitDialog() 
{
   CPropertyPage::OnInitDialog();

   if( m_bFilterName ) OnFilterName();
   if( m_bExcludeFilter ) OnExcludeFilter();
   if( m_bFilterSize ) OnFilterSize();
   OnSelChangeDuplicates();

   return TRUE;  // return TRUE unless you set the focus to a control
                 // EXCEPTION: OCX Property Pages should return FALSE
}

void CFileProp::OnSelChangeDuplicates() 
{
   UpdateData();   
   m_ctlPrefix.ShowWindow(m_Duplicates==(int)DUP_RENAME ? SW_SHOW : SW_HIDE);
}