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)) }