Version: 3.3 (using KDE 3.2.3, Mandrake Linux Cooker i586 - Cooker) Compiler: gcc version 3.4.1 (Mandrakelinux 10.1 3.4.1-4mdk) OS: Linux (i686) release 2.6.8.1-12mdk Description: Importing an Apple Addressbook Vcard results in many fields remaining empty. How to reproduce: 1. Download the attached Vcard and save it locally. 2. Start kontact-addressbook.sh 3. Go to File -> Import -> Import Vcard... 4. Browse to the downloaded vcard and click OK Expected behaviour: (I shall focus on what is missing rather than what is correct because the list is long) Company to be in the Organisation field Home address to be filled in Work address to be filled in othersphone to be selectable from one of the drop downs at the top right Other Email to be visible in the Edit Email Addresses window Department to be in the Department field Job Title to be in the Profession field Photo to be added and visible Actual results: (again I am only focussing on what appears to be wrong) Company;Department is in the Organisation field Home address is missing Work address is missing othersphone is not findable Other Email is not findable The Department field is empty Profession is empty Photo is not visible Additional Information: I have a small collection of vcards that I am using to test Vcard interop between several addressbook programs. Please let me know if it would be helpful to provide them...
Created attachment 8907 [details] Vcard exported from Apple Addressbook
Hi, I changed it to a whishlist item, because this vCard uses a special vCard feature called grouping which isn't implemented in our vCard parser yet. To the other issues: 1) department and profession are non standardized fields which every addressbook application handles differently, adding hacks for it doesn't make much sense and leads to ugly code 2) the photo entry is invalid, concerning the vCard standard (RFC2426) it must contain a type field
I've just been reading RFC2426 and I have failed to find the section that says a photo must have a type field. From reading of the grammar (http://zvon.org/tmRFC/RFC2426/Output/index.html ) my understanding is that it is completely optional because of this: contentline = [group "."] name *(";" param ) ":" value CRLF * means 0 or more and since the parameters can be any order there need not be a type field (although that BASE64 bit looks suspicious).
CVS commit by tokoe: Parse images from Apples MacOSX addressbook correctly. BUG:96263 M +5 -3 vcardtool.cpp 1.11 M +3 -0 vcardparser/vcardparser.cpp 1.16 --- kdelibs/kabc/vcardtool.cpp #1.10:1.11 @@ -623,7 +623,9 @@ Picture VCardTool::parsePicture( const V QStringList params = line.parameterList(); - if ( params.findIndex( "encoding" ) != -1 ) - pic.setData( line.value().asByteArray() ); - else if ( params.findIndex( "value" ) != -1 ) { + if ( params.findIndex( "encoding" ) != -1 ) { + QImage img; + img.loadFromData( line.value().asByteArray() ); + pic.setData( img ); + } else if ( params.findIndex( "value" ) != -1 ) { if ( line.parameter( "value" ).lower() == "uri" ) pic.setUrl( line.value().asString() ); --- kdelibs/kabc/vcardparser/vcardparser.cpp #1.15:1.16 @@ -77,4 +77,7 @@ VCard::List VCardParser::parseVCards( co pair[0] = "encoding"; pair[1] = "quoted-printable"; + } else if ( pair[0].lower() == "base64" ) { + pair[0] = "encoding"; + pair[1] = "base64"; } else { pair.prepend( "type" );
Woah there! First up thanks for the photo fix. However you mentioned making lack of grouping support a wishlist proposal... Do you want me to spin that off into a different bug?
On Sun, Jan 09, 2005 at 09:18:25PM -0000, Sitsofe Wheeler wrote: Hi, > Woah there! First up thanks for the photo fix. However you mentioned making > lack of grouping support a wishlist proposal... Do you want me to spin that > off into a different bug? That's fixed in the meantime as well. Ciao, Tobias
The development of the old KAddressBook will be discontinued for KDE 4.4. Since the new application has the same name, but a completly new code base we close all bug reports against the old version and ask the submitters to resend there reports against the new product.