Exemplo n.º 1
0
DownloadItem* DownloadsModel::addDownload(DownloadItem *pde, struct GNUNET_FS_DownloadContext *dc,
                                          const struct GNUNET_FS_Uri *uri, QString filePath,
                                          const struct GNUNET_CONTAINER_MetaData *meta, qint64 size,
                                          qint64 completed )
{


    //Convert uri to Key
    GNUNET_HashCode hashcode;
    GNUNET_FS_uri_to_key(uri,&hashcode);

    //Get as QString
    const char * hash = GNUNET_h2s_full(&hashcode);
    QString strHash = QString(hash);



    DownloadItem* download = new DownloadItem(strHash);

    download->setParent(pde);
    download->setContext(dc);
    char* fancyName =  GNUNET_CONTAINER_meta_data_get_first_by_types (meta,
                                                                 EXTRACTOR_METATYPE_PACKAGE_NAME,
                                                                 EXTRACTOR_METATYPE_TITLE,
                                                                 EXTRACTOR_METATYPE_BOOK_TITLE,
                                                                 EXTRACTOR_METATYPE_GNUNET_ORIGINAL_FILENAME,
                                                                 EXTRACTOR_METATYPE_FILENAME,
                                                                 EXTRACTOR_METATYPE_DESCRIPTION,
                                                                 EXTRACTOR_METATYPE_SUMMARY,
                                                                 EXTRACTOR_METATYPE_ALBUM,
                                                                 EXTRACTOR_METATYPE_COMMENT,
                                                                 EXTRACTOR_METATYPE_SUBJECT,
                                                                 EXTRACTOR_METATYPE_KEYWORDS,
                                                                 -1);

    char* fileName =  GNUNET_CONTAINER_meta_data_get_first_by_types (meta,
                                                                 EXTRACTOR_METATYPE_GNUNET_ORIGINAL_FILENAME,
                                                                 EXTRACTOR_METATYPE_PACKAGE_NAME,
                                                                 EXTRACTOR_METATYPE_TITLE,
                                                                 EXTRACTOR_METATYPE_BOOK_TITLE,
                                                                 EXTRACTOR_METATYPE_FILENAME,
                                                                 EXTRACTOR_METATYPE_DESCRIPTION,
                                                                 EXTRACTOR_METATYPE_SUMMARY,
                                                                 EXTRACTOR_METATYPE_ALBUM,
                                                                 EXTRACTOR_METATYPE_COMMENT,
                                                                 EXTRACTOR_METATYPE_SUBJECT,
                                                                 EXTRACTOR_METATYPE_KEYWORDS,
                                                                 -1);



    download->setPath(filePath);
    download->setFancyName(QString(fancyName));
    download->setFileName(QString(fileName));
    download->setMetadata(meta);
    download->setSize(size);
    download->setCompleted(completed);


    emit addDownloadSignal(download);

    return download;


}