00001
00002
00003
00004
00005
00006 #include "stdafx.h"
00007 #include "FdmApp.h"
00008 #include "SpiderAddPageDlg.h"
00009 #include "DownloadsWnd.h"
00010 #include "CreateDownloadDlg.h"
00011 #include "GroupDlg.h"
00012 #include "FolderBrowser.h"
00013 #include "ScheduleSheet.h"
00014 #include "inetutil.h"
00015 #include "fsSitesMgr.h"
00016 #include "WPDS_Sheet.h"
00017 #include "system.h"
00018
00019 #ifdef _DEBUG
00020 #define new DEBUG_NEW
00021 #undef THIS_FILE
00022 static char THIS_FILE[] = __FILE__;
00023 #endif
00024
00025 extern CDownloadsWnd *_pwndDownloads;
00026
00027 CSpiderAddPageDlg::CSpiderAddPageDlg(CWnd* pParent )
00028 : CDialog(CSpiderAddPageDlg::IDD, pParent)
00029 {
00030
00031
00032
00033 m_bAuthChanged = FALSE;
00034 }
00035
00036 void CSpiderAddPageDlg::DoDataExchange(CDataExchange* pDX)
00037 {
00038 CDialog::DoDataExchange(pDX);
00039
00040 DDX_Control(pDX, IDC_OUTFOLDER_SETDEFAULT, m_btnOutFolderSetDefault);
00041 DDX_Control(pDX, IDC_DEPTHSPIN, m_wndDepthSpin);
00042 DDX_Control(pDX, IDC_GROUPS, m_wndGroups);
00043 DDX_Control(pDX, IDC_SETTIME, m_btnSetTime);
00044 DDX_Control(pDX, IDC_CREATEGROUP, m_btnCreateGroup);
00045 DDX_Control(pDX, IDC_CHOOSEFOLDER, m_btnChooseFolder);
00046
00047 }
00048
00049 BEGIN_MESSAGE_MAP(CSpiderAddPageDlg, CDialog)
00050
00051 ON_CBN_SELCHANGE(IDC_GROUPS, OnSelchangeGroups)
00052 ON_BN_CLICKED(IDC_ADVANCED, OnAdvanced)
00053 ON_BN_CLICKED(IDC_CREATEGROUP, OnCreategroup)
00054 ON_BN_CLICKED(IDC_CHOOSEFOLDER, OnChoosefolder)
00055 ON_BN_CLICKED(IDC_SETTIME, OnSettime)
00056 ON_BN_CLICKED(IDC_STARTNOW, OnStartnow)
00057 ON_BN_CLICKED(IDC_STARTMANUAL, OnStartmanual)
00058 ON_BN_CLICKED(IDC_STARTSCHEDULE, OnStartschedule)
00059 ON_CBN_EDITCHANGE(IDC_URL, OnEditchangeUrl)
00060 ON_CBN_SELCHANGE(IDC_URL, OnSelchangeUrl)
00061 ON_WM_CONTEXTMENU()
00062 ON_COMMAND(ID_WHATISTHIS, OnWhatisthis)
00063 ON_BN_CLICKED(IDC_USELOGIN, OnUselogin)
00064 ON_WM_HELPINFO()
00065 ON_CBN_EDITCHANGE(IDC_OUTFOLDER, OnEditchangeOutfolder)
00066 ON_CBN_SELCHANGE(IDC_OUTFOLDER, OnSelchangeOutfolder)
00067 ON_BN_CLICKED(IDC_KEEP, OnKeep)
00068 ON_EN_CHANGE(IDC_USER, OnChangeUser)
00069 ON_EN_CHANGE(IDC_PASSWORD, OnChangePassword)
00070 ON_BN_CLICKED(IDC_OUTFOLDER_SETDEFAULT, OnOutfolderSetdefault)
00071
00072 END_MESSAGE_MAP()
00073
00074 BOOL CSpiderAddPageDlg::OnInitDialog()
00075 {
00076 CDialog::OnInitDialog();
00077
00078 m_task.hts.enType = HTS_ONCE;
00079 m_task.hts.last.dwHighDateTime = m_task.hts.last.dwLowDateTime = UINT_MAX;
00080 m_task.dwFlags = SCHEDULE_ENABLED;
00081 SYSTEMTIME time;
00082 GetLocalTime (&time);
00083 if (++time.wHour > 23)
00084 time.wHour = 0;
00085 time.wMinute = 0;
00086 SystemTimeToFileTime (&time, &m_task.hts.next);
00087 m_task.uWaitForConfirmation = 0;
00088
00089 m_btnChooseFolder.SetIcon (SICO (IDI_CHOOSEFOLDER));
00090 m_btnCreateGroup.SetIcon (SICO (IDI_CREATEGROUP));
00091 m_btnSetTime.SetIcon (SICO (IDI_SETTIME));
00092 m_btnOutFolderSetDefault.SetIcon (SICO (IDI_SETFOLDERDEFAULT));
00093
00094 m_wndGroups.Fill ();
00095 m_wndGroups.SelectGroupById (_App.CreateDld_IdOfLastGrpSelected ());
00096
00097 CheckDlgButton (IDC_KEEP, _App.Spider_Flags () & WPDF_KEEPFOLDERSTRUCTURE ?
00098 BST_CHECKED : BST_UNCHECKED);
00099
00100 CheckDlgButton (IDC_DONTSTOREPAGES, _App.Spider_Flags () & WPDF_DONTSTOREPAGES ?
00101 BST_CHECKED : BST_UNCHECKED);
00102
00103 CheckDlgButton (IDC_DELCOMPLETED, _App.Spider_Flags () & WPDF_DELCOMPLETEDDLDS ?
00104 BST_CHECKED : BST_UNCHECKED);
00105
00106 CComboBox *pUrls = (CComboBox*) GetDlgItem (IDC_URL);
00107 for (int i = 0; i < _LastUrlFiles.GetRecordCount (); i++)
00108 pUrls->AddString (_LastUrlFiles.GetRecord (i));
00109
00110 if (m_strStartUrl.GetLength () == 0)
00111 {
00112 LPCSTR pszUrl = _ClipbrdMgr.Text ();
00113 if (pszUrl)
00114 {
00115 fsURL url;
00116 if (url.Crack (pszUrl) == IR_SUCCESS)
00117 m_strUrl = pszUrl;
00118 }
00119
00120 if (m_strUrl.GetLength () == 0)
00121 m_strUrl = "http://";
00122 }
00123 else
00124 m_strUrl = m_strStartUrl;
00125
00126 pUrls->SetWindowText (m_strUrl);
00127
00128 CComboBox *pDirs = (CComboBox*) GetDlgItem (IDC_OUTFOLDER);
00129 for (i = 0; i < _LastFolders.GetRecordCount (); i++)
00130 pDirs->AddString (_LastFolders.GetRecord (i));
00131
00132 GetDlgItem (IDC_URL)->SetFocus ();
00133
00134 m_bOutFolderChanged = m_bGroupChanged = FALSE;
00135
00136 ReadAutostart ();
00137 ApplyLanguage ();
00138
00139 if (m_bReqTopMost)
00140 {
00141 fsSetForegroundWindow (m_hWnd);
00142 ::SetWindowPos (m_hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
00143 }
00144
00145 m_wndDepthSpin.SetRange (0, UD_MAXVAL);
00146 SetDlgItemInt (IDC_DEPTH, m_wpd->GetWDPS ()->iDepth);
00147
00148 if (m_wndGroups.SelectGroupById (_App.NewDL_GroupId ()))
00149 m_bGroupChanged = TRUE;
00150
00151 OnChangeGroups ();
00152
00153 BuildOutFolder ();
00154
00155 UpdateEnabled ();
00156
00157 return TRUE;
00158 }
00159
00160 void CSpiderAddPageDlg::OnChangeGroups()
00161 {
00162 SetDlgItemText (IDC_OUTFOLDER, m_wndGroups.GetSelectedGroup ()->strOutFolder);
00163
00164 m_strBaseFolder = m_wndGroups.GetSelectedGroup ()->strOutFolder;
00165 BuildOutFolder ();
00166 }
00167
00168 void CSpiderAddPageDlg::OnSelchangeGroups()
00169 {
00170 m_bGroupChanged = TRUE;
00171 OnChangeGroups ();
00172 }
00173
00174 void CSpiderAddPageDlg::OnAdvanced()
00175 {
00176 CWPDS_Sheet sheet (LS (L_ADVANCED), this);
00177
00178 sheet.Init (m_wpd->GetWDPS (), FALSE, NULL);
00179
00180
00181 m_wpd->GetWDPS ()->iDepth = GetDlgItemInt (IDC_DEPTH);
00182
00183 _DlgMgr.OnDoModal (&sheet);
00184 sheet.DoModal ();
00185 _DlgMgr.OnEndDialog (&sheet);
00186
00187 SetDlgItemInt (IDC_DEPTH, m_wpd->GetWDPS ()->iDepth);
00188 }
00189
00190 void CSpiderAddPageDlg::OnCreategroup()
00191 {
00192 if (m_wndGroups.CreateNewGroup (m_wndGroups.GetSelectedGroup ()))
00193 OnChangeGroups ();
00194 }
00195
00196 void CSpiderAddPageDlg::OnChoosefolder()
00197 {
00198 CString str = "";
00199 GetDlgItemText (IDC_OUTFOLDER, str);
00200
00201 if (str.GetLength () > 3 && (str [str.GetLength () - 1] == '\\' || str [str.GetLength () - 1] == '/'))
00202 str.GetBuffer (0) [str.GetLength () - 1] = 0;
00203
00204 CFolderBrowser *fb = CFolderBrowser::Create (LS (L_CHOOSEOUTFOLDER), str, NULL, this);
00205 if (fb == NULL)
00206 return;
00207
00208 SetDlgItemText (IDC_OUTFOLDER, fb->GetPath ());
00209 GetDlgItem (IDC_OUTFOLDER)->SetFocus ();
00210 }
00211
00212 void CSpiderAddPageDlg::OnSettime()
00213 {
00214 CScheduleSheet sheet (LS (L_SCHEDULEDLDS), this);
00215
00216 sheet.Init (&m_task, FALSE);
00217
00218 _DlgMgr.OnDoModal (&sheet);
00219
00220 if (IDOK == sheet.DoModal ())
00221 {
00222 CheckRadioButton (IDC_STARTNOW, IDC_STARTSCHEDULE, IDC_STARTSCHEDULE);
00223 m_bScheduled = TRUE;
00224 m_bAutoStart = FALSE;
00225 m_iAutostart = 2;
00226 }
00227
00228 _DlgMgr.OnEndDialog (&sheet);
00229 GetDlgItem (IDC_STARTSCHEDULE)->SetFocus ();
00230 }
00231
00232 void CSpiderAddPageDlg::OnStartnow()
00233 {
00234 m_bAutoStart = TRUE;
00235 m_bScheduled = FALSE;
00236 m_iAutostart = 0;
00237 }
00238
00239 void CSpiderAddPageDlg::OnStartmanual()
00240 {
00241 m_bScheduled = FALSE;
00242 m_bAutoStart = FALSE;
00243 m_iAutostart = 1;
00244 }
00245
00246 void CSpiderAddPageDlg::OnStartschedule()
00247 {
00248 m_bScheduled = TRUE;
00249 m_bAutoStart = FALSE;
00250 m_iAutostart = 2;
00251 }
00252
00253 void CSpiderAddPageDlg::OnUrlChanged()
00254 {
00255 fsURL url;
00256
00257 if (IR_SUCCESS != url.Crack (m_strUrl))
00258 return;
00259
00260 fsSiteInfo *site = _SitesMgr.FindSite2 (url.GetHostName (), fsNPToSiteValidFor (fsSchemeToNP (url.GetInternetScheme ())));
00261 if (site)
00262 {
00263 if (site->strUser != NULL && m_bAuthChanged == FALSE && *url.GetUserName () == 0)
00264 {
00265 LOG ("applying user and password...");
00266
00267 CheckDlgButton (IDC_USELOGIN, BST_CHECKED);
00268 SetDlgItemText (IDC_USER, site->strUser);
00269 if (site->strPassword)
00270 SetDlgItemText (IDC_PASSWORD, site->strPassword);
00271 UpdateEnabled ();
00272 }
00273
00274 if (site->pGroup && m_bGroupChanged == FALSE)
00275 {
00276 m_wndGroups.SelectGroup (site->pGroup);
00277 OnChangeGroups();
00278 }
00279 }
00280
00281 BuildOutFolder ();
00282 }
00283
00284 void CSpiderAddPageDlg::OnEditchangeUrl()
00285 {
00286 GetDlgItemText (IDC_URL, m_strUrl);
00287 OnUrlChanged ();
00288 }
00289
00290 void CSpiderAddPageDlg::OnSelchangeUrl()
00291 {
00292 CComboBox *pUrl = (CComboBox*) GetDlgItem (IDC_URL);
00293 pUrl->GetLBText (pUrl->GetCurSel (), m_strUrl);
00294 OnUrlChanged ();
00295 }
00296
00297 void CSpiderAddPageDlg::OnOK()
00298 {
00299 fsWPDSettings *wpds = m_wpd->GetWDPS ();
00300
00301 GetDlgItemText (IDC_URL, m_strUrl);
00302
00303 if (FALSE == WriteAuthorization ())
00304 return;
00305
00306 BOOL bAddSlash;
00307 if (FALSE == IsOkUrl (m_strUrl, m_wpd->GetWDPS ()->strHTMLExts, &bAddSlash))
00308 {
00309 WrongURL ();
00310 return;
00311 }
00312
00313 if (bAddSlash)
00314 m_strUrl += '/';
00315
00316 CString strOutFolder;
00317
00318 GetDlgItemText (IDC_OUTFOLDER, strOutFolder);
00319
00320 if (FALSE == CCreateDownloadDlg::_CheckFolderName (this, IDC_OUTFOLDER))
00321 return;
00322
00323 fsPathToGoodPath ((LPSTR)(LPCSTR)strOutFolder);
00324
00325 if (strOutFolder.GetLength () == 0)
00326 {
00327 MessageBox (LS (L_ENTERFLRNAME), LS (L_INPERR), MB_ICONEXCLAMATION);
00328 GetDlgItem (IDC_OUTFOLDER)->SetFocus ();
00329 return;
00330 }
00331
00332 _LastFolders.AddRecord (strOutFolder);
00333 _LastUrlFiles.AddRecord (m_strUrl);
00334
00335 if (strOutFolder [strOutFolder.GetLength () - 1] != '\\' &&
00336 strOutFolder [strOutFolder.GetLength () - 1] != '/')
00337 strOutFolder += '\\';
00338
00339 if (_App.NewGrp_SelectWay () == NGSW_USE_ALWAYS_SAME_GROUP_WITH_OUTFOLDER_AUTO_UPDATE)
00340 {
00341 vmsDownloadsGroupSmartPtr pGrp = _DldsGrps.FindGroup (_App.NewDL_GroupId ());
00342 if (pGrp != NULL)
00343 pGrp->strOutFolder = strOutFolder;
00344 }
00345
00346 wpds->pDLGroup = m_wndGroups.GetSelectedGroup ();
00347
00348 wpds->strFolderSaveTo = strOutFolder;
00349
00350 wpds->iDepth = GetDlgItemInt (IDC_DEPTH);
00351
00352 wpds->dwFlags = 0;
00353
00354 if (IsDlgButtonChecked (IDC_KEEP) == BST_CHECKED)
00355 wpds->dwFlags |= WPDF_KEEPFOLDERSTRUCTURE;
00356
00357 if (IsDlgButtonChecked (IDC_DONTSTOREPAGES) == BST_CHECKED)
00358 {
00359 wpds->bDownloadStyles = FALSE;
00360 wpds->dwFlags |= WPDF_DONTSTOREPAGES;
00361 }
00362
00363 if (IsDlgButtonChecked (IDC_DELCOMPLETED) == BST_CHECKED)
00364 wpds->dwFlags |= WPDF_DELCOMPLETEDDLDS;
00365
00366 _App.Spider_Flags (wpds->dwFlags);
00367
00368 m_wndGroups.RememberSelectedGroup ();
00369 _App.Last_Autostart (m_iAutostart);
00370
00371 if (wpds->strUserName.GetLength () != 0)
00372 {
00373 fsURL url;
00374 url.Crack (m_strUrl);
00375 fsSiteInfo* site = CCreateDownloadDlg::_SavePassword (url.GetHostName (),
00376 fsSchemeToNP (url.GetInternetScheme ()), wpds->strUserName, wpds->strPassword);
00377 if (site)
00378 {
00379 site->pGroup = wpds->pDLGroup;
00380 _SitesMgr.SiteUpdated (site);
00381 }
00382 }
00383
00384 _App.OnDlHasBeenCreatedByUser ();
00385
00386 CDialog::OnOK();
00387 }
00388
00389 void CSpiderAddPageDlg::WrongURL()
00390 {
00391 MessageBox (LS (L_CHECKURL), LS (L_INPERR), MB_ICONEXCLAMATION);
00392 GetDlgItem (IDC_URL)->SetFocus ();
00393 }
00394
00395 void CSpiderAddPageDlg::ApplyLanguage()
00396 {
00397 fsDlgLngInfo lnginfo [] = {
00398 fsDlgLngInfo (IDC__URL, L_WEBPAGEURL),
00399 fsDlgLngInfo (IDC_KEEP, L_KEEPFOLDERSTRUCTURE),
00400 fsDlgLngInfo (IDC_DONTSTOREPAGES, L_DONTSTOREPAGES),
00401 fsDlgLngInfo (IDC_DELCOMPLETED, L_SPIDER_DELCOMPLETED),
00402 fsDlgLngInfo (IDC__DEPTH, L_DLDEPTH),
00403 fsDlgLngInfo (IDC_USELOGIN, L_LOGINREQ),
00404 fsDlgLngInfo (IDC__USER, L_USER),
00405 fsDlgLngInfo (IDC__PASSWORD, L_PASSWORD),
00406 fsDlgLngInfo (IDC__SAVETO, L_SAVETO),
00407 fsDlgLngInfo (IDC__START, L_START),
00408 fsDlgLngInfo (IDC_STARTNOW, L_AUTOMATICALLY),
00409 fsDlgLngInfo (IDC_STARTMANUAL, L_MANUALLY),
00410 fsDlgLngInfo (IDC_STARTSCHEDULE, L_SCHEDULE),
00411 fsDlgLngInfo (IDC__GROUP, L_GROUP),
00412 fsDlgLngInfo (IDC_ADVANCED, L_ADVANCED),
00413 fsDlgLngInfo (IDCANCEL, L_CANCEL),
00414 };
00415
00416 _LngMgr.ApplyLanguage (this, lnginfo, sizeof (lnginfo) / sizeof (fsDlgLngInfo), L_DLWEBPAGE);
00417 }
00418
00419 void CSpiderAddPageDlg::OnContextMenu(CWnd* , CPoint point)
00420 {
00421 PrepareCHMgr (point);
00422 _CHMgr.ShowMenu ();
00423 }
00424
00425 void CSpiderAddPageDlg::OnWhatisthis()
00426 {
00427 _CHMgr.OnWT ();
00428 }
00429
00430 void CSpiderAddPageDlg::ReadAutostart()
00431 {
00432 m_iAutostart = _App.Last_Autostart ();
00433
00434 switch (m_iAutostart)
00435 {
00436 case 0:
00437 CheckRadioButton (IDC_STARTNOW, IDC_STARTSCHEDULE, IDC_STARTNOW);
00438 m_bAutoStart = TRUE;
00439 m_bScheduled = FALSE;
00440 break;
00441
00442 case 1:
00443 CheckRadioButton (IDC_STARTNOW, IDC_STARTSCHEDULE, IDC_STARTMANUAL);
00444 m_bAutoStart = FALSE;
00445 m_bScheduled = FALSE;
00446 break;
00447
00448 case 2:
00449 CheckRadioButton (IDC_STARTNOW, IDC_STARTSCHEDULE, IDC_STARTSCHEDULE);
00450 m_bAutoStart = FALSE;
00451 m_bScheduled = TRUE;
00452 break;
00453 }
00454 }
00455
00456 BOOL CSpiderAddPageDlg::IsOkUrl(LPCSTR pszUrl, LPCSTR , BOOL *pbMustAddSlash)
00457 {
00458 if (pbMustAddSlash)
00459 *pbMustAddSlash = FALSE;
00460
00461 fsURL url;
00462 if (IR_SUCCESS != url.Crack (pszUrl) || *url.GetHostName () == 0)
00463 return FALSE;
00464
00465 if (url.GetInternetScheme () != INTERNET_SCHEME_HTTP && url.GetInternetScheme () != INTERNET_SCHEME_HTTPS)
00466 return FALSE;
00467
00468 if (*url.GetHostName () == 0)
00469 return FALSE;
00470
00471 return TRUE;
00472 }
00473
00474 void CSpiderAddPageDlg::UpdateEnabled()
00475 {
00476 BOOL b = IsDlgButtonChecked (IDC_USELOGIN) == BST_CHECKED;
00477 GetDlgItem (IDC__USER)->EnableWindow (b);
00478 GetDlgItem (IDC_USER)->EnableWindow (b);
00479 GetDlgItem (IDC__PASSWORD)->EnableWindow (b);
00480 GetDlgItem (IDC_PASSWORD)->EnableWindow (b);
00481 }
00482
00483 void CSpiderAddPageDlg::OnUselogin()
00484 {
00485 UpdateEnabled ();
00486 m_bAuthChanged = TRUE;
00487 }
00488
00489 BOOL CSpiderAddPageDlg::WriteAuthorization()
00490 {
00491 if (IsDlgButtonChecked (IDC_USELOGIN) == BST_CHECKED)
00492 {
00493 CString str;
00494 GetDlgItemText (IDC_USER, str);
00495 if (str == "")
00496 {
00497 MessageBox (LS (L_ENTERUSER), LS (L_INPERR), MB_ICONEXCLAMATION);
00498 CEdit *pE = (CEdit*) GetDlgItem (IDC_USER);
00499 pE->SetFocus ();
00500 pE->SetSel (0, -1);
00501 return FALSE;
00502 }
00503
00504 m_wpd->GetWDPS ()->strUserName = str;
00505
00506 GetDlgItemText (IDC_PASSWORD, str);
00507 m_wpd->GetWDPS ()->strPassword = str;
00508 }
00509
00510 return TRUE;
00511 }
00512
00513 void CSpiderAddPageDlg::PrepareCHMgr(CPoint point)
00514 {
00515 fsCtrlContextHelp aCH1 [] = {
00516 fsCtrlContextHelp (IDC__URL, LS (L_WEBPAGEURLHERE)),
00517 fsCtrlContextHelp (IDC_URL, LS (L_WEBPAGEURLHERE)),
00518 fsCtrlContextHelp (IDC_KEEP, LS (L_KEEPFOLDERHERE)),
00519 fsCtrlContextHelp (IDC_DONTSTOREPAGES, LS (L_DONTSTOREPAGESHERE)),
00520 fsCtrlContextHelp (IDC_DELCOMPLETED, LS (L_SPIDER_DELCOMPLETEDHERE)),
00521 fsCtrlContextHelp (IDC__DEPTH, LS (L_DLDEPTHHERE)),
00522 fsCtrlContextHelp (IDC_DEPTH, LS (L_DLDEPTHHERE)),
00523 fsCtrlContextHelp (IDC_USELOGIN,LS (L_LOGINHERE)),
00524 fsCtrlContextHelp (IDC__USER, LS (L_USERHERE)),
00525 fsCtrlContextHelp (IDC_USER, LS (L_USERHERE)),
00526 fsCtrlContextHelp (IDC__PASSWORD, LS (L_PWDHERE)),
00527 fsCtrlContextHelp (IDC_PASSWORD, LS (L_PWDHERE)),
00528 fsCtrlContextHelp (IDC__GROUP, LS (L_GROUPHERE)),
00529 fsCtrlContextHelp (IDC_GROUPS, LS (L_GROUPHERE)),
00530 fsCtrlContextHelp (IDC_CREATEGROUP, LS (L_CREATEGRP)),
00531 fsCtrlContextHelp (IDC__SAVETO, LS (L_DLDFOLDERHERE)),
00532 fsCtrlContextHelp (IDC_OUTFOLDER, LS (L_DLDFOLDERHERE)),
00533 fsCtrlContextHelp (IDC_CHOOSEFOLDER, LS (L_BROWSEFOR)),
00534 fsCtrlContextHelp (IDC_STARTNOW, LS (L_STARTNOWHERE)),
00535 fsCtrlContextHelp (IDC_STARTMANUAL, LS (L_MANUALLYSTARTHERE)),
00536 fsCtrlContextHelp (IDC_STARTSCHEDULE, LS (L_SCHEDULESTARTHERE)),
00537 fsCtrlContextHelp (IDC_SETTIME, LS (L_SETTIMEHERE)),
00538 fsCtrlContextHelp (IDC_ADVANCED, LS (L_ADVANCEDHERE)),
00539 fsCtrlContextHelp (IDOK, LS (L_ACCEPTCHANGES)),
00540 fsCtrlContextHelp (IDCANCEL, LS (L_DONTACCEPTCHANGES)),
00541 };
00542
00543 static fsCtrlContextHelp aCH [sizeof (aCH1) / sizeof (fsCtrlContextHelp)];
00544 CopyMemory (aCH, aCH1, sizeof (aCH));
00545
00546 _CHMgr.PrepareContextMenu (this, point, aCH, sizeof (aCH) / sizeof (fsCtrlContextHelp));
00547 }
00548
00549 BOOL CSpiderAddPageDlg::OnHelpInfo(HELPINFO* pHelpInfo)
00550 {
00551 RECT rc;
00552 CWnd *pItem = GetDlgItem (pHelpInfo->iCtrlId);
00553 if (pItem == NULL)
00554 return TRUE;
00555 pItem->GetWindowRect (&rc);
00556 if (PtInRect (&rc, pHelpInfo->MousePos) == FALSE)
00557 {
00558 pHelpInfo->MousePos.x = rc.left + (rc.right - rc.left) / 2;
00559 pHelpInfo->MousePos.y = rc.top + (rc.bottom - rc.top) / 2;
00560 }
00561 PrepareCHMgr (pHelpInfo->MousePos);
00562 _CHMgr.OnWT ();
00563 return TRUE;
00564 }
00565
00566 void CSpiderAddPageDlg::OnEditchangeOutfolder()
00567 {
00568 m_bOutFolderChanged = TRUE;
00569 }
00570
00571 void CSpiderAddPageDlg::OnSelchangeOutfolder()
00572 {
00573 m_bOutFolderChanged = TRUE;
00574 }
00575
00576 void CSpiderAddPageDlg::BuildOutFolder()
00577 {
00578 CHAR szFile [10000];
00579 *szFile = 0;
00580 fsURL url;
00581
00582 if (m_bOutFolderChanged)
00583 return;
00584
00585 if (IR_SUCCESS != url.Crack (m_strUrl))
00586 return;
00587
00588 if (*url.GetHostName () == 0)
00589 return;
00590
00591 if (IsDlgButtonChecked (IDC_KEEP) == BST_CHECKED)
00592 {
00593 SetDlgItemText (IDC_OUTFOLDER, m_strBaseFolder);
00594 return;
00595 }
00596
00597 fsFileNameFromUrlPath (url.GetPath (), url.GetInternetScheme () == INTERNET_SCHEME_FTP,
00598 TRUE, szFile, sizeof (szFile));
00599
00600 CString str = m_strBaseFolder;
00601 str += url.GetHostName ();
00602 str += '\\';
00603
00604 SetDlgItemText (IDC_OUTFOLDER, str);
00605 }
00606
00607 void CSpiderAddPageDlg::OnKeep()
00608 {
00609 BuildOutFolder ();
00610 }
00611
00612 void CSpiderAddPageDlg::OnChangeUser()
00613 {
00614 m_bAuthChanged = TRUE;
00615 }
00616
00617 void CSpiderAddPageDlg::OnChangePassword()
00618 {
00619 m_bAuthChanged = TRUE;
00620 }
00621
00622 void CSpiderAddPageDlg::OnOutfolderSetdefault()
00623 {
00624 CString strOutFolder;
00625 GetDlgItemText (IDC_OUTFOLDER, strOutFolder);
00626
00627 CCreateDownloadDlg::_SetDownloadOutputFolderAsDefault (this, strOutFolder,
00628 m_wndGroups.GetSelectedGroup ());
00629 }