[Kde-pim] Review Request: Don't always recompress contact photos when saving
Sebastian Scheibner
asamk at gmx.de
Sun Oct 21 22:39:15 BST 2012
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/106745/
-----------------------------------------------------------
(Updated Oct. 21, 2012, 9:39 p.m.)
Review request for KDEPIM-Libraries.
Changes
-------
changed akonadi/contact/editor/imagewidget.cpp so that it only changes the photo if the user changes it. To achieve this the photo is now stored as a KABC::Picture (that also contains the raw data) instead of a QImage.
picture.cpp:
To ensure that the data/rawdata and type of a Picture are always consistent I've added a type parameter to the setRawData and setUrl methods and deprecated the setType method. So the data and type can only be set together (setData doesn't have a type parameter because it sets the type by itself)
changed type strings from "image/png" to "png", this was changed in commit f7de08b9f65e2c7414f237dda9e024ebcdbccd31
Description
-------
When changing a contact with a photo, the photo is recompressed when saving (even though the photo wasn't changed). That's because the photo is loaded into a QImage and when the contact is saved, the QImage is compressed as JPEG again (or PNG if it contains an alpha-channel, which most don't).
This patch stores the raw base64 photo data from the vcard as a QByteArray in KABC::Picture. If the photo is not changed, this QByteArray is simply used when saving the contact, so there's no recompression and quality loss. If the photo was changed it gets compressed as JPEG as before.
fixes this bug: https://bugs.kde.org/show_bug.cgi?id=307570
This addresses bug 307570.
http://bugs.kde.org/show_bug.cgi?id=307570
Diffs (updated)
-----
akonadi/contact/editor/imagewidget.h 92df283
akonadi/contact/editor/imagewidget.cpp e1a0527
kabc/picture.h bf9745c
kabc/picture.cpp 0a51c8b
kabc/tests/picturetest.h 2b33e18
kabc/tests/picturetest.cpp b599b48
kabc/vcardtool.cpp e876e81
Diff: http://git.reviewboard.kde.org/r/106745/diff/
Testing
-------
compiled kdepimlibs/kabc with kde 4.9.2
- created a new contact in kaddressbook and added a photo. exported the contact.
- changed the photo and exported the contact again
- the image data in the exported file didn't change
Thanks,
Sebastian Scheibner
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/
More information about the kde-pim
mailing list