KPAboutData::KPAboutData(const KLocalizedString& pluginName, const QByteArray& /*pluginVersion*/, enum KAboutLicense::LicenseKey licenseType, const KLocalizedString& pluginDescription, const KLocalizedString& copyrightStatement) : QObject(), KAboutData(QStringLiteral("kipiplugins"), // Name without minus separator for KDE bug report. pluginName.toString(), kipipluginsVersion(), pluginDescription.toString(), licenseType, copyrightStatement.toString(), QStringLiteral(), QStringLiteral("http://www.digikam.org")) { QString directory = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("kf5/kipi/pics/kipi-plugins_logo.png")); // set the kipiplugins logo inside the about dialog setProgramLogo(QImage(directory)); // set the plugin description into long text description setOtherText(pluginDescription.toString()); // put the plugin name and version with kipi-plugins and kipi-plugins version KLocalizedString shortDesc = additionalInformation(); qCDebug(KIPIPLUGINS_LOG) << shortDesc.toString().constData() ; // and set the string into the short description setShortDescription(shortDesc.toString()); }
bool SmugWindow::prepareImageForUpload(const QString& imgPath) { QImage image; if (iface()) { image = iface()->preview(QUrl::fromLocalFile(imgPath)); } if (image.isNull()) { image.load(imgPath); } if (image.isNull()) { return false; } // get temporary file name m_tmpPath = m_tmpDir + QFileInfo(imgPath).baseName().trimmed() + QString::fromLatin1(".jpg"); // rescale image if requested int maxDim = m_widget->m_dimensionSpB->value(); if (m_widget->m_resizeChB->isChecked() && (image.width() > maxDim || image.height() > maxDim)) { qCDebug(KIPIPLUGINS_LOG) << "Resizing to " << maxDim; image = image.scaled(maxDim, maxDim, Qt::KeepAspectRatio, Qt::SmoothTransformation); } qCDebug(KIPIPLUGINS_LOG) << "Saving to temp file: " << m_tmpPath; image.save(m_tmpPath, "JPEG", m_widget->m_imageQualitySpB->value()); // copy meta-data to temporary image if (iface()) { QPointer<MetadataProcessor> meta = iface()->createMetadataProcessor(); if (meta && meta->load(QUrl::fromLocalFile(imgPath))) { meta->setImageDimensions(image.size()); meta->setImageProgramId(QString::fromLatin1("Kipi-plugins"), kipipluginsVersion()); meta->save(QUrl::fromLocalFile(m_tmpPath)); } } return true; }
KPAboutData::KPAboutData(const KLocalizedString& pluginName, const QByteArray& /*pluginVersion*/, enum LicenseKey licenseType, const KLocalizedString& pluginDescription, const KLocalizedString& copyrightStatement) : KAboutData (QByteArray("kipiplugins"), // Name without minus separator for KDE bug report. QByteArray(), pluginName, kipipluginsVersion().toAscii(), KLocalizedString(), licenseType, copyrightStatement, pluginDescription, QByteArray("http://www.digikam.org")) { if (KGlobal::hasMainComponent()) { // setProgramLogo is defined from kde 3.4.0 on QString directory = KStandardDirs::locate("data", "kipi/data/kipi-plugins_logo.png"); // set the kipiplugins logo inside the about dialog setProgramLogo(QImage(directory)); } // set the plugin description into long text description setOtherText(pluginDescription); // put the plugin name and version with kipi-plugins and kipi-plugins version KLocalizedString shortDesc = additionalInformation(); if (KGlobal::hasMainComponent()) { kDebug(AREA_CODE_LOADING) << shortDesc.toString().constData() ; } // and set the string into the short description setShortDescription(shortDesc); }
bool GDTalker::addPhoto(const QString& imgPath, const GSPhoto& info, const QString& id, bool rescale, int maxDim, int imageQuality) { if (m_reply) { m_reply->abort(); m_reply = 0; } emit signalBusy(true); MPForm_GDrive form; form.addPair(QUrl::fromLocalFile(imgPath).fileName(),info.description,imgPath,id); QString path = imgPath; QMimeDatabase mimeDB; if (!mimeDB.mimeTypeForFile(path).name().startsWith(QLatin1String("video/"))) { QImage image; if (m_iface) { image = m_iface->preview(QUrl::fromLocalFile(imgPath)); } if (image.isNull()) { image.load(imgPath); } if (image.isNull()) { return false; } path = makeTemporaryDir("gs").filePath(QFileInfo(imgPath) .baseName().trimmed() + QLatin1String(".jpg")); int imgQualityToApply = 100; if (rescale) { if (image.width() > maxDim || image.height() > maxDim) image = image.scaled(maxDim,maxDim,Qt::KeepAspectRatio,Qt::SmoothTransformation); imgQualityToApply = imageQuality; } image.save(path,"JPEG",imgQualityToApply); if (m_iface) { QPointer<MetadataProcessor> meta = m_iface->createMetadataProcessor(); if (meta && meta->load(QUrl::fromLocalFile(imgPath))) { meta->setImageDimensions(image.size()); meta->setImageProgramId(QString::fromLatin1("Kipi-plugins"), kipipluginsVersion()); meta->save(QUrl::fromLocalFile(path), true); } } } if (!form.addFile(path)) { emit signalBusy(false); return false; } form.finish(); QUrl url(QString::fromLatin1("https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart")); QNetworkRequest netRequest(url); netRequest.setHeader(QNetworkRequest::ContentTypeHeader, form.contentType()); netRequest.setRawHeader("Authorization", m_bearer_access_token.toLatin1()); netRequest.setRawHeader("Host", "www.googleapis.com"); m_reply = m_netMngr->post(netRequest, form.formData()); qCDebug(KIPIPLUGINS_LOG) << "In add photo"; m_state = GD_ADDPHOTO; m_buffer.resize(0); emit signalBusy(true); return true; }
bool DBTalker::addPhoto(const QString& imgPath, const QString& uploadFolder, bool rescale, int maxDim, int imageQuality) { if (m_reply) { m_reply->abort(); m_reply = 0; } emit signalBusy(true); MPForm form; QImage image; if (m_iface) { image = m_iface->preview(QUrl::fromLocalFile(imgPath)); } if (image.isNull()) { return false; } QString path = makeTemporaryDir("dropbox").filePath(QFileInfo(imgPath) .baseName().trimmed() + QLatin1String(".jpg")); if (rescale && (image.width() > maxDim || image.height() > maxDim)) { image = image.scaled(maxDim,maxDim,Qt::KeepAspectRatio,Qt::SmoothTransformation); } image.save(path,"JPEG",imageQuality); if (m_meta->load(QUrl::fromLocalFile(imgPath))) { m_meta->setImageDimensions(image.size()); m_meta->setImageProgramId(QString::fromLatin1("Kipi-plugins"), kipipluginsVersion()); m_meta->save(QUrl::fromLocalFile(path)); } if (!form.addFile(path)) { emit signalBusy(false); return false; } QString uploadPath = uploadFolder + QUrl(imgPath).fileName(); QString m_url = QString::fromLatin1("https://api-content.dropbox.com/1/files_put/dropbox/") + QString::fromLatin1("/") + uploadPath; QUrl url(m_url); QUrlQuery q(url); q.addQueryItem(QString::fromLatin1("oauth_consumer_key"), m_oauth_consumer_key); q.addQueryItem(QString::fromLatin1("oauth_nonce"), m_nonce); q.addQueryItem(QString::fromLatin1("oauth_signature"), m_access_oauth_signature); q.addQueryItem(QString::fromLatin1("oauth_signature_method"), m_oauth_signature_method); q.addQueryItem(QString::fromLatin1("oauth_timestamp"), QString::number(m_timestamp)); q.addQueryItem(QString::fromLatin1("oauth_version"), m_oauth_version); q.addQueryItem(QString::fromLatin1("oauth_token"), m_oauthToken); q.addQueryItem(QString::fromLatin1("overwrite"), QString::fromLatin1("false")); url.setQuery(q); QNetworkRequest netRequest(url); netRequest.setHeader(QNetworkRequest::ContentTypeHeader, QLatin1String("multipart/mixed")); m_reply = m_netMngr->post(netRequest, form.formData()); m_state = DB_ADDPHOTO; m_buffer.resize(0); emit signalBusy(true); return true; }
void SimpleViewer::processQUrlList(QList<QUrl>& images, QDomDocument& xmlDoc, QDomElement& galleryElem, QDomElement& photosElem) { QImage image; QImage thumbnail; QString tmp; QString newName; int index = 1; int maxSize = d->settings->imagesExportSize; bool resizeImages = d->settings->resizeExportImages; bool fixOrientation = d->settings->fixOrientation; QUrl thumbsDir = QUrl::fromLocalFile(d->tempDir->path()); thumbsDir.setPath(thumbsDir.path() + QLatin1String("/thumbs/")); QUrl imagesDir = QUrl::fromLocalFile(d->tempDir->path()); imagesDir.setPath(imagesDir.path() + QLatin1String("/images/")); qSort(images.begin(), images.end(), cmpUrl); for (QList<QUrl>::ConstIterator it = images.constBegin(); !d->canceled && (it != images.constEnd()) ; ++it) { QApplication::processEvents(); QUrl url = *it; QFileInfo fi(url.toLocalFile()); //video can't be exported, need to add for all video files if (fi.suffix().toUpper() == QLatin1String("MOV")) continue; d->progressWdg->addedAction(i18n("Processing %1", url.fileName()), StartingMessage); // Clear image. image = QImage(); if (d->interface) { image = d->interface->preview(url); } if (image.isNull()) { image.load(url.toLocalFile()); } if (image.isNull()) { d->progressWdg->addedAction(i18n("Could not open image '%1'", url.fileName()), WarningMessage); continue; } if (d->settings->plugType == 0) { // Thumbnails are generated only for simpleviewer plugin if (!createThumbnail(image, thumbnail)) { d->progressWdg->addedAction(i18n("Could not create thumbnail from '%1'", url.fileName()), WarningMessage); continue; } } if (resizeImages && !resizeImage(image, maxSize, image)) { d->progressWdg->addedAction(i18n("Could not resize image '%1'", url.fileName()), WarningMessage); continue; } if (d->meta && d->meta->load(url)) { bool rotated = false; newName = QString::fromUtf8("%1.%2").arg(tmp.sprintf("%03i", index)).arg(QLatin1String("jpg")); if (d->settings->plugType == 0) { QUrl thumbnailPath(thumbsDir); thumbnailPath.setPath(thumbnailPath.path() + newName); if (resizeImages && fixOrientation) d->meta->rotateExifQImage(thumbnail, d->meta->getImageOrientation()); thumbnail.save(thumbnailPath.toLocalFile(), "JPEG"); } QUrl imagePath(imagesDir); imagePath.setPath(imagePath.path() + newName); if (resizeImages && fixOrientation) rotated = d->meta->rotateExifQImage(image, d->meta->getImageOrientation()); image.save(imagePath.toLocalFile(), "JPEG"); // Backup metadata from original image. d->meta->setImageProgramId(QLatin1String("Kipi-plugins"), kipipluginsVersion()); d->meta->setImageDimensions(image.size()); if (rotated) d->meta->setImageOrientation(MetadataProcessor::NORMAL); d->meta->save(imagePath); } d->width = image.width(); d->height = image.height(); if (d->settings->plugType!=2) cfgAddImage(xmlDoc, galleryElem, url, newName); else cfgAddImage(xmlDoc, photosElem, url, newName); d->progressWdg->setProgress(++d->action, d->totalActions); index++; } }