[Kde-pim] Review Request: Don't always recompress contact photos when saving

Sebastian Scheibner asamk at gmx.de
Mon Oct 22 00:45:05 BST 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/106745/
-----------------------------------------------------------

(Updated Oct. 21, 2012, 11:45 p.m.)


Review request for KDEPIM-Libraries.


Changes
-------

Making the test was easier than I though, the test case was already in the code, only commented out :-)
vcardparser/testroundtrip.cpp tests round trips with various vcf files. There's also one file vcard5.vcf that contains a photo and a logo, but that file was deactivated, probably because it didn't work before.
I activated that file and also updated vcard5.vcf.ref to escape commas, because the file wasn't updated when the behavior was changed in 2005 (see commit cb8d3fb18d177c6516b7c72bd01717675e20aae2 )

I also implemented Kevin's suggestions.


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/vcardparser/testroundtrip.qrc a858dc2 
  kabc/vcardparser/tests/vcard5.vcf.ref 712b494 
  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