diff --git a/app/generalconfigpage.ui b/app/generalconfigpage.ui --- a/app/generalconfigpage.ui +++ b/app/generalconfigpage.ui @@ -26,7 +26,7 @@ - + Qt::Vertical @@ -123,27 +123,63 @@ + + + JPEG save quality: + + + + + + + 1 + + + 100 + + + % + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + Thumbnail actions: - + All buttons - + Show selection button only - + None diff --git a/app/gvcore.cpp b/app/gvcore.cpp --- a/app/gvcore.cpp +++ b/app/gvcore.cpp @@ -361,9 +361,16 @@ return; } + if (format == "jpg") { + // Gwenview code assumes JPEG images have "jpeg" format, so if the + // dialog returned the format "jpg", use "jpeg" instead + // This does not affect the actual filename extension + format = "jpeg"; + } + // Start save Document::Ptr doc = DocumentFactory::instance()->load(url); - KJob* job = doc->save(saveAsUrl, format.data()); + KJob* job = doc->save(saveAsUrl, format); if (!job) { const QString name = saveAsUrl.fileName().isEmpty() ? saveAsUrl.toDisplayString() : saveAsUrl.fileName(); const QString msg = xi18nc("@info", "Saving %1 failed:%2", diff --git a/lib/gwenviewconfig.kcfg b/lib/gwenviewconfig.kcfg --- a/lib/gwenviewconfig.kcfg +++ b/lib/gwenviewconfig.kcfg @@ -57,6 +57,10 @@ false + + 90 + + diff --git a/lib/jpegcontent.cpp b/lib/jpegcontent.cpp --- a/lib/jpegcontent.cpp +++ b/lib/jpegcontent.cpp @@ -185,6 +185,7 @@ { QBuffer buffer; QImageWriter writer(&buffer, "jpeg"); + writer.setQuality(GwenviewConfig::jPEGQuality()); if (!writer.write(mImage)) { mErrorString = writer.errorString(); return false;