bool RsUrlHandler::openUrl(const QUrl& url) { if(url.scheme() == QString("file") && url.toLocalFile().endsWith("."+RsCollectionFile::ExtensionString)) { RsCollectionFile collection ; if(collection.load(url.toLocalFile())) { collection.downloadFiles() ; return true; } } return QDesktopServices::openUrl(url) ; }
void SharedFilesDialog::collOpen() { std::list<DirDetails> files_info ; model->getFileInfoFromIndexList(getSelected(),files_info); if(files_info.size() == 1) { /* make path for downloaded files */ std::list<DirDetails>::iterator it = files_info.begin(); DirDetails details = (*it); FileInfo info; if (rsFiles->FileDetails(details.hash, RS_FILE_HINTS_EXTRA | RS_FILE_HINTS_LOCAL | RS_FILE_HINTS_BROWSABLE | RS_FILE_HINTS_NETWORK_WIDE | RS_FILE_HINTS_SPEC_ONLY, info)) { std::string path; path = info.path; /* open file with a suitable application */ QFileInfo qinfo; qinfo.setFile(QString::fromUtf8(path.c_str())); if (qinfo.exists()) { if (qinfo.absoluteFilePath().endsWith(RsCollectionFile::ExtensionString)) { RsCollectionFile collection; if (collection.load(qinfo.absoluteFilePath())) { collection.downloadFiles(); return; } } } } } RsCollectionFile collection; if (collection.load(this)) { collection.downloadFiles(); }//if (collection.load(this)) }
QString RetroShareLink::toHtmlSize() const { QString size = QString("(%1)").arg(misc::friendlyUnit(_size)); if (type() == TYPE_FILE && RsCollectionFile::isCollectionFile(name())) { FileInfo finfo; if (rsFiles->FileDetails(hash().toStdString(), RS_FILE_HINTS_EXTRA | RS_FILE_HINTS_LOCAL, finfo)) { RsCollectionFile collection; if (collection.load(QString::fromUtf8(finfo.path.c_str()), false)) { size += QString(" [%1]").arg(misc::friendlyUnit(collection.size())); } } } QString link = QString("<a href=\"%1\">%2</a> <font color=\"blue\">%3</font>").arg(toString()).arg(name()).arg(size); return link; }