LRESULT CWizardSharePage::OnWizardNext() { CWaitCursor pCursor; if ( m_wndList.GetItemCount() == 0 ) { if ( MsgBox( IDS_WIZARD_SHARE_CONFIRM, MB_ICONQUESTION|MB_YESNO ) == IDNO ) return -1; } { CQuickLock oLock( Library.m_pSection ); for ( POSITION pos = LibraryFolders.GetFolderIterator() ; pos ; ) { CLibraryFolder* pFolder = LibraryFolders.GetNextFolder( pos ); int nItem = 0; for ( ; nItem < m_wndList.GetItemCount() ; nItem++ ) { CString strFolder = m_wndList.GetItemText( nItem, 0 ); if ( strFolder.CompareNoCase( pFolder->m_sPath ) == 0 ) { if ( m_wndList.GetCheck(nItem) && ! pFolder->IsShared() ) pFolder->SetShared( TRI_TRUE ); else if ( ! m_wndList.GetCheck(nItem) && pFolder->IsShared() ) pFolder->SetShared( TRI_FALSE ); break; } } if ( nItem >= m_wndList.GetItemCount() ) LibraryFolders.RemoveFolder( pFolder ); } for ( int nItem = 0 ; nItem < m_wndList.GetItemCount() ; nItem++ ) { LibraryFolders.AddFolder( m_wndList.GetItemText( nItem, 0 ), m_wndList.GetCheck(nItem) ); } } CFolderScanDlg dlgScan; dlgScan.DoModal(); return 0; }
void CShareManagerDlg::OnOK() { { CQuickLock oLock( Library.m_pSection ); for ( POSITION pos = LibraryFolders.GetFolderIterator() ; pos ; ) { CLibraryFolder* pFolder = LibraryFolders.GetNextFolder( pos ); int nItem = 0; for ( ; nItem < m_wndList.GetItemCount() ; nItem++ ) { CString strFolder = m_wndList.GetItemText( nItem, 0 ); if ( strFolder.CompareNoCase( pFolder->m_sPath ) == 0 ) { if ( m_wndList.GetCheck(nItem) && ! pFolder->IsShared() ) pFolder->SetShared( TRI_TRUE ); else if ( ! m_wndList.GetCheck(nItem) && pFolder->IsShared() ) pFolder->SetShared( TRI_FALSE ); break; } } if ( nItem >= m_wndList.GetItemCount() ) LibraryFolders.RemoveFolder( pFolder ); } for ( int nItem = 0 ; nItem < m_wndList.GetItemCount() ; nItem++ ) { LibraryFolders.AddFolder( m_wndList.GetItemText( nItem, 0 ), m_wndList.GetCheck( nItem ) ); } } CFolderScanDlg dlgScan; dlgScan.DoModal(); CDialog::OnOK(); }
void CDownloadsSettingsPage::OnOK() { UpdateData( TRUE ); AntiVirus.UpdateData( m_wndAntiVirus ); // Figure out what the text in the queue limit box means DWORD nQueueLimit = 0; if ( IsLimited( m_sQueueLimit ) ) { // Max queue is limited, calculate number int nPosition = 1, nCount = m_sQueueLimit.GetLength(); while ( nCount-- ) { TCHAR cCharacter = m_sQueueLimit.GetAt( nCount ); if ( ( cCharacter >= '0' ) && ( cCharacter <= '9' ) ) { nQueueLimit += ( ( cCharacter - '0') * nPosition ); nPosition *= 10; } } } else { // Max queue is not limited nQueueLimit = 0; } // Check the queue limit value is okay if ( ( nQueueLimit > 0 ) && ( nQueueLimit < 2000 ) && ( ! Settings.Live.QueueLimitWarning ) && ( Settings.eDonkey.EnableToday || Settings.eDonkey.EnableAlways ) && ( Settings.Downloads.QueueLimit != (int)nQueueLimit ) ) { // Warn the user about setting the max queue wait limit too low CString strMessage; LoadString( strMessage, IDS_SETTINGS_WARN_QUEUELIMIT ); if ( AfxMessageBox( strMessage, MB_ICONQUESTION|MB_YESNO ) == IDNO ) { nQueueLimit = 0; } else { // Don't need to warn the user again. Settings.Live.QueueLimitWarning = TRUE; } } // Put new values in the settings. Settings.Downloads.CompletePath = m_sDownloadsPath; Settings.Downloads.IncompletePath = m_sIncompletePath; Settings.Downloads.MaxFiles = m_nMaxDownFiles; Settings.Downloads.MaxTransfers = m_nMaxDownTransfers; Settings.Downloads.MaxFileTransfers = m_nMaxFileTransfers; Settings.Downloads.QueueLimit = nQueueLimit; Settings.Bandwidth.Downloads = static_cast< DWORD >( Settings.ParseVolume( m_sBandwidthLimit ) ); Settings.Connection.RequireForTransfers = m_bRequireConnect != FALSE; // Normalize data Settings.Normalize( &Settings.Downloads.MaxFiles ); m_nMaxDownFiles = Settings.Downloads.MaxFiles; Settings.Normalize( &Settings.Downloads.MaxTransfers ); m_nMaxDownTransfers = Settings.Downloads.MaxTransfers; Settings.Normalize( &Settings.Downloads.MaxFileTransfers ); m_nMaxFileTransfers = Settings.Downloads.MaxFileTransfers; Settings.Normalize( &Settings.Downloads.QueueLimit ); // Redraw the text in the queue limit box (in case the limit changed) if ( Settings.Downloads.QueueLimit > 0 ) m_sQueueLimit.Format( _T("%u"), Settings.Downloads.QueueLimit ); else m_sQueueLimit = _T("MAX"); // Display any data changes UpdateData( FALSE ); CreateDirectory( m_sDownloadsPath ); CreateDirectory( m_sIncompletePath ); // CreateDirectory( m_sTorrentPath ); if ( m_bDownloadsChanged ) { if ( LibraryFolders.GetFolderCount() == 0 ) { LibraryFolders.AddFolder( m_sDownloadsPath ); } else if ( ! LibraryFolders.IsFolderShared( m_sDownloadsPath ) ) { CString strFormat, strMessage; LoadString( strFormat, IDS_LIBRARY_DOWNLOADS_ADD ); strMessage.Format( strFormat, (LPCTSTR)m_sDownloadsPath ); if ( AfxMessageBox( strMessage, MB_ICONQUESTION|MB_YESNO ) == IDYES ) { CLibraryFolder* pFolder = LibraryFolders.AddFolder( m_sDownloadsPath ); if ( pFolder ) { LoadString( strMessage, IDS_LIBRARY_DOWNLOADS_SHARE ); BOOL bShare = AfxMessageBox( strMessage, MB_ICONQUESTION|MB_YESNO ) == IDYES; CQuickLock oLock( Library.m_pSection ); if ( LibraryFolders.CheckFolder( pFolder, TRUE ) ) pFolder->SetShared( bShare ? TRI_TRUE : TRI_FALSE ); Library.Update(); } } } } CSettingsPage::OnOK(); }