void CLibraryFileView::OnLibraryURL()
{
	CSingleLock pLock( &Library.m_pSection, TRUE );

	if ( GetSelectedCount() == 1 )
	{
		CLibraryFile* pFile = GetSelectedFile();
		if ( ! pFile ) return;

		CURLCopyDlg dlg;

		dlg.Add( pFile );

		pLock.Unlock();

		dlg.DoModal();
	}
	else
	{
		CURLExportDlg dlg;

		POSITION posSel = StartSelectedFileLoop();
		while ( CLibraryFile* pFile = GetNextSelectedFile( posSel ) )
		{
			dlg.Add( pFile );
		}

		pLock.Unlock();

		dlg.DoModal();
	}
}
예제 #2
0
void CBaseMatchWnd::OnSearchCopy() 
{
	CSingleLock pLock( &m_pMatches->m_pSection, TRUE );
	CURLCopyDlg dlg;

	if ( CMatchFile* pFile = m_pMatches->GetSelectedFile() )
	{
		dlg.m_sName = pFile->m_pHits->m_sName;
		dlg.m_bSize	= TRUE;
		dlg.m_nSize	= pFile->m_nSize;
		dlg.m_bSHA1 = pFile->m_bSHA1;
		if ( pFile->m_bSHA1 ) dlg.m_pSHA1 = pFile->m_pSHA1;
		dlg.m_bTiger = pFile->m_bTiger;
		if ( pFile->m_bTiger ) dlg.m_pTiger = pFile->m_pTiger;
		dlg.m_bED2K = pFile->m_bED2K;
		if ( pFile->m_bED2K ) dlg.m_pED2K = pFile->m_pED2K;

		if ( pFile->GetFilteredCount() == 1 )
			dlg.m_sHost = pFile->m_pHits->m_sURL;
	}
	else if ( CQueryHit* pHit = m_pMatches->GetSelectedHit() )
	{
		dlg.m_sHost = pHit->m_sURL;
		dlg.m_sName = pHit->m_sName;
		dlg.m_bSize = TRUE;
		dlg.m_nSize = pHit->m_nSize;
		dlg.m_bSHA1 = pHit->m_bSHA1;
		if ( pHit->m_bSHA1 ) dlg.m_pSHA1 = pHit->m_pSHA1;
		dlg.m_bTiger = pHit->m_bTiger;
		if ( pHit->m_bTiger ) dlg.m_pTiger = pHit->m_pTiger;
		dlg.m_bED2K = pHit->m_bED2K;
		if ( pHit->m_bED2K ) dlg.m_pED2K = pHit->m_pED2K;
	}

	pLock.Unlock();
	dlg.DoModal();
}