diff --git a/src/board/UBFeaturesController.cpp b/src/board/UBFeaturesController.cpp index e5293039..53e72d5a 100644 --- a/src/board/UBFeaturesController.cpp +++ b/src/board/UBFeaturesController.cpp @@ -735,7 +735,7 @@ UBFeature UBFeaturesController::getDestinationFeatureForUrl( const QUrl &url ) return audiosElement; if ( mimetype.contains("video") ) return moviesElement; - else if ( mimetype.contains("image") ) + else if ( mimetype.contains("image") || mimetype.isEmpty()) return picturesElement; else if ( mimetype.contains("application") ) { @@ -751,13 +751,32 @@ void UBFeaturesController::addDownloadedFile(const QUrl &sourceUrl, const QByteA { UBFeature dest = getDestinationFeatureForUrl(sourceUrl); + //TODO:claudio check this if (dest == UBFeature()) return; - QString fileName = QFileInfo( sourceUrl.toString() ).fileName(); - QString filePath = dest.getFullPath().toLocalFile() + "/" + fileName; + QString fileName(""); + QString filePath(""); + + if(UBFileSystemUtils::mimeTypeFromFileName( sourceUrl.toString() ).isEmpty()){ + fileName = tr("ImportedImage") + "-" + QDateTime::currentDateTime().toString("dd-MM-yyyy hh-mm-ss")+ ".jpg"; + filePath = dest.getFullPath().toLocalFile() + "/" + fileName; + QImage::fromData(pData).save(filePath); + + UBFeature downloadedFeature = UBFeature(dest.getFullVirtualPath() + "/" + fileName, getIcon( filePath, fileTypeFromUrl(filePath)), + fileName, QUrl::fromLocalFile(filePath), FEATURE_ITEM); + if (downloadedFeature != UBFeature()) { + featuresModel->addItem(downloadedFeature); + } + + } + else{ + fileName = QFileInfo( sourceUrl.toString() ).fileName(); + filePath = dest.getFullPath().toLocalFile() + "/" + fileName; + - QFile file( filePath ); + + QFile file( filePath ); if ( file.open(QIODevice::WriteOnly )) { file.write(pData); @@ -769,6 +788,7 @@ void UBFeaturesController::addDownloadedFile(const QUrl &sourceUrl, const QByteA featuresModel->addItem(downloadedFeature); } } + } } diff --git a/src/gui/UBFeaturesWidget.cpp b/src/gui/UBFeaturesWidget.cpp index 49866352..caf9fb64 100644 --- a/src/gui/UBFeaturesWidget.cpp +++ b/src/gui/UBFeaturesWidget.cpp @@ -231,8 +231,8 @@ void UBFeaturesWidget::onDisplayMetadata( QMap metadata ) { QString previewImageUrl = ":images/libpalette/notFound.png"; - QString widgetsUrl = metadata.value("Url", QString()); - QString widgetsThumbsUrl = metadata.value("thumbnailUrl", QString()); + QString widgetsUrl = QUrl::fromEncoded(metadata["Url"].toAscii()).toString()/*metadata.value("Url", QString())*/; + QString widgetsThumbsUrl = QUrl::fromEncoded(metadata["thumbnailUrl"].toAscii()).toString(); bool isLocal = QFileInfo(widgetsUrl).exists(); @@ -269,8 +269,11 @@ void UBFeaturesWidget::onDisplayMetadata( QMap metadata ) // We send here the request and store its reply in order to be able to cancel it if needed imageGatherer->get(QUrl(widgetsThumbsUrl), QPoint(0,0), QSize(), false); } + + QString tmp = QUrl::fromEncoded(metadata["Url"].toAscii()).toString(); + qDebug() << tmp; - UBFeature feature( "/root", QImage(previewImageUrl), QString(), metadata["Url"], FEATURE_ITEM ); + UBFeature feature( "/root", QImage(previewImageUrl), QString(), tmp/*metadata["Url"]*/, FEATURE_ITEM ); feature.setMetadata( metadata ); centralWidget->showElement(feature, UBFeaturesCentralWidget::FeaturePropertiesList); @@ -299,8 +302,8 @@ void UBFeaturesWidget::onPreviewLoaded(int id, bool pSuccess, QUrl sourceUrl, QU void UBFeaturesWidget::onAddDownloadedFileToLibrary(bool pSuccess, QUrl sourceUrl, QString pContentHeader, QByteArray pData) { Q_UNUSED(pContentHeader) - if (pSuccess) { + qDebug() << pData.length(); controller->addDownloadedFile(sourceUrl, pData); controller->refreshModels(); }