home *** CD-ROM | disk | FTP | other *** search
- // SessionPropertiesSheet.cpp : implementation file
- //
-
- #include "stdafx.h"
- #include "MirrorIt.h"
- #include "SessionPropertiesMainPage.h"
- #include "SessionPropertiesMirrorPage.h"
- #include "SessionPropertiesFileNamePage.h"
- #include "SessionPropertiesFileTypesPage.h"
- #include "SessionPropertiesLimitPage.h"
- #include "SessionPropertiesProxyPage.h"
- #include "SessionPropertiesPasswordPage.h"
- #include "SessionPropertiesAdvancedPage.h"
- #include "SessionPropertiesSheet.h"
- #include "Session.h"
-
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
-
- /////////////////////////////////////////////////////////////////////////////
- // CSessionPropertiesSheet
-
- IMPLEMENT_DYNAMIC(CSessionPropertiesSheet, CPropertySheet)
-
- CSessionPropertiesSheet::CSessionPropertiesSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
- :CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
- {
- }
-
- CSessionPropertiesSheet::CSessionPropertiesSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
- :CPropertySheet(pszCaption, pParentWnd, iSelectPage)
- {
- }
-
- CSessionPropertiesSheet::~CSessionPropertiesSheet()
- {
- if (page1) delete page1;
- if (page2) delete page2;
- if (page3) delete page3;
- if (page4) delete page4;
- if (page5) delete page5;
- if (page6) delete page6;
- if (page7) delete page7;
- if (page8) delete page8;
- }
-
-
- BEGIN_MESSAGE_MAP(CSessionPropertiesSheet, CPropertySheet)
- //{{AFX_MSG_MAP(CSessionPropertiesSheet)
- // NOTE - the ClassWizard will add and remove mapping macros here.
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
-
- /////////////////////////////////////////////////////////////////////////////
- // CSessionPropertiesSheet message handlers
-
- CSessionPropertiesSheet::CSessionPropertiesSheet(BOOL bNew)
- :CPropertySheet(bNew ? IDC_SESSIONADD : IDC_SESSIONPROPERTIES)
- {
- page1 = new CSessionPropertiesMainPage;
- AddPage(page1);
- page1 -> m_psp.dwFlags &= ~(PSP_HASHELP);
-
- page2 = new CSessionPropertiesMirrorPage;
- AddPage(page2);
- page2 -> m_psp.dwFlags &= ~(PSP_HASHELP);
-
- page3 = new CSessionPropertiesFileNamePage;
- AddPage(page3);
- page3 -> m_psp.dwFlags &= ~(PSP_HASHELP);
-
- page4 = new CSessionPropertiesFileTypesPage;
- AddPage(page4);
- page4 -> m_psp.dwFlags &= ~(PSP_HASHELP);
-
- page5 = new CSessionPropertiesLimitPage;
- AddPage(page5);
- page5 -> m_psp.dwFlags &= ~(PSP_HASHELP);
-
- page6 = new CSessionPropertiesProxyPage;
- AddPage(page6);
- page6 -> m_psp.dwFlags &= ~(PSP_HASHELP);
-
- page7 = new CSessionPropertiesPasswordPage;
- AddPage(page7);
- page7 -> m_psp.dwFlags &= ~(PSP_HASHELP);
-
- page8 = new CSessionPropertiesAdvancedPage;
- AddPage(page8);
- page8 -> m_psp.dwFlags &= ~(PSP_HASHELP);
-
- m_psh.dwFlags |= (PSH_NOAPPLYNOW);
- m_psh.dwFlags &= ~(PSH_HASHELP);
-
- }
-
- void CSessionPropertiesSheet::SetData(CSession & session)
- {
- page1 -> m_BaseURL = session.m_BaseURL;
- page1 -> m_SessionName = session.m_SessionName;
- page1 -> m_Comment = session.m_Comment;
- page1 -> m_Directory = session.m_Directory;
-
- page2 -> m_Mirror = session.m_Mirror;
- page2 -> m_LocalURLs = session.m_LocalURLs;
-
- page3 -> m_LongFileName = session.m_LongFileName;
- page3 -> m_FullNames = session.m_FullName;
-
- int i, j;
-
- POSITION item = session.m_MimeTypes.GetHeadPosition();
- while (item != NULL)
- {
- page4 -> m_LMimeTypes.AddTail(session.m_MimeTypes.GetNext(item));
- }
-
- page5 -> m_BNumberOfFiles = session.m_BNumberOfFiles;
- page5 -> m_NumberOfFiles = session.m_NumberOfFiles;
- page5 -> m_BNumberOfLevels = session.m_BNumberOfLevels;
- page5 -> m_NumberOfLevels = session.m_NumberOfLevels;
- page5 -> m_BNumberOfKBytes = session.m_BNumberOfKBytes;
-
- page6 -> m_BProxy = session.m_BProxy;
- page6 -> m_ProxyServer = session.m_ProxyServer;
- page6 -> m_ProxyPort = session.m_ProxyPort;
- page6 -> m_NoProxy = session.m_NoProxy;
-
- SYSTEMTIME st;
- st.wYear = session.m_TModifiedSince.GetYear();
- st.wMonth = session.m_TModifiedSince.GetMonth();
- st.wDayOfWeek = session.m_TModifiedSince.GetDayOfWeek();
- st.wDay = session.m_TModifiedSince.GetDay();
- st.wHour = session.m_TModifiedSince.GetHour();
- st.wMinute = session.m_TModifiedSince.GetMinute();
- st.wSecond = session.m_TModifiedSince.GetSecond();
- st.wMilliseconds = 0;
- page8 -> m_DateTime = st;
- page8 -> m_BDate = session.m_ModifiedSince;
- page8 -> m_Multiple = session.m_Multiple;
- page8 -> m_Temporary = session.m_Temporary;
- page8 -> m_Permanent = session.m_Permanent;
- page8 -> m_Exclude = session.m_Exclude;
-
- page7 -> m_UserName = session.m_UserName;
- page7 -> m_Password = session.m_Password;
-
- i = session.m_NumberOfBytes;
- j = 0;
-
- while (i > UD_MAXVAL)
- {
- j++;
- i >>= 10;
- }
- page5 -> m_NumberOfKBytes = i;
- page5 -> m_KB = j;
- }
-
- BOOL CSessionPropertiesSheet::GetData(CSession & session)
- {
- BOOL result = FALSE;
-
- if (page1 -> m_Directory[page1 -> m_Directory.GetLength() - 1] != '\\')
- page1 -> m_Directory += '\\';
- SetString(session.m_BaseURL, page1 -> m_BaseURL, result);
- SetString(session.m_SessionName, page1 -> m_SessionName, result);
- SetString(session.m_Comment, page1 -> m_Comment, result);
- SetString(session.m_Directory, page1 -> m_Directory, result);
-
- SetInt(session.m_Mirror, page2 -> m_Mirror, result);
- SetBool(session.m_LocalURLs, page2 -> m_LocalURLs, result);
-
- SetInt(session.m_LongFileName, page3 -> m_LongFileName, result);
- SetBool(session.m_FullName, page3 -> m_FullNames, result);
-
- BOOL b = session.m_MimeTypes.GetCount() == page4 -> m_LMimeTypes.GetCount();
-
- if (b)
- {
- POSITION item = session.m_MimeTypes.GetHeadPosition();
- while (item != NULL)
- {
- CString temp = session.m_MimeTypes.GetNext(item);
- b = b && (page4 -> m_LMimeTypes.Find(temp) != NULL);
- }
- }
- if (!b)
- {
- result = TRUE;
- session.m_MimeTypes.RemoveAll();
-
- POSITION item = page4 -> m_LMimeTypes.GetHeadPosition();
- while (item != NULL)
- {
- session.m_MimeTypes.AddTail(page4 -> m_LMimeTypes.GetNext(item));
- }
-
- }
-
- SetBool(session.m_BNumberOfFiles, page5 -> m_BNumberOfFiles, result);
- SetUINT(session.m_NumberOfFiles, page5 -> m_NumberOfFiles, result);
- SetBool(session.m_BNumberOfLevels, page5 -> m_BNumberOfLevels, result);
- SetUINT(session.m_NumberOfLevels, page5 -> m_NumberOfLevels, result);
- SetBool(session.m_BNumberOfKBytes, page5 -> m_BNumberOfKBytes, result);
-
- UINT i = page5 -> m_NumberOfKBytes, j = page5 -> m_KB;
- while (j > 0)
- {
- i *= 1024;
- j--;
- }
- SetUINT(session.m_NumberOfBytes, i, result);
-
- SetBool(session.m_BProxy, page6 -> m_BProxy, result);
- SetString(session.m_ProxyServer, page6 -> m_ProxyServer, result);
- SetUINT(session.m_ProxyPort, page6 -> m_ProxyPort, result);
- SetString(session.m_NoProxy, page6 -> m_NoProxy, result);
-
- SetString(session.m_UserName, page7 -> m_UserName, result);
- SetString(session.m_Password, page7 -> m_Password, result);
-
- CTime temptime(page8 -> m_DateTime.wYear, page8 -> m_DateTime.wMonth,
- page8 -> m_DateTime.wDay, page8 -> m_DateTime.wHour,
- page8 -> m_DateTime.wMinute, page8 -> m_DateTime.wSecond, 0);
- if (temptime != session.m_TModifiedSince)
- {
- session.m_TModifiedSince = temptime;
- result = 1;
- }
- SetBool(session.m_ModifiedSince, page8 -> m_BDate, result);
- SetBool(session.m_Multiple, page8 -> m_Multiple, result);
- SetBool(session.m_Permanent, page8 -> m_Permanent, result);
- SetBool(session.m_Temporary, page8 -> m_Temporary, result);
- SetString(session.m_Exclude, page8 -> m_Exclude, result);
-
- session.url.parse(session.m_BaseURL);
-
- return result;
- }
-
- void CSessionPropertiesSheet::SetString(CString & s1, CString & s2, BOOL & b)
- {
- if (s1.Compare(s2))
- {
- s1 = s2;
- b = TRUE;
- }
- }
-
-
- void CSessionPropertiesSheet::SetInt(int & i1, int & i2, BOOL & b)
- {
- if (i1 != i2)
- {
- i1 = i2;
- b = TRUE;
- }
- }
-
- void CSessionPropertiesSheet::SetBool(BOOL & b1, BOOL & b2, BOOL & b)
- {
- if (b1 ^ b2)
- {
- b1 = b2;
- b = TRUE;
- }
- }
-
- void CSessionPropertiesSheet::SetUINT(UINT & i1, UINT & i2, BOOL & b)
- {
- if (i1 != i2)
- {
- i1 = i2;
- b = TRUE;
- }
- }
-