Details

Currently, anytime Gwenview is used to save a non-JPEG file as a JPEG, or anytime JPEG file is saved or re-saved after performing a lossy edit (e.g. crop or red eye, but not rotation), the new file is saved with 75% quality level, resulting in a noticeable degradation in appearance.

This patch implements a user-selectable JPEG save/compression quality setting, which can be temporarily overridden in the Save As dialog when saving a file as a JPEG. The new default quality level is 90% -- same as Spectacle. This should prevent people from accdientally destroying their JPEGs.

As before, when saving an existing JPEG file with a new name or after performing a non-lossy edit (e.g. rotation, which only changes the EXIF rotation tag), the appearance of the file is not changed because no actual image manipulation is done.

FEATURE: 277996
FIXED-IN: 19.12.0

Test Plan

Set JPEG quality to 5% in the config file and test the following use cases:

Non-JPEG image: do Save or Save As in non-JPEG formats -> No changes or regressions.

JPEG image: do Save or Save As without changing the image format or the image's pixels at all -> No changes; quality level not taken into consideration because these are lossless operations that do not re-compress the image (which is good)

JPEG image: do Save or Save As after changing the image's pixels in some way (e.g. a crop operation) -> Image is saved with the user-specified 5% quality level and looks terrible

JPEG image: do Save As into a non-JPEG file format after changing the image image's pixels in some way, or not -> No changes or regressions (in particular, lossless images like PNG are not hugely ballooned in file size)

Set JPEG quality to 90% in the config file and test the following use cases:

Non-JPEG image: do Save As in non-JPEG formats -> No changes or regressions; dialog box does not show quality spinbox

Non-JPEG image: do Save As into a JPEG and in the {nav Save As] dialog, change the quality from 90% to 5%-> Image is saved with the user-specified 5% quality level and looks terrible

JPEG image: do Save As into a non-JPEG file format -> No changes or regressions; dialog box does not show quality spinbox

JPEG image: do Save As after changing the image's pixels in some way (e.g. a crop operation), and in the {nav Save As] dialog, change the quality from 90% to 5%-> Image is saved with the user-specified 5% quality level and looks terrible

This patch actually increases KF5 dependency to 5.61. Although KFileCustomDialog was introduced in 2017 (KF 5.42), it was only exposed in KF 5.61. All previous versions of KF5 KIO need minor patching of the "-devel" package to compile Gwenview 19.12.

This patch actually increases KF5 dependency to 5.61. Although KFileCustomDialog was introduced in 2017 (KF 5.42), it was only exposed in KF 5.61. All previous versions of KF5 KIO need minor patching of the "-devel" package to compile Gwenview 19.12.