📄 wnduploads.cpp
字号:
if ( pUpload->m_nProtocol == PROTOCOL_ED2K && pUpload->m_nState != upsNull )
{
CString strFormat, strMessage;
LoadString( strFormat, IDS_UPLOAD_CANCEL_ED2K );
strMessage.Format( strFormat, (LPCTSTR)pUpload->m_sFileName );
pLock.Unlock();
UINT nResp = AfxMessageBox( strMessage, MB_ICONQUESTION|MB_YESNOCANCEL|MB_DEFBUTTON2 );
pLock.Lock();
if ( nResp == IDCANCEL ) break;
if ( nResp != IDYES || ! Uploads.Check( pUpload ) ) continue;
}
pUpload->Close( TRUE );
}
}
}
void CUploadsWnd::OnUpdateUploadsStart(CCmdUI* pCmdUI)
{
Prepare();
pCmdUI->Enable( m_bSelQueued );
}
void CUploadsWnd::OnUploadsStart()
{
CSingleLock pLock( &Transfers.m_pSection, TRUE );
for ( POSITION pos = UploadFiles.GetIterator() ; pos ; )
{
CUploadFile* pFile = UploadFiles.GetNext( pos );
if ( IsSelected( pFile ) && pFile->GetActive() != NULL )
{
pFile->GetActive()->Promote();
}
}
}
void CUploadsWnd::OnUpdateUploadsClear(CCmdUI* pCmdUI)
{
Prepare();
pCmdUI->Enable( m_bSelFile );
}
void CUploadsWnd::OnUploadsClear()
{
CSingleLock pLock( &Transfers.m_pSection, TRUE );
CList<CUploadFile*> pList;
for ( POSITION pos = UploadFiles.GetIterator() ; pos ; )
{
CUploadFile* pFile = UploadFiles.GetNext( pos );
if ( IsSelected( pFile ) ) pList.AddTail( pFile );
}
while ( ! pList.IsEmpty() )
{
CUploadFile* pFile = pList.RemoveHead();
if ( UploadFiles.Check( pFile ) )
{
CUploadTransfer* pUpload = pFile->GetActive();
if ( pUpload != NULL && pUpload->m_nProtocol == PROTOCOL_ED2K && pUpload->m_nState != upsNull )
{
CString strFormat, strMessage;
LoadString( strFormat, IDS_UPLOAD_CANCEL_ED2K );
strMessage.Format( strFormat, (LPCTSTR)pUpload->m_sFileName );
pLock.Unlock();
UINT nResp = AfxMessageBox( strMessage, MB_ICONQUESTION|MB_YESNOCANCEL|MB_DEFBUTTON2 );
pLock.Lock();
if ( nResp == IDCANCEL ) break;
if ( nResp != IDYES || ! UploadFiles.Check( pFile ) ) continue;
}
pFile->Remove();
}
}
}
void CUploadsWnd::OnUpdateUploadsLaunch(CCmdUI* pCmdUI)
{
Prepare();
pCmdUI->Enable( m_bSelFile );
}
void CUploadsWnd::OnUploadsLaunch()
{
CSingleLock pLock( &Transfers.m_pSection, TRUE );
CList<CUploadFile*> pList;
for ( POSITION pos = UploadFiles.GetIterator() ; pos ; )
{
CUploadFile* pFile = UploadFiles.GetNext( pos );
if ( IsSelected( pFile ) ) pList.AddTail( pFile );
}
while ( ! pList.IsEmpty() )
{
CUploadFile* pFile = pList.RemoveHead();
if ( UploadFiles.Check( pFile ) )
{
CString strPath = pFile->m_sPath;
pLock.Unlock();
if ( ! CFileExecutor::Execute( strPath ) ) break;
pLock.Lock();
}
}
}
void CUploadsWnd::OnUpdateUploadsChat(CCmdUI* pCmdUI)
{
Prepare();
pCmdUI->Enable( Settings.Community.ChatEnable && m_bSelHttp );
}
void CUploadsWnd::OnUploadsChat()
{
CSingleLock pLock( &Transfers.m_pSection, TRUE );
for ( POSITION pos = UploadFiles.GetIterator() ; pos ; )
{
CUploadFile* pFile = UploadFiles.GetNext( pos );
if ( IsSelected( pFile ) && pFile->GetActive() != NULL )
{
ChatWindows.OpenPrivate( NULL, &pFile->GetActive()->m_pHost );
}
}
}
void CUploadsWnd::OnUpdateSecurityBan(CCmdUI* pCmdUI)
{
Prepare();
pCmdUI->Enable( m_bSelUpload );
}
void CUploadsWnd::OnSecurityBan()
{
CSingleLock pLock( &Transfers.m_pSection, TRUE );
CList<CUploadFile*> pList;
for ( POSITION pos = UploadFiles.GetIterator() ; pos ; )
{
CUploadFile* pFile = UploadFiles.GetNext( pos );
if ( IsSelected( pFile ) ) pList.AddTail( pFile );
}
while ( ! pList.IsEmpty() )
{
CUploadFile* pFile = pList.RemoveHead();
if ( UploadFiles.Check( pFile ) && pFile->GetActive() != NULL )
{
CUploadTransfer* pUpload = pFile->GetActive();
IN_ADDR pAddress = pUpload->m_pHost.sin_addr;
pUpload->Remove( FALSE );
pLock.Unlock();
Security.SessionBan( &pAddress );
pLock.Lock();
}
}
}
void CUploadsWnd::OnUpdateBrowseLaunch(CCmdUI* pCmdUI)
{
Prepare();
pCmdUI->Enable( m_bSelHttp );
}
void CUploadsWnd::OnBrowseLaunch()
{
CSingleLock pLock( &Transfers.m_pSection, TRUE );
CList<CUploadFile*> pList;
for ( POSITION pos = UploadFiles.GetIterator() ; pos ; )
{
CUploadFile* pFile = UploadFiles.GetNext( pos );
if ( IsSelected( pFile ) ) pList.AddTail( pFile );
}
while ( ! pList.IsEmpty() )
{
CUploadFile* pFile = pList.RemoveHead();
if ( UploadFiles.Check( pFile ) && pFile->GetActive() != NULL )
{
SOCKADDR_IN pAddress = pFile->GetActive()->m_pHost;
pLock.Unlock();
new CBrowseHostWnd( &pAddress );
pLock.Lock();
}
}
}
void CUploadsWnd::OnUploadsClearCompleted()
{
CSingleLock pLock( &Transfers.m_pSection, TRUE );
for ( POSITION pos = Uploads.GetIterator() ; pos ; )
{
CUploadTransfer* pUpload = Uploads.GetNext( pos );
if ( pUpload->m_nState == upsNull ) pUpload->Remove( FALSE );
}
m_wndUploads.Update();
}
void CUploadsWnd::OnUpdateUploadsAutoClear(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck( Settings.Uploads.AutoClear );
}
void CUploadsWnd::OnUploadsAutoClear()
{
Settings.Uploads.AutoClear = ! Settings.Uploads.AutoClear;
if ( Settings.Uploads.AutoClear ) OnTimer( 4 );
}
void CUploadsWnd::OnUploadsSettings()
{
CSettingsManagerDlg::Run( _T("CUploadsSettingsPage") );
}
BOOL CUploadsWnd::PreTranslateMessage(MSG* pMsg)
{
if ( pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_DELETE )
{
OnUploadsClear();
return TRUE;
}
else if ( pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_TAB )
{
GetManager()->Open( RUNTIME_CLASS(CDownloadsWnd) );
return TRUE;
}
return CPanelWnd::PreTranslateMessage( pMsg );
}
void CUploadsWnd::OnUploadsFilterMenu()
{
CMenu* pMenu = Skin.GetMenu( _T("CUploadsWnd.Filter") );
m_wndToolBar.ThrowMenu( ID_UPLOADS_FILTER_MENU, pMenu, NULL, FALSE, TRUE );
}
void CUploadsWnd::OnUpdateUploadsFilterAll(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck( ( Settings.Uploads.FilterMask & ULF_ALL ) == ULF_ALL );
}
void CUploadsWnd::OnUploadsFilterAll()
{
Settings.Uploads.FilterMask |= ULF_ALL;
m_wndUploads.Update();
}
void CUploadsWnd::OnUpdateUploadsFilterActive(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck( ( Settings.Uploads.FilterMask & ULF_ACTIVE ) > 0 );
}
void CUploadsWnd::OnUploadsFilterActive()
{
Settings.Uploads.FilterMask ^= ULF_ACTIVE;
m_wndUploads.Update();
}
void CUploadsWnd::OnUpdateUploadsFilterQueued(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck( ( Settings.Uploads.FilterMask & ULF_QUEUED ) > 0 );
}
void CUploadsWnd::OnUploadsFilterQueued()
{
Settings.Uploads.FilterMask ^= ULF_QUEUED;
m_wndUploads.Update();
}
void CUploadsWnd::OnUpdateUploadsFilterHistory(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck( ( Settings.Uploads.FilterMask & ULF_HISTORY ) > 0 );
}
void CUploadsWnd::OnUploadsFilterHistory()
{
Settings.Uploads.FilterMask ^= ULF_HISTORY;
m_wndUploads.Update();
}
void CUploadsWnd::OnUpdateUploadsFilterTorrent(CCmdUI *pCmdUI)
{
pCmdUI->SetCheck( ( Settings.Uploads.FilterMask & ULF_TORRENT ) > 0 );
}
void CUploadsWnd::OnUploadsFilterTorrent()
{
Settings.Uploads.FilterMask ^= ULF_TORRENT;
m_wndUploads.Update();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -