コード例 #1
0
ファイル: RsUrlHandler.cpp プロジェクト: MrKID/RetroShare
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) ;
}
コード例 #2
0
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))
}
コード例 #3
0
ファイル: RetroShareLink.cpp プロジェクト: kigeia/retroshare
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;
}