void CDlgMaintabDownload::RefreshLowerPannel(CKnownFile * file) { //[10/17/2007 VC-huby] 和void CUserComment::Refresh(CKnownFile * file) 重复代码,由于UI层没有规划好,暂复制一份.. if( !m_pwebUserComment || !file ) return; CString strFileEd2k = CreateED2kLink(file, false); if( strFileEd2k.IsEmpty() ) { // m_pwebUserComment->Navigate2(_T("about:blank"), 0, NULL); theApp.emuledlg->transferwnd->downloadlistctrl.OnNoComment(m_pwebUserComment); return; } bool bFileisFinished = true; if( file->IsKindOf(RUNTIME_CLASS(CPartFile)) ) { if( ((CPartFile*)file)->GetStatus()!=PS_COMPLETE ) bFileisFinished = false; } CString strCommentUrl = bFileisFinished ? thePrefs.m_strFinishedFileCommentUrl : thePrefs.m_strPartFileCommentUrl; strCommentUrl.Replace(_T("[ed2k]"),strFileEd2k); strCommentUrl.Replace(_T("|"), _T("%7C")); CString sVersion; sVersion.Format(_T("&v=%u"),VC_VERSION_BUILD); strCommentUrl += sVersion; if (m_strLastCommentWeb != strCommentUrl) { m_pwebUserComment->Navigate2(strCommentUrl, 0, NULL); m_strLastCommentWeb = strCommentUrl; } }
void CDlgAddTask::AddNewTask(CSearchFile* toadd, uint8 paused, int cat) { CFileHashKey key; CAddTaskDoc::SItem item; if (NULL != toadd) { key = toadd->GetFileHash(); item.strLinkText = CreateED2kLink(toadd); item.bCheck = TRUE; item.iCategory = cat; item.uPause = paused; GetInstance()->AddTask(key, item); } }
CString CDetailInfo::GetLink(CKnownFile* pFile) { //ADDED by fengwen on 2007/07/12 <begin> : 如果是url下载,则返回源url。 if (NULL == pFile) return _T(""); if (pFile->IsPartFile()) { CPartFile *pPartFile = (CPartFile *) pFile; if ( pPartFile->HasNullHash() ) return pPartFile->GetPartFileURL(); } //ADDED by fengwen on 2007/07/12 <end> : 如果是url下载,则返回源url。 CString strLinks; CString strBuffer; bool bHashset = false; bool bHTML = false; // bool bSource = true; // bool bHostname = true; bool bEMHash = true; if (!strLinks.IsEmpty()) strLinks += _T("\r\n\r\n"); if (bHTML) strLinks += _T("<a href=\""); //const CKnownFile* file = STATIC_DOWNCAST(CKnownFile, (*pFile)[i]); const CKnownFile* file = pFile; strLinks += CreateED2kLink(file, false); if (bHashset && file->GetHashCount() > 0 && file->GetHashCount() == file->GetED2KPartHashCount()) { strLinks += _T("p="); for (UINT j = 0; j < file->GetHashCount(); j++) { if (j > 0) strLinks += _T(':'); strLinks += EncodeBase16(file->GetPartHash(j), 16); } strLinks += _T('|'); } if (bEMHash && file->GetAICHHashset()->HasValidMasterHash() && (file->GetAICHHashset()->GetStatus() == AICH_VERIFIED || file->GetAICHHashset()->GetStatus() == AICH_HASHSETCOMPLETE)) { strBuffer.Format(_T("h=%s|"), file->GetAICHHashset()->GetMasterHash().GetString() ); strLinks += strBuffer; } if(!strLinks.IsEmpty()) strLinks += _T('/'); //if (bHostname) //{ // strBuffer.Format(_T("|sources,%s:%i|/"), thePrefs.GetYourHostname(), thePrefs.GetPort() ); // strLinks += strBuffer; //} //else if(bSource) //{ // uint32 dwID = CGlobalVariable::GetID(); // strBuffer.Format(_T("|sources,%i.%i.%i.%i:%i|/"),(uint8)dwID,(uint8)(dwID>>8),(uint8)(dwID>>16),(uint8)(dwID>>24), thePrefs.GetPort() ); // strLinks += strBuffer; //} if (bHTML) strLinks += _T("\">") + StripInvalidFilenameChars(file->GetFileName(), true) + _T("</a>"); return strLinks; }
BOOL CSharedDirsTreeCtrl::OnCommand(WPARAM wParam, LPARAM lParam) { CTypedPtrList<CPtrList, CKnownFile*> selectedList; int iSelectedItems = m_pSharedFilesCtrl->GetItemCount(); for (int i = 0; i < iSelectedItems; i++) { selectedList.AddTail((CKnownFile*)m_pSharedFilesCtrl->GetItemData(i)); } CDirectoryItem* pSelectedDir = GetSelectedFilter(); // folder based if (pSelectedDir != NULL){ switch (wParam){ case MP_OPENFOLDER: if (pSelectedDir && pSelectedDir->m_eItemType == SDI_NO){ ShellExecute(NULL, _T("open"), pSelectedDir->m_strFullPath, NULL, NULL, SW_SHOW); } break; case MP_SHAREDIR: EditSharedDirectories(pSelectedDir, true, false); break; case MP_SHAREDIRSUB: EditSharedDirectories(pSelectedDir, true, true); break; case MP_UNSHAREDIR: EditSharedDirectories(pSelectedDir, false, false); break; case MP_UNSHAREDIRSUB: EditSharedDirectories(pSelectedDir, false, true); break; } } // file based if (selectedList.GetCount() > 0 && pSelectedDir != NULL) { CKnownFile* file = NULL; if (selectedList.GetCount() == 1) file = selectedList.GetHead(); switch (wParam){ case MP_GETED2KLINK:{ CString str; POSITION pos = selectedList.GetHeadPosition(); while (pos != NULL) { file = selectedList.GetNext(pos); if (!str.IsEmpty()) str += _T("\r\n"); str += CreateED2kLink(file); } theApp.CopyTextToClipboard(str); break; } // file operations case MP_REMOVE: case MPG_DELETE:{ if (IDNO == AfxMessageBox(GetResString(IDS_CONFIRM_FILEDELETE),MB_ICONWARNING | MB_ICONQUESTION | MB_DEFBUTTON2 | MB_YESNO)) return TRUE; m_pSharedFilesCtrl->SetRedraw(FALSE); bool bRemovedItems = false; while (!selectedList.IsEmpty()) { CKnownFile* myfile = selectedList.RemoveHead(); if (!myfile || myfile->IsPartFile()) continue; BOOL delsucc = FALSE; if (!PathFileExists(myfile->GetFilePath())) delsucc = TRUE; else{ // Delete if (!thePrefs.GetRemoveToBin()){ delsucc = DeleteFile(myfile->GetFilePath()); } else{ // delete to recycle bin :( TCHAR todel[MAX_PATH+1]; memset(todel, 0, sizeof todel); _tcsncpy(todel, myfile->GetFilePath(), ARRSIZE(todel)-2); SHFILEOPSTRUCT fp = {0}; fp.wFunc = FO_DELETE; fp.hwnd = theApp.emuledlg->m_hWnd; fp.pFrom = todel; fp.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION | FOF_SILENT;// | FOF_NOERRORUI delsucc = (SHFileOperation(&fp) == 0); } } if (delsucc){ theApp.sharedfiles->RemoveFile(myfile); bRemovedItems = true; if (myfile->IsKindOf(RUNTIME_CLASS(CPartFile))) theApp.emuledlg->transferwnd->downloadlistctrl.ClearCompleted(static_cast<CPartFile*>(myfile)); } else{ CString strError; strError.Format( GetResString(IDS_ERR_DELFILE) + _T("\r\n\r\n%s"), myfile->GetFilePath(), GetErrorMessage(GetLastError())); AfxMessageBox(strError); } } m_pSharedFilesCtrl->SetRedraw(TRUE); if (bRemovedItems) m_pSharedFilesCtrl->AutoSelectItem(); break; } case MP_CMT: ShowFileDialog(selectedList, IDD_COMMENT); break; case MPG_ALTENTER: case MP_DETAIL: ShowFileDialog(selectedList); break; case MP_SHOWED2KLINK: ShowFileDialog(selectedList, IDD_ED2KLINK); break; case MP_PRIOVERYLOW: case MP_PRIOLOW: case MP_PRIONORMAL: case MP_PRIOHIGH: case MP_PRIOVERYHIGH: case MP_PRIOAUTO: { POSITION pos = selectedList.GetHeadPosition(); while (pos != NULL) { CKnownFile* file = selectedList.GetNext(pos); switch (wParam) { case MP_PRIOVERYLOW: file->SetAutoUpPriority(false); file->SetUpPriority(PR_VERYLOW); m_pSharedFilesCtrl->UpdateFile(file); break; case MP_PRIOLOW: file->SetAutoUpPriority(false); file->SetUpPriority(PR_LOW); m_pSharedFilesCtrl->UpdateFile(file); break; case MP_PRIONORMAL: file->SetAutoUpPriority(false); file->SetUpPriority(PR_NORMAL); m_pSharedFilesCtrl->UpdateFile(file); break; case MP_PRIOHIGH: file->SetAutoUpPriority(false); file->SetUpPriority(PR_HIGH); m_pSharedFilesCtrl->UpdateFile(file); break; case MP_PRIOVERYHIGH: file->SetAutoUpPriority(false); file->SetUpPriority(PR_VERYHIGH); m_pSharedFilesCtrl->UpdateFile(file); break; case MP_PRIOAUTO: file->SetAutoUpPriority(true); file->UpdateAutoUpPriority(); m_pSharedFilesCtrl->UpdateFile(file); break; } } break; } default: if (wParam>=MP_WEBURL && wParam<=MP_WEBURL+256){ theWebServices.RunURL(file, wParam); } break; } } return TRUE; }
CString CDlgMainTabRss::GetCurrentFileCommentString() { if (!m_pwndRssFeed || !::IsWindow(m_pwndRssFeed->m_hWnd)) { return CString(_T("")); } POSITION Pos = NULL; if (m_pwndRssFeed->m_ListShowMode == LISTSTYLE_ICO) { Pos = m_pwndRssFeed->m_listIcoFeedItem.GetFirstSelectedItemPosition(); } else if (m_pwndRssFeed->m_ListShowMode == LISTSTYLE_ITEM) { Pos = m_pwndRssFeed->m_listFeedItem.GetFirstSelectedItemPosition(); } else if(m_pwndRssFeed->m_ListShowMode == LISTSTYLE_SINGLE) { Pos = m_pwndRssFeed->m_listSingleFeedItem.GetFirstSelectedItemPosition(); } if (!Pos) { return CString(_T("")); } int nIndex; CRssFeed::Item* pItem; if (m_pwndRssFeed->m_ListShowMode == LISTSTYLE_ICO) {//ICO模式没有item nIndex = m_pwndRssFeed->m_listIcoFeedItem.GetNextSelectedItem(Pos); pItem = NULL; } else if (m_pwndRssFeed->m_ListShowMode == LISTSTYLE_ITEM) { nIndex = m_pwndRssFeed->m_listFeedItem.GetNextSelectedItem(Pos); pItem = m_pwndRssFeed->m_listFeedItem.GetFeedItem(nIndex); } else if(m_pwndRssFeed->m_ListShowMode == LISTSTYLE_SINGLE) { nIndex = m_pwndRssFeed->m_listSingleFeedItem.GetNextSelectedItem(Pos); pItem = m_pwndRssFeed->m_listSingleFeedItem.GetFeedItem(nIndex); } if (pItem && pItem->GetPartFile()) { CPartFile * pPartFile = pItem->GetPartFile(); CString strFileEd2k = CreateED2kLink(pPartFile, false); if( strFileEd2k.IsEmpty() ) { return CString(_T("")); } bool bFileisFinished = true; if( pPartFile->IsKindOf(RUNTIME_CLASS(CPartFile)) ) { if( ((CPartFile*)pPartFile)->GetStatus()!=PS_COMPLETE ) bFileisFinished = false; } CString strCommentUrl = bFileisFinished ? thePrefs.m_strFinishedFileCommentUrl : thePrefs.m_strPartFileCommentUrl; strCommentUrl.Replace(_T("[ed2k]"),strFileEd2k); strCommentUrl.Replace(_T("|"), _T("%7C")); CString sVersion; sVersion.Format(_T("&v=%u"),VC_VERSION_BUILD); strCommentUrl += sVersion; return strCommentUrl; } else if (pItem) { CString strED2KUrl = pItem->m_strEnclosure; if( strED2KUrl.IsEmpty() || strED2KUrl.Left(7).CompareNoCase(_T("ed2k://"))) { return CString(_T("")); } CString strCommentUrl = thePrefs.m_strPartFileCommentUrl; strCommentUrl.Replace(_T("[ed2k]"),strED2KUrl); strCommentUrl.Replace(_T("|"), _T("%7C")); CString sVersion; sVersion.Format(_T("&v=%u"),VC_VERSION_BUILD); strCommentUrl += sVersion; return strCommentUrl; } else { CRssFeed* pFeed; if (m_pwndRssFeed->m_ListShowMode == LISTSTYLE_ITEM) { pFeed = m_pwndRssFeed->m_listFeedItem.GetFeed(nIndex); } else if(m_pwndRssFeed->m_ListShowMode == LISTSTYLE_SINGLE) { pFeed = m_pwndRssFeed->m_listSingleFeedItem.GetFeed(nIndex); } if ( pFeed == NULL ) { pFeed = m_pwndRssFeed->m_listFeedItem.GetBlankLineFeed(nIndex - 1); } if (pFeed) { CString strCommentUrl = pFeed->m_strFeedUrl; strCommentUrl.MakeLower(); int nPos = strCommentUrl.Find(_T("/feed")); if (nPos != -1) { strCommentUrl = strCommentUrl.Left(nPos); strCommentUrl +=_T("/comments/"); return strCommentUrl; } } return CString(); //CString strFilePath; //strFilePath = thePrefs.GetMuleDirectory(EMULE_CONFIGDIR) + _T("Default.htm"); //return strFilePath; } }