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;