void CreateForumMsg::fileHashingFinished(QList<HashedFile> hashedFiles) { std::cerr << "CreateForumMsg::fileHashingFinished() started." << std::endl; QString mesgString; QList<HashedFile>::iterator it; for (it = hashedFiles.begin(); it != hashedFiles.end(); ++it) { HashedFile& hashedFile = *it; RetroShareLink link; if (link.createFile(hashedFile.filename, hashedFile.size, QString::fromStdString(hashedFile.hash))) { mesgString += link.toHtmlSize() + "<br>"; } } #ifdef CHAT_DEBUG std::cerr << "CreateForumMsg::anchorClicked mesgString : " << mesgString.toStdString() << std::endl; #endif if (!mesgString.isEmpty()) { ui.forumMessage->textCursor().insertHtml(mesgString); } ui.forumMessage->setFocus( Qt::OtherFocusReason ); }
void SharedFilesDialog::copyLink (const QModelIndexList& lst, bool remote) { std::vector<DirDetails> dirVec; model->getDirDetailsFromSelect(lst, dirVec); QList<RetroShareLink> urls ; for (int i = 0, n = dirVec.size(); i < n; ++i) { const DirDetails& details = dirVec[i]; if (details.type == DIR_TYPE_DIR) { for(uint32_t j=0;j<details.children.size();++j) { const DirStub& dirStub = details.children[j]; DirDetails details; FileSearchFlags flags = remote?RS_FILE_HINTS_REMOTE:RS_FILE_HINTS_LOCAL ; // do not recursive copy sub dirs. if (!rsFiles->RequestDirDetails(dirStub.ref, details, flags) || details.type != DIR_TYPE_FILE) continue; RetroShareLink link; if (link.createFile(QString::fromUtf8(details.name.c_str()), details.count, details.hash.toStdString().c_str())) { urls.push_back(link) ; } } } else { RetroShareLink link; if (link.createFile(QString::fromUtf8(details.name.c_str()), details.count, details.hash.toStdString().c_str())) { urls.push_back(link) ; } } } RSLinkClipboard::copyLinks(urls) ; }
void DetailsDialog::setFileHash(const RsFileHash & hash) { dynamic_cast<FileTransferInfoWidget*>(ui.fileTransferInfoWidget->widget())->setFileHash(hash) ; FileInfo nfo ; if(!rsFiles->FileDetails(hash, RS_FILE_HINTS_DOWNLOAD, nfo)) return ; RetroShareLink link ; link.createFile(QString::fromUtf8(nfo.fname.c_str()),nfo.size,QString::fromStdString(nfo.hash.toStdString())) ; ui.Linktext->setText(link.toString()) ; }
void SubFileItem::copyLink() { if (mFileName.empty() || mFileHash.empty()) { return; } RetroShareLink link; if (link.createFile(QString::fromUtf8(mFileName.c_str()), mFileSize, QString::fromStdString(mFileHash))) { QList<RetroShareLink> urls; urls.push_back(link); RSLinkClipboard::copyLinks(urls); } }
void ChatWidget::fileHashingFinished(QList<HashedFile> hashedFiles) { std::cerr << "ChatWidget::fileHashingFinished() started." << std::endl; QString message; QList<HashedFile>::iterator it; for (it = hashedFiles.begin(); it != hashedFiles.end(); ++it) { HashedFile& hashedFile = *it; QString ext = QFileInfo(hashedFile.filename).suffix(); RetroShareLink link; if(mDefaultExtraFileFlags & RS_FILE_REQ_ANONYMOUS_ROUTING) link.createFile(hashedFile.filename, hashedFile.size, QString::fromStdString(hashedFile.hash)); else link.createExtraFile(hashedFile.filename, hashedFile.size, QString::fromStdString(hashedFile.hash),QString::fromStdString(rsPeers->getOwnId())); if (hashedFile.flag & HashedFile::Picture) { message += QString("<img src=\"file:///%1\" width=\"100\" height=\"100\">").arg(hashedFile.filepath); message+="<br>"; } else { QString image = FilesDefs::getImageFromFilename(hashedFile.filename, false); if (!image.isEmpty()) { message += QString("<img src=\"%1\">").arg(image); } } message += link.toHtmlSize(); if (it != hashedFiles.end()) { message += "<BR>"; } } #ifdef CHAT_DEBUG std::cerr << "ChatWidget::fileHashingFinished message : " << message.toStdString() << std::endl; #endif /* convert to real html document */ QTextBrowser textBrowser; textBrowser.setHtml(message); std::wstring msg = textBrowser.toHtml().toStdWString(); if (rsMsgs->sendPrivateChat(peerId, msg)) { QDateTime currentTime = QDateTime::currentDateTime(); addChatMsg(false, name, currentTime, currentTime, QString::fromStdWString(msg), TYPE_NORMAL); } }