summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-10-28 03:41:01 (UTC)
committer zautrix <zautrix>2005-10-28 03:41:01 (UTC)
commitd934f3fe2a62f6a696992335124c4434cd77d990 (patch) (unidiff)
tree88d33c54e3f8d08b09cf81f4cdbaeb7eb6a4bb9b
parentf83a59cf4f9d0cff4111b6f5c88e88e6dc96e79e (diff)
downloadkdepimpi-d934f3fe2a62f6a696992335124c4434cd77d990.zip
kdepimpi-d934f3fe2a62f6a696992335124c4434cd77d990.tar.gz
kdepimpi-d934f3fe2a62f6a696992335124c4434cd77d990.tar.bz2
and some bugs fixed
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/kaddressbook/germantranslation.txt7
-rw-r--r--kabc/addressee.cpp4
-rw-r--r--kabc/plugins/qtopia/qtopiaconverter.cpp8
-rw-r--r--kabc/plugins/sharpdtm/sharpdtmconverter.cpp10
4 files changed, 17 insertions, 12 deletions
diff --git a/bin/kdepim/kaddressbook/germantranslation.txt b/bin/kdepim/kaddressbook/germantranslation.txt
index 62e567e..2ae6eb9 100644
--- a/bin/kdepim/kaddressbook/germantranslation.txt
+++ b/bin/kdepim/kaddressbook/germantranslation.txt
@@ -696,137 +696,142 @@
696{ "Time period","Zeitspanne" }, 696{ "Time period","Zeitspanne" },
697{ "From ","Von " }, 697{ "From ","Von " },
698{ " weeks in the past to "," Wochen in der Vergangenheit bis zu " }, 698{ " weeks in the past to "," Wochen in der Vergangenheit bis zu " },
699{ " weeks in the future "," Wochen in der Zukunft " }, 699{ " weeks in the future "," Wochen in der Zukunft " },
700{ "Profile kind specific settings","Profil Art abhängige Einstellungen" }, 700{ "Profile kind specific settings","Profil Art abhängige Einstellungen" },
701{ "Local temp file:","Lokale temp Datei:" }, 701{ "Local temp file:","Lokale temp Datei:" },
702{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile mit demselben Namen!\nBitte verschiedene Namen benutzen!" }, 702{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile mit demselben Namen!\nBitte verschiedene Namen benutzen!" },
703{ "Aborted! Nothing synced!","Abgebrochen! Nichts wurde gesynct!" }, 703{ "Aborted! Nothing synced!","Abgebrochen! Nichts wurde gesynct!" },
704{ "You cannot remove your standard resource!\n Please select a new standard resource first.","Standard Resource kann\nnicht entfernt werden!\nBitte eine andere Resource\nals Standard setzen." }, 704{ "You cannot remove your standard resource!\n Please select a new standard resource first.","Standard Resource kann\nnicht entfernt werden!\nBitte eine andere Resource\nals Standard setzen." },
705{ "Sorry","Tut mir leid" }, 705{ "Sorry","Tut mir leid" },
706{ "You cannot use a read-only<br> resource as standard!","Man kann nicht eine read-only<br> Resource als Standard setzen!" }, 706{ "You cannot use a read-only<br> resource as standard!","Man kann nicht eine read-only<br> Resource als Standard setzen!" },
707{ "Please restart to get the \nchanged resources (re)loaded!\n","Bitte starten Sie jetzt\ndas Programm neu, um die geänderten\nResourcen neu zu laden!\n" }, 707{ "Please restart to get the \nchanged resources (re)loaded!\n","Bitte starten Sie jetzt\ndas Programm neu, um die geänderten\nResourcen neu zu laden!\n" },
708{ "The selected file does not\ninclude a valid vCard.\nPlease check the file and try again.\n","Die gewählte Datei enthält\nkeine gültige vCard.\nBitte prüfen Sie die Datei\nund versuchen es erneut.\n" }, 708{ "The selected file does not\ninclude a valid vCard.\nPlease check the file and try again.\n","Die gewählte Datei enthält\nkeine gültige vCard.\nBitte prüfen Sie die Datei\nund versuchen es erneut.\n" },
709{ "Unable to load resource '%1'","Resource kann nicht geladen werden: '%1'" }, 709{ "Unable to load resource '%1'","Resource kann nicht geladen werden: '%1'" },
710{ "Some changes are only\neffective after a restart!\n","Einige Änderungen werden erst\nnach einem Neustart übernommen!\n" }, 710{ "Some changes are only\neffective after a restart!\n","Einige Änderungen werden erst\nnach einem Neustart übernommen!\n" },
711{ "Syncing aborted. Nothing synced.","Syncing abgebrochen.Nichts wurde gesynct." }, 711{ "Syncing aborted. Nothing synced.","Syncing abgebrochen.Nichts wurde gesynct." },
712{ "Connected! Sending request for remote file ...","Verbunden! Sende Daten Anfrage..." }, 712{ "Connected! Sending request for remote file ...","Verbunden! Sende Daten Anfrage..." },
713{ "Trying to connect to remote...","Versuche mit Gegenstelle zu verbinden..." }, 713{ "Trying to connect to remote...","Versuche mit Gegenstelle zu verbinden..." },
714{ "Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host?","Verbindungsversuch wegen\nZeitüberschreitung gescheitert!\nWurde vergessen Pi-Sync auf\nder Gegenstelle anzuschalten?" }, 714{ "Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host?","Verbindungsversuch wegen\nZeitüberschreitung gescheitert!\nWurde vergessen Pi-Sync auf\nder Gegenstelle anzuschalten?" },
715{ "ERROR: Receiving remote file failed.","FEHLER: Empfang der entfernten Daten fehlgeschlagen." }, 715{ "ERROR: Receiving remote file failed.","FEHLER: Empfang der entfernten Daten fehlgeschlagen." },
716{ "Error","Fehler" }, 716{ "Error","Fehler" },
717{ ""You entered an invalid date!\n Date changed to current date.","Ungültiges Datum eingegeben.\nSetze heutiges Datum." }, 717{ ""You entered an invalid date!\n Date changed to current date.","Ungültiges Datum eingegeben.\nSetze heutiges Datum." },
718{ "You entered an invalid date!\n Will use current date instead.","Ungültiges Datum eingegeben.\nSetze stattdessen heutiges Datum." }, 718{ "You entered an invalid date!\n Will use current date instead.","Ungültiges Datum eingegeben.\nSetze stattdessen heutiges Datum." },
719{ "Warning","Warnung" }, 719{ "Warning","Warnung" },
720{ "Select week number","Wähle Wochen Nummer" }, 720{ "Select week number","Wähle Wochen Nummer" },
721{ "Februar","Februar" }, 721{ "Februar","Februar" },
722{ "Pi-Sync options for device: ","Pi-Sync Einstellungen für Gerät: " }, 722{ "Pi-Sync options for device: ","Pi-Sync Einstellungen für Gerät: " },
723{ "Password for remote access:","Passwort für fernen Zugriff:" }, 723{ "Password for remote access:","Passwort für fernen Zugriff:" },
724{ "Remote IP address:","Ferne IP Adresse:" }, 724{ "Remote IP address:","Ferne IP Adresse:" },
725{ "Remote port number:","Ferne Port Nummer:" }, 725{ "Remote port number:","Ferne Port Nummer:" },
726{ "Remote file saved to temp file.","Ferne Daten in temp Datei gespeichert." }, 726{ "Remote file saved to temp file.","Ferne Daten in temp Datei gespeichert." },
727{ "Remote from: ","Fern von: " }, 727{ "Remote from: ","Fern von: " },
728{ "Local from: ","Lokal von: " }, 728{ "Local from: ","Lokal von: " },
729{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out\n","Synchronisationsübersicht:\n\n %d lokal hinzugefügt\n %d fern hinzugefügt\n %d lokal geändert\n %d fern geändert\n %d lokal gelöscht\n %d fern gelöscht\n %d eingehende ausgefiltert\n %d ausgehende ausgefiltert\n" }, 729{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out\n","Synchronisationsübersicht:\n\n %d lokal hinzugefügt\n %d fern hinzugefügt\n %d lokal geändert\n %d fern geändert\n %d lokal gelöscht\n %d fern gelöscht\n %d eingehende ausgefiltert\n %d ausgehende ausgefiltert\n" },
730{ "Local calendar changed!\n","Lokaler Kalender geändert!\n" }, 730{ "Local calendar changed!\n","Lokaler Kalender geändert!\n" },
731{ "Write back","Schreibe zurück" }, 731{ "Write back","Schreibe zurück" },
732{ "Pi-Sync succesful!","Pi-Sync erfolgreich!" }, 732{ "Pi-Sync succesful!","Pi-Sync erfolgreich!" },
733{ "Received sync request","Sync Anfrage erhalten" }, 733{ "Received sync request","Sync Anfrage erhalten" },
734{ "Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog.","Ferne Synchronisation ...\n\nBenutze diese Anwendung nicht!\n\nWenn das Syncen fehlschlägt kann\ndieser Dialog geschlossen werden." }, 734{ "Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog.","Ferne Synchronisation ...\n\nBenutze diese Anwendung nicht!\n\nWenn das Syncen fehlschlägt kann\ndieser Dialog geschlossen werden." },
735{ "Saving Data to temp file ...","Speichere Daten in temp Datei..." }, 735{ "Saving Data to temp file ...","Speichere Daten in temp Datei..." },
736{ "Data saved to temp file!","Daten in temp Datei gespeichert!" }, 736{ "Data saved to temp file!","Daten in temp Datei gespeichert!" },
737{ "Sending file...","Sende Datei..." }, 737{ "Sending file...","Sende Datei..." },
738{ "Waiting for synced file...","Warte auf gesyncte Daten..." }, 738{ "Waiting for synced file...","Warte auf gesyncte Daten..." },
739{ "Receiving synced file...","Gesyncte Daten erhalten..." }, 739{ "Receiving synced file...","Gesyncte Daten erhalten..." },
740{ "Received %1 bytes","%1 Bytes erhalten" }, 740{ "Received %1 bytes","%1 Bytes erhalten" },
741{ "Writing file to disk...","Speichere Datei..." }, 741{ "Writing file to disk...","Speichere Datei..." },
742{ "Pi-Sync successful!","Pi-Sync erfolgreich!" }, 742{ "Pi-Sync successful!","Pi-Sync erfolgreich!" },
743{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" }, 743{ "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" },
744{ "Synchronize!","Synchronisiere!" }, 744{ "Synchronize!","Synchronisiere!" },
745{ "High clock skew!","Großer Uhrzeitunterschied!" }, 745{ "High clock skew!","Großer Uhrzeitunterschied!" },
746{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" }, 746{ "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" },
747{ "The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!","Die Uhren der syncenden Geräte\nhaben einen Unterschied von\nmehr als 5 Minuten. Bitte die\nUhrzeiten anpassen. Sie können\nfalsche Sync-Resultate erhalten!\nBitte das Syncen bestätigen!" }, 747{ "The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!","Die Uhren der syncenden Geräte\nhaben einen Unterschied von\nmehr als 5 Minuten. Bitte die\nUhrzeiten anpassen. Sie können\nfalsche Sync-Resultate erhalten!\nBitte das Syncen bestätigen!" },
748{ "Change search field enable jump bar","Ändere Suchfeld um Jumpbar anzuzeigen" }, 748{ "Change search field enable jump bar","Ändere Suchfeld um Jumpbar anzuzeigen" },
749{ "Search with '*' prefix (wildcard)","Suche mit '*' Prefix (Wildcard)" }, 749{ "Search with '*' prefix (wildcard)","Suche mit '*' Prefix (Wildcard)" },
750{ "Shrink searchfield in portrait view","Verkleinere Suchfeld im Portraitmodus" }, 750{ "Shrink searchfield in portrait view","Verkleinere Suchfeld im Portraitmodus" },
751{ "Edit new contact","Bearbeite neuen Kontakt" }, 751{ "Edit new contact","Bearbeite neuen Kontakt" },
752{ "Edit ","Bearbeite " }, 752{ "Edit ","Bearbeite " },
753{ "No contact changed!","Kein Kontakt verändert" }, 753{ "No contact changed!","Kein Kontakt verändert" },
754{ "%1 contacts changed!","%1 Kontakte geändert!" }, 754{ "%1 contacts changed!","%1 Kontakte geändert!" },
755{ "Mobile (home)","Handy (Privat)" }, 755{ "Mobile (home)","Handy (Privat)" },
756{ "Mobile (work)","Handy (Arbeit)" }, 756{ "Mobile (work)","Handy (Arbeit)" },
757{ "Def.Formatted Name","Def. Format. Name" }, 757{ "Def.Formatted Name","Def. Format. Name" },
758{ "Colors","Farben" }, 758{ "Colors","Farben" },
759{ "Alternating background of list views","Abwechselnder Hintergrund für Listen" }, 759{ "Alternating background of list views","Abwechselnder Hintergrund für Listen" },
760{ "Backup enabled","Backup angeschaltet" }, 760{ "Backup enabled","Backup angeschaltet" },
761{ "Use standard backup dir","Standard Backupverzeichnis" }, 761{ "Use standard backup dir","Standard Backupverzeichnis" },
762{ "Number of Backups:","Anzahl der Backups" }, 762{ "Number of Backups:","Anzahl der Backups" },
763{ "Make backup every ","Mache ein Backup alle " }, 763{ "Make backup every ","Mache ein Backup alle " },
764{ " days"," Tage" }, 764{ " days"," Tage" },
765{ "Creating backup ... please wait ...","Erzeuge Backup ... bitte warten ..." }, 765{ "Creating backup ... please wait ...","Erzeuge Backup ... bitte warten ..." },
766{ "Backup Failed!","Backup Problem!" }, 766{ "Backup Failed!","Backup Problem!" },
767{ "Try again now","Versuche jetzt nochmal" }, 767{ "Try again now","Versuche jetzt nochmal" },
768{ "Try again later","Versuche später nochmal" }, 768{ "Try again later","Versuche später nochmal" },
769{ "Try again tomorrow","Versuche morgen nochmal" }, 769{ "Try again tomorrow","Versuche morgen nochmal" },
770{ "Disable backup","Schalte Backup ab" }, 770{ "Disable backup","Schalte Backup ab" },
771{ "<b>Backup directory does not exist: </b>","<b>Backup Verzeichnis existiert nicht: </b>" }, 771{ "<b>Backup directory does not exist: </b>","<b>Backup Verzeichnis existiert nicht: </b>" },
772{ "<b>The backup copy command failed!</b>","<b>Das Backup Kopierkommando is fehlgeschlagen!</b>" }, 772{ "<b>The backup copy command failed!</b>","<b>Das Backup Kopierkommando is fehlgeschlagen!</b>" },
773{ "Choose action","Wähle Aktion" }, 773{ "Choose action","Wähle Aktion" },
774{ "&Configure KA/Pi...","Konfiguriere KA/Pi..." }, 774{ "&Configure KA/Pi...","Konfiguriere KA/Pi..." },
775{ "Global Settings...","Globale Einstellungen..." }, 775{ "Global Settings...","Globale Einstellungen..." },
776{ "Spouse","Ehegatte" }, 776{ "Spouse","Ehegatte" },
777{ "Notes","Notizen" }, 777{ "Notes","Notizen" },
778{ "Messanger","Messanger" }, 778{ "Messanger","Messanger" },
779{ "Assistant","Assistent" }, 779{ "Assistant","Assistent" },
780{ "Manager","Manager" }, 780{ "Manager","Manager" },
781{ "Secrecy","Sichtbar" }, 781{ "Secrecy","Sichtbar" },
782{ "male","männlich" }, 782{ "male","männlich" },
783{ "female","weiblich" }, 783{ "female","weiblich" },
784{ "Hide!","Verbergen!" }, 784{ "Hide!","Verbergen!" },
785{ "Show!","Anzeigen!" }, 785{ "Show!","Anzeigen!" },
786{ "Details","Details" }, 786{ "Details","Details" },
787{ "Search:","Suche:" }, 787{ "Search:","Suche:" },
788{ "Automatically sync with KDE-Desktop\nwhen receiving sync request","Synce automatisch mit KDE-Desktop\nwenn eine Sync-Anforderung kommt" }, 788{ "Automatically sync with KDE-Desktop\nwhen receiving sync request","Synce automatisch mit KDE-Desktop\nwenn eine Sync-Anforderung kommt" },
789{ "Pi-Sync Port Error","Pi-Sync Port Fehler" }, 789{ "Pi-Sync Port Error","Pi-Sync Port Fehler" },
790{ "<b>Enabling Pi-Sync failed!</b> Failed to bind or listen to the port %1! Is another instance already listening to that port?","<b>Anschalten von Pi-Sync fehlgeschlagen!</b> Fehler beim Ansprechen des Ports %1! Ist bereits eine andere Anwendung dabei diesen Port zu nutzen?" }, 790{ "<b>Enabling Pi-Sync failed!</b> Failed to bind or listen to the port %1! Is another instance already listening to that port?","<b>Anschalten von Pi-Sync fehlgeschlagen!</b> Fehler beim Ansprechen des Ports %1! Ist bereits eine andere Anwendung dabei diesen Port zu nutzen?" },
791{ "No valid port number:\n%1","Keine gültige Port Nummer:\n%1" }, 791{ "No valid port number:\n%1","Keine gültige Port Nummer:\n%1" },
792{ "Port number (Default: %1)\nValid range from 1 to 65535","Port Nummer (Standard: %1)\nGültiger Bereich von 1 bis 65535" }, 792{ "Port number (Default: %1)\nValid range from 1 to 65535","Port Nummer (Standard: %1)\nGültiger Bereich von 1 bis 65535" },
793{ "Pi-Sync Error","Pi-Sync Fehler" }, 793{ "Pi-Sync Error","Pi-Sync Fehler" },
794{ "Got send file request\nwith invalid password","Erhielt "sende Datei" Anfrage\nmit ungültigem Passwort" }, 794{ "Got send file request\nwith invalid password","Erhielt "sende Datei" Anfrage\nmit ungültigem Passwort" },
795{ "Got receive file request\nwith invalid password","Erhielt "empfange Datei" Anfrage\nmit ungültigem Passwort" }, 795{ "Got receive file request\nwith invalid password","Erhielt "empfange Datei" Anfrage\nmit ungültigem Passwort" },
796{ "Wrong password: Receiving remote file failed.","Falsches Passwort: Empfangen von entfernter Datei fehlgeschlagen." }, 796{ "Wrong password: Receiving remote file failed.","Falsches Passwort: Empfangen von entfernter Datei fehlgeschlagen." },
797{ "Please close error dialog on remote.","Bitte schließe Fehler-Dialog am entfernten Rechner" }, 797{ "Please close error dialog on remote.","Bitte schließe Fehler-Dialog am entfernten Rechner" },
798{ "Unknown error on remote.","Unbekannter Fehler am entfernten Rechner" }, 798{ "Unknown error on remote.","Unbekannter Fehler am entfernten Rechner" },
799{ "Pi-Sync: Connected!","Pi-Sync: Verbunden!" }, 799{ "Pi-Sync: Connected!","Pi-Sync: Verbunden!" },
800{ "Receiving file from remote...","Empfange entfernte Datei..." }, 800{ "Receiving file from remote...","Empfange entfernte Datei..." },
801{ "Sending back synced file...","Sende synchronisierte Datei zurück..." }, 801{ "Sending back synced file...","Sende synchronisierte Datei zurück..." },
802{ "Do you want to\nclear all sync info\nof all profiles?","Möchten Sie wirklich\ndie Sync-Info\nfür alle Profile\nlöschen?" }, 802{ "Do you want to\nclear all sync info\nof all profiles?","Möchten Sie wirklich\ndie Sync-Info\nfür alle Profile\nlöschen?" },
803{ "Do you want to\nclear the sync\ninfo of profile\n%1?\n","Möchten Sie wirklich\ndie Sync-Info für Profil\n%1?\nlöschen" }, 803{ "Do you want to\nclear the sync\ninfo of profile\n%1?\n","Möchten Sie wirklich\ndie Sync-Info für Profil\n%1?\nlöschen" },
804{ "Sorry, no valid port.Syncing cancelled.","Sorry, kein gültiger Port. Syncing abgebrochen." }, 804{ "Sorry, no valid port.Syncing cancelled.","Sorry, kein gültiger Port. Syncing abgebrochen." },
805{ "Remote port number:\n(May be: 1 - 65535)","Ferne Port Nummer:\n(Darf sein: 1 - 65535)" }, 805{ "Remote port number:\n(May be: 1 - 65535)","Ferne Port Nummer:\n(Darf sein: 1 - 65535)" },
806{ "Writing back file ...","Schreibe Datei zurück..." }, 806{ "Writing back file ...","Schreibe Datei zurück..." },
807{ "Sending back file ...","Sende Datei zurück..." }, 807{ "Sending back file ...","Sende Datei zurück..." },
808{ "Eeek, there I am ticklish!","Huch, da bin ich kitzlig!" }, 808{ "Eeek, there I am ticklish!","Huch, da bin ich kitzlig!" },
809{ "Save using LOCAL storage","Speichere nutze LOCAL Pfad" }, 809{ "Save using LOCAL storage","Speichere nutze LOCAL Pfad" },
810{ "...and %1 more\ncontact(s) selected","...und noch %1 Kontakte\n mehr ausgewählt" }, 810{ "...and %1 more\ncontact(s) selected","...und noch %1 Kontakte\n mehr ausgewählt" },
811{ "Do you really\nwant to delete the\nsetected contact(s)?\n\n","Möchten Sie wirklich\ndie ausgewählten\nKontakte löschen?\n\n" }, 811{ "Do you really\nwant to delete the\nsetected contact(s)?\n\n","Möchten Sie wirklich\ndie ausgewählten\nKontakte löschen?\n\n" },
812{ "%1 contacts\nsuccessfully\nimported.","%1 Kontakte\nerfolgreich\nimportiert." }, 812{ "%1 contacts\nsuccessfully\nimported.","%1 Kontakte\nerfolgreich\nimportiert." },
813{ "Import this contact?","Importiere diesen Kontakt?" }, 813{ "Import this contact?","Importiere diesen Kontakt?" },
814{ "Import all!","Importiere alle!" }, 814{ "Import all!","Importiere alle!" },
815{ "Loading addressbook data ... please wait","Lade Adressbuchdaten ... bitte warten" }, 815{ "Loading addressbook data ... please wait","Lade Adressbuchdaten ... bitte warten" },
816{ "Import Format","Import Format" }, 816{ "Import Format","Import Format" },
817{ "Select import format!\nDefault and standard is Utf8.\nLatin1 may be the right\nfor some West Europian languages.","Wähle Import Format!\nDefault und Standard ist Utf8.\nLatin1 kann das richtige für\nWesteuropäische Sprachen sein." }, 817{ "Select import format!\nDefault and standard is Utf8.\nLatin1 may be the right\nfor some West Europian languages.","Wähle Import Format!\nDefault und Standard ist Utf8.\nLatin1 kann das richtige für\nWesteuropäische Sprachen sein." },
818{ "Home2","Privat2" }, 818{ "Home2","Privat2" },
819{ "Work2","Arbeit2" }, 819{ "Work2","Arbeit2" },
820{ "Fax (Work)","Fax (Arbeit)" }, 820{ "Fax (Work)","Fax (Arbeit)" },
821{ "Fax (Home)","Fax (Privat)" }, 821{ "Fax (Home)","Fax (Privat)" },
822{ "Assistent","Sekretär(in)" }, 822{ "Assistent","Sekretär(in)" },
823{ "Company","Firma" }, 823{ "Company","Firma" },
824{ "Mobile2 (Work)","Handy2 (Arbeit)" }, 824{ "Mobile2 (work)","Handy2 (Arbeit)" },
825{ "Mobile2 (car)","Handy2 (Auto)" },
825{ "Callback","Rückruf" }, 826{ "Callback","Rückruf" },
826{ "Fax (Other)","Fax (Anderes)" }, 827{ "Fax (Other)","Fax (Anderes)" },
827{ "Primary","Bevorzugt" }, 828{ "Primary","Bevorzugt" },
829{ "Mobile (Home)","Handy (Privat)" },
830{ "","" },
831{ "","" },
832{ "","" },
828{ "","" }, 833{ "","" },
829{ "","" }, 834{ "","" },
830{ "","" }, 835{ "","" },
831{ "","" }, 836{ "","" },
832{ "","" }, \ No newline at end of file 837{ "","" }, \ No newline at end of file
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp
index 661bdf6..19c78ee 100644
--- a/kabc/addressee.cpp
+++ b/kabc/addressee.cpp
@@ -938,275 +938,275 @@ void Addressee::setNickName( const QString &nickName )
938 mData->empty = false; 938 mData->empty = false;
939 mData->nickName = nickName; 939 mData->nickName = nickName;
940} 940}
941 941
942QString Addressee::nickName() const 942QString Addressee::nickName() const
943{ 943{
944 return mData->nickName; 944 return mData->nickName;
945} 945}
946 946
947QString Addressee::nickNameLabel() 947QString Addressee::nickNameLabel()
948{ 948{
949 return i18n("Nick Name"); 949 return i18n("Nick Name");
950} 950}
951 951
952 952
953void Addressee::setBirthday( const QDateTime &birthday ) 953void Addressee::setBirthday( const QDateTime &birthday )
954{ 954{
955 if ( birthday == mData->birthday ) return; 955 if ( birthday == mData->birthday ) return;
956 detach(); 956 detach();
957 mData->empty = false; 957 mData->empty = false;
958 mData->birthday = birthday; 958 mData->birthday = birthday;
959} 959}
960 960
961QDateTime Addressee::birthday() const 961QDateTime Addressee::birthday() const
962{ 962{
963 return mData->birthday; 963 return mData->birthday;
964} 964}
965 965
966QString Addressee::birthdayLabel() 966QString Addressee::birthdayLabel()
967{ 967{
968 return i18n("Birthday"); 968 return i18n("Birthday");
969} 969}
970 970
971 971
972QString Addressee::homeAddressStreetLabel() 972QString Addressee::homeAddressStreetLabel()
973{ 973{
974 return i18n("Home Address Street"); 974 return i18n("Home Address Street");
975} 975}
976 976
977 977
978QString Addressee::homeAddressLocalityLabel() 978QString Addressee::homeAddressLocalityLabel()
979{ 979{
980 return i18n("Home Address Locality"); 980 return i18n("Home Address Locality");
981} 981}
982 982
983 983
984QString Addressee::homeAddressRegionLabel() 984QString Addressee::homeAddressRegionLabel()
985{ 985{
986 return i18n("Home Address Region"); 986 return i18n("Home Address Region");
987} 987}
988 988
989 989
990QString Addressee::homeAddressPostalCodeLabel() 990QString Addressee::homeAddressPostalCodeLabel()
991{ 991{
992 return i18n("Home Address Postal Code"); 992 return i18n("Home Address Postal Code");
993} 993}
994 994
995 995
996QString Addressee::homeAddressCountryLabel() 996QString Addressee::homeAddressCountryLabel()
997{ 997{
998 return i18n("Home Address Country"); 998 return i18n("Home Address Country");
999} 999}
1000 1000
1001 1001
1002QString Addressee::homeAddressLabelLabel() 1002QString Addressee::homeAddressLabelLabel()
1003{ 1003{
1004 return i18n("Home Address Label"); 1004 return i18n("Home Address Label");
1005} 1005}
1006 1006
1007 1007
1008QString Addressee::businessAddressStreetLabel() 1008QString Addressee::businessAddressStreetLabel()
1009{ 1009{
1010 return i18n("Business Address Street"); 1010 return i18n("Business Address Street");
1011} 1011}
1012 1012
1013 1013
1014QString Addressee::businessAddressLocalityLabel() 1014QString Addressee::businessAddressLocalityLabel()
1015{ 1015{
1016 return i18n("Business Address Locality"); 1016 return i18n("Business Address Locality");
1017} 1017}
1018 1018
1019 1019
1020QString Addressee::businessAddressRegionLabel() 1020QString Addressee::businessAddressRegionLabel()
1021{ 1021{
1022 return i18n("Business Address Region"); 1022 return i18n("Business Address Region");
1023} 1023}
1024 1024
1025 1025
1026QString Addressee::businessAddressPostalCodeLabel() 1026QString Addressee::businessAddressPostalCodeLabel()
1027{ 1027{
1028 return i18n("Business Address Postal Code"); 1028 return i18n("Business Address Postal Code");
1029} 1029}
1030 1030
1031 1031
1032QString Addressee::businessAddressCountryLabel() 1032QString Addressee::businessAddressCountryLabel()
1033{ 1033{
1034 return i18n("Business Address Country"); 1034 return i18n("Business Address Country");
1035} 1035}
1036 1036
1037 1037
1038QString Addressee::businessAddressLabelLabel() 1038QString Addressee::businessAddressLabelLabel()
1039{ 1039{
1040 return i18n("Business Address Label"); 1040 return i18n("Business Address Label");
1041} 1041}
1042 1042
1043 1043
1044QString Addressee::homePhoneLabel() 1044QString Addressee::homePhoneLabel()
1045{ 1045{
1046 return i18n("Home Phone"); 1046 return i18n("Home Phone");
1047} 1047}
1048 1048
1049 1049
1050QString Addressee::businessPhoneLabel() 1050QString Addressee::businessPhoneLabel()
1051{ 1051{
1052 return i18n("Work Phone"); 1052 return i18n("Work Phone");
1053} 1053}
1054 1054
1055 1055
1056QString Addressee::mobilePhoneLabel() 1056QString Addressee::mobilePhoneLabel()
1057{ 1057{
1058 return i18n("Mobile Phone"); 1058 return i18n("Mobile Phone");
1059} 1059}
1060QString Addressee::mobileWorkPhoneLabel() 1060QString Addressee::mobileWorkPhoneLabel()
1061{ 1061{
1062 return i18n("Mobile2 (work)"); 1062 return i18n("Mobile2 (work)");
1063} 1063}
1064QString Addressee::mobileHomePhoneLabel() 1064QString Addressee::mobileHomePhoneLabel()
1065{ 1065{
1066 return i18n("Mobile"); 1066 return i18n("Mobile (Home)");
1067} 1067}
1068 1068
1069 1069
1070QString Addressee::homeFaxLabel() 1070QString Addressee::homeFaxLabel()
1071{ 1071{
1072 return i18n("Fax (Home)"); 1072 return i18n("Fax (Home)");
1073} 1073}
1074 1074
1075 1075
1076QString Addressee::businessFaxLabel() 1076QString Addressee::businessFaxLabel()
1077{ 1077{
1078 return i18n("Fax (Work)"); 1078 return i18n("Fax (Work)");
1079} 1079}
1080 1080
1081 1081
1082QString Addressee::carPhoneLabel() 1082QString Addressee::carPhoneLabel()
1083{ 1083{
1084 return i18n("Mobile2 (work)"); 1084 return i18n("Mobile2 (car)");
1085} 1085}
1086 1086
1087 1087
1088QString Addressee::isdnLabel() 1088QString Addressee::isdnLabel()
1089{ 1089{
1090 return i18n("ISDN"); 1090 return i18n("ISDN");
1091} 1091}
1092 1092
1093 1093
1094QString Addressee::pagerLabel() 1094QString Addressee::pagerLabel()
1095{ 1095{
1096 return i18n("Pager"); 1096 return i18n("Pager");
1097} 1097}
1098 1098
1099QString Addressee::sipLabel() 1099QString Addressee::sipLabel()
1100{ 1100{
1101 return i18n("SIP"); 1101 return i18n("SIP");
1102} 1102}
1103 1103
1104QString Addressee::emailLabel() 1104QString Addressee::emailLabel()
1105{ 1105{
1106 return i18n("Email Address"); 1106 return i18n("Email Address");
1107} 1107}
1108 1108
1109 1109
1110void Addressee::setMailer( const QString &mailer ) 1110void Addressee::setMailer( const QString &mailer )
1111{ 1111{
1112 if ( mailer == mData->mailer ) return; 1112 if ( mailer == mData->mailer ) return;
1113 detach(); 1113 detach();
1114 mData->empty = false; 1114 mData->empty = false;
1115 mData->mailer = mailer; 1115 mData->mailer = mailer;
1116} 1116}
1117 1117
1118QString Addressee::mailer() const 1118QString Addressee::mailer() const
1119{ 1119{
1120 return mData->mailer; 1120 return mData->mailer;
1121} 1121}
1122 1122
1123QString Addressee::mailerLabel() 1123QString Addressee::mailerLabel()
1124{ 1124{
1125 return i18n("Mail Client"); 1125 return i18n("Mail Client");
1126} 1126}
1127 1127
1128 1128
1129void Addressee::setTimeZone( const TimeZone &timeZone ) 1129void Addressee::setTimeZone( const TimeZone &timeZone )
1130{ 1130{
1131 if ( timeZone == mData->timeZone ) return; 1131 if ( timeZone == mData->timeZone ) return;
1132 detach(); 1132 detach();
1133 mData->empty = false; 1133 mData->empty = false;
1134 mData->timeZone = timeZone; 1134 mData->timeZone = timeZone;
1135} 1135}
1136 1136
1137TimeZone Addressee::timeZone() const 1137TimeZone Addressee::timeZone() const
1138{ 1138{
1139 return mData->timeZone; 1139 return mData->timeZone;
1140} 1140}
1141 1141
1142QString Addressee::timeZoneLabel() 1142QString Addressee::timeZoneLabel()
1143{ 1143{
1144 return i18n("Time Zone"); 1144 return i18n("Time Zone");
1145} 1145}
1146 1146
1147 1147
1148void Addressee::setGeo( const Geo &geo ) 1148void Addressee::setGeo( const Geo &geo )
1149{ 1149{
1150 if ( geo == mData->geo ) return; 1150 if ( geo == mData->geo ) return;
1151 detach(); 1151 detach();
1152 mData->empty = false; 1152 mData->empty = false;
1153 mData->geo = geo; 1153 mData->geo = geo;
1154} 1154}
1155 1155
1156Geo Addressee::geo() const 1156Geo Addressee::geo() const
1157{ 1157{
1158 return mData->geo; 1158 return mData->geo;
1159} 1159}
1160 1160
1161QString Addressee::geoLabel() 1161QString Addressee::geoLabel()
1162{ 1162{
1163 return i18n("Geographic Position"); 1163 return i18n("Geographic Position");
1164} 1164}
1165 1165
1166 1166
1167void Addressee::setTitle( const QString &title ) 1167void Addressee::setTitle( const QString &title )
1168{ 1168{
1169 if ( title == mData->title ) return; 1169 if ( title == mData->title ) return;
1170 detach(); 1170 detach();
1171 mData->empty = false; 1171 mData->empty = false;
1172 mData->title = title; 1172 mData->title = title;
1173} 1173}
1174 1174
1175QString Addressee::title() const 1175QString Addressee::title() const
1176{ 1176{
1177 return mData->title; 1177 return mData->title;
1178} 1178}
1179 1179
1180QString Addressee::titleLabel() 1180QString Addressee::titleLabel()
1181{ 1181{
1182 return i18n("Title"); 1182 return i18n("Title");
1183} 1183}
1184 1184
1185 1185
1186void Addressee::setRole( const QString &role ) 1186void Addressee::setRole( const QString &role )
1187{ 1187{
1188 if ( role == mData->role ) return; 1188 if ( role == mData->role ) return;
1189 detach(); 1189 detach();
1190 mData->empty = false; 1190 mData->empty = false;
1191 mData->role = role; 1191 mData->role = role;
1192} 1192}
1193 1193
1194QString Addressee::role() const 1194QString Addressee::role() const
1195{ 1195{
1196 return mData->role; 1196 return mData->role;
1197} 1197}
1198 1198
1199QString Addressee::roleLabel() 1199QString Addressee::roleLabel()
1200{ 1200{
1201 return i18n("Role"); 1201 return i18n("Role");
1202} 1202}
1203 1203
1204 1204
1205void Addressee::setOrganization( const QString &organization ) 1205void Addressee::setOrganization( const QString &organization )
1206{ 1206{
1207 if ( organization == mData->organization ) return; 1207 if ( organization == mData->organization ) return;
1208 detach(); 1208 detach();
1209 mData->empty = false; 1209 mData->empty = false;
1210 mData->organization = organization; 1210 mData->organization = organization;
1211} 1211}
1212 1212
diff --git a/kabc/plugins/qtopia/qtopiaconverter.cpp b/kabc/plugins/qtopia/qtopiaconverter.cpp
index 39d366b..9693a68 100644
--- a/kabc/plugins/qtopia/qtopiaconverter.cpp
+++ b/kabc/plugins/qtopia/qtopiaconverter.cpp
@@ -76,286 +76,286 @@ QString QtopiaConverter::categoriesToNumber( const QStringList &list, const QStr
76 bool found = false; 76 bool found = false;
77 for ( QStringList::ConstIterator listIt = list.begin(); listIt != list.end(); ++listIt ) { 77 for ( QStringList::ConstIterator listIt = list.begin(); listIt != list.end(); ++listIt ) {
78 /* skip empty category name */ 78 /* skip empty category name */
79 if ( (*listIt).isEmpty() ) continue; 79 if ( (*listIt).isEmpty() ) continue;
80 80
81 found = false; 81 found = false;
82 for ( catIt = categories.begin(); catIt != categories.end(); ++catIt ) { 82 for ( catIt = categories.begin(); catIt != categories.end(); ++catIt ) {
83 /* 83 /*
84 * We currently do not take app into account 84 * We currently do not take app into account
85 * if name matches and the id isn't already in dummy we'll add it 85 * if name matches and the id isn't already in dummy we'll add it
86 */ 86 */
87 if ( (*catIt).name() == (*listIt) && !dummy.contains(( *catIt).id() ) ) { // the same name 87 if ( (*catIt).name() == (*listIt) && !dummy.contains(( *catIt).id() ) ) { // the same name
88 found= true; 88 found= true;
89 dummy << (*catIt).id(); 89 dummy << (*catIt).id();
90 } 90 }
91 } 91 }
92 /* if not found and the category is not empty 92 /* if not found and the category is not empty
93 * 93 *
94 * generate a new category and start over again 94 * generate a new category and start over again
95 * ugly goto to reiterate 95 * ugly goto to reiterate
96 */ 96 */
97 97
98 if ( !found && !(*listIt).isEmpty() ){ 98 if ( !found && !(*listIt).isEmpty() ){
99 m_edit->addCategory( app, (*listIt) ); // generate a new category 99 m_edit->addCategory( app, (*listIt) ); // generate a new category
100 goto startover; 100 goto startover;
101 } 101 }
102 } 102 }
103 103
104 return dummy.join(";"); 104 return dummy.join(";");
105} 105}
106 106
107 107
108// FROM TT timeconversion.cpp GPLed 108// FROM TT timeconversion.cpp GPLed
109QDate QtopiaConverter::fromString( const QString &datestr ) 109QDate QtopiaConverter::fromString( const QString &datestr )
110{ 110{
111 if (datestr.isEmpty() ) 111 if (datestr.isEmpty() )
112 return QDate(); 112 return QDate();
113 113
114 int monthPos = datestr.find('.'); 114 int monthPos = datestr.find('.');
115 int yearPos = datestr.find('.', monthPos+1 ); 115 int yearPos = datestr.find('.', monthPos+1 );
116 if ( monthPos == -1 || yearPos == -1 ) { 116 if ( monthPos == -1 || yearPos == -1 ) {
117 return QDate(); 117 return QDate();
118 } 118 }
119 int d = datestr.left( monthPos ).toInt(); 119 int d = datestr.left( monthPos ).toInt();
120 int m = datestr.mid( monthPos+1, yearPos - monthPos - 1 ).toInt(); 120 int m = datestr.mid( monthPos+1, yearPos - monthPos - 1 ).toInt();
121 int y = datestr.mid( yearPos+1 ).toInt(); 121 int y = datestr.mid( yearPos+1 ).toInt();
122 QDate date ( y,m,d ); 122 QDate date ( y,m,d );
123 123
124 124
125 return date; 125 return date;
126} 126}
127 127
128QDate QtopiaConverter::dateFromString( const QString& s ) 128QDate QtopiaConverter::dateFromString( const QString& s )
129{ 129{
130 QDate date; 130 QDate date;
131 131
132 if ( s.isEmpty() ) 132 if ( s.isEmpty() )
133 return date; 133 return date;
134 134
135 // Be backward compatible to old Opie format: 135 // Be backward compatible to old Opie format:
136 // Try to load old format. If it fails, try new ISO-Format! 136 // Try to load old format. If it fails, try new ISO-Format!
137 date = fromString ( s ); 137 date = fromString ( s );
138 if ( date.isValid() ) 138 if ( date.isValid() )
139 return date; 139 return date;
140 140
141 // Read ISO-Format (YYYYMMDD) 141 // Read ISO-Format (YYYYMMDD)
142 int year = s.mid(0, 4).toInt(); 142 int year = s.mid(0, 4).toInt();
143 int month = s.mid(4,2).toInt(); 143 int month = s.mid(4,2).toInt();
144 int day = s.mid(6,2).toInt(); 144 int day = s.mid(6,2).toInt();
145 145
146 // do some quick sanity checking 146 // do some quick sanity checking
147 if ( year < 1900 || year > 3000 ) 147 if ( year < 1900 || year > 3000 )
148 return date; 148 return date;
149 149
150 if ( month < 0 || month > 12 ) 150 if ( month < 0 || month > 12 )
151 return date; 151 return date;
152 152
153 if ( day < 0 || day > 31 ) 153 if ( day < 0 || day > 31 )
154 return date; 154 return date;
155 155
156 156
157 date.setYMD( year, month, day ); 157 date.setYMD( year, month, day );
158 158
159 if ( !date.isValid() ) 159 if ( !date.isValid() )
160 return QDate(); 160 return QDate();
161 161
162 162
163 return date; 163 return date;
164} 164}
165QString QtopiaConverter::dateToString( const QDate &d ) 165QString QtopiaConverter::dateToString( const QDate &d )
166{ 166{
167 if ( d.isNull() || !d.isValid() ) 167 if ( d.isNull() || !d.isValid() )
168 return QString::null; 168 return QString::null;
169 169
170 // ISO format in year, month, day (YYYYMMDD); e.g. 20021231 170 // ISO format in year, month, day (YYYYMMDD); e.g. 20021231
171 QString year = QString::number( d.year() ); 171 QString year = QString::number( d.year() );
172 QString month = QString::number( d.month() ); 172 QString month = QString::number( d.month() );
173 month = month.rightJustify( 2, '0' ); 173 month = month.rightJustify( 2, '0' );
174 QString day = QString::number( d.day() ); 174 QString day = QString::number( d.day() );
175 day = day.rightJustify( 2, '0' ); 175 day = day.rightJustify( 2, '0' );
176 176
177 QString str = year + month + day; 177 QString str = year + month + day;
178 178
179 return str; 179 return str;
180} 180}
181 181
182bool QtopiaConverter::qtopiaToAddressee( const QDomElement& el, Addressee &adr ) 182bool QtopiaConverter::qtopiaToAddressee( const QDomElement& el, Addressee &adr )
183{ 183{
184 { //LR 184 { //LR
185 185
186 adr.setUid( el.attribute("Uid" ) ); 186 adr.setUid( el.attribute("Uid" ) );
187 adr.setFamilyName( el.attribute( "LastName" ) ); 187 adr.setFamilyName( el.attribute( "LastName" ) );
188 adr.setGivenName( el.attribute( "FirstName" ) ); 188 adr.setGivenName( el.attribute( "FirstName" ) );
189 adr.setAdditionalName( el.attribute( "MiddleName" ) ); 189 adr.setAdditionalName( el.attribute( "MiddleName" ) );
190 adr.setSuffix( el.attribute( "Suffix" ) ); 190 adr.setSuffix( el.attribute( "Suffix" ) );
191 adr.setNickName( el.attribute( "Nickname" ) ); 191 adr.setNickName( el.attribute( "Nickname" ) );
192 192
193 QDate date = dateFromString( el.attribute( "Birthday" ) ); 193 QDate date = dateFromString( el.attribute( "Birthday" ) );
194 if ( date.isValid() ) 194 if ( date.isValid() )
195 adr.setBirthday( date ); 195 adr.setBirthday( date );
196 196
197 adr.setRole( el.attribute( "JobTitle" ) ); 197 adr.setRole( el.attribute( "JobTitle" ) );
198 if ( !el.attribute( "FileAs" ).isEmpty() ) 198 if ( !el.attribute( "FileAs" ).isEmpty() )
199 adr.setFormattedName( el.attribute( "FileAs" ) ); 199 adr.setFormattedName( el.attribute( "FileAs" ) );
200 200
201 adr.setOrganization( el.attribute( "Company" ) ); 201 adr.setOrganization( el.attribute( "Company" ) );
202 202
203 KABC::PhoneNumber businessPhoneNum( el.attribute( "BusinessPhone" ), 203 KABC::PhoneNumber businessPhoneNum( el.attribute( "BusinessPhone" ),
204 KABC::PhoneNumber::Work ); 204 KABC::PhoneNumber::Work | KABC::PhoneNumber::Pref );
205 KABC::PhoneNumber businessFaxNum( el.attribute( "BusinessFax" ), 205 KABC::PhoneNumber businessFaxNum( el.attribute( "BusinessFax" ),
206 KABC::PhoneNumber::Work | KABC::PhoneNumber::Fax ); 206 KABC::PhoneNumber::Work | KABC::PhoneNumber::Fax );
207 KABC::PhoneNumber businessMobile( el.attribute( "BusinessMobile" ), 207 KABC::PhoneNumber businessMobile( el.attribute( "BusinessMobile" ),
208 KABC::PhoneNumber::Work | KABC::PhoneNumber::Cell ); 208 KABC::PhoneNumber::Car );
209 KABC::PhoneNumber businessPager( el.attribute( "BusinessPager" ), 209 KABC::PhoneNumber businessPager( el.attribute( "BusinessPager" ),
210 KABC::PhoneNumber::Work | KABC::PhoneNumber::Pager ); 210 KABC::PhoneNumber::Pager );
211 if ( !businessPhoneNum.number().isEmpty() ) 211 if ( !businessPhoneNum.number().isEmpty() )
212 adr.insertPhoneNumber( businessPhoneNum ); 212 adr.insertPhoneNumber( businessPhoneNum );
213 if ( !businessFaxNum.number().isEmpty() ) 213 if ( !businessFaxNum.number().isEmpty() )
214 adr.insertPhoneNumber( businessFaxNum ); 214 adr.insertPhoneNumber( businessFaxNum );
215 if ( !businessMobile.number().isEmpty() ) 215 if ( !businessMobile.number().isEmpty() )
216 adr.insertPhoneNumber( businessMobile ); 216 adr.insertPhoneNumber( businessMobile );
217 if ( !businessPager.number().isEmpty() ) 217 if ( !businessPager.number().isEmpty() )
218 adr.insertPhoneNumber( businessPager ); 218 adr.insertPhoneNumber( businessPager );
219 219
220 // Handle multiple mail addresses 220 // Handle multiple mail addresses
221 QString DefaultEmail = el.attribute( "DefaultEmail" ); 221 QString DefaultEmail = el.attribute( "DefaultEmail" );
222 if ( !DefaultEmail.isEmpty() ) 222 if ( !DefaultEmail.isEmpty() )
223 adr.insertEmail( DefaultEmail, true ); // preferred 223 adr.insertEmail( DefaultEmail, true ); // preferred
224 224
225 QStringList Emails = QStringList::split(" ",el.attribute("Emails")); 225 QStringList Emails = QStringList::split(" ",el.attribute("Emails"));
226 int i; 226 int i;
227 for (i = 0;i < Emails.count();++i) { 227 for (i = 0;i < Emails.count();++i) {
228 if ( Emails[i] != DefaultEmail ) 228 if ( Emails[i] != DefaultEmail )
229 adr.insertEmail( Emails[i], false ); 229 adr.insertEmail( Emails[i], false );
230 } 230 }
231 231
232 KABC::PhoneNumber homePhoneNum( el.attribute( "HomePhone" ), 232 KABC::PhoneNumber homePhoneNum( el.attribute( "HomePhone" ),
233 KABC::PhoneNumber::Home ); 233 KABC::PhoneNumber::Home | KABC::PhoneNumber::Pref);
234 KABC::PhoneNumber homeFax( el.attribute( "HomeFax" ), 234 KABC::PhoneNumber homeFax( el.attribute( "HomeFax" ),
235 KABC::PhoneNumber::Home | KABC::PhoneNumber::Fax ); 235 KABC::PhoneNumber::Home | KABC::PhoneNumber::Fax );
236 236
237 KABC::PhoneNumber homeMobile( el.attribute( "HomeMobile" ), 237 KABC::PhoneNumber homeMobile( el.attribute( "HomeMobile" ),
238 KABC::PhoneNumber::Cell ); 238 KABC::PhoneNumber::Cell );
239 239
240 if ( !homePhoneNum.number().isEmpty() ) 240 if ( !homePhoneNum.number().isEmpty() )
241 adr.insertPhoneNumber( homePhoneNum ); 241 adr.insertPhoneNumber( homePhoneNum );
242 if ( !homeFax.number().isEmpty() ) 242 if ( !homeFax.number().isEmpty() )
243 adr.insertPhoneNumber( homeFax ); 243 adr.insertPhoneNumber( homeFax );
244 if ( !homeMobile.number().isEmpty() ) 244 if ( !homeMobile.number().isEmpty() )
245 adr.insertPhoneNumber( homeMobile ); 245 adr.insertPhoneNumber( homeMobile );
246 246
247 KABC::Address business( KABC::Address::Work ); 247 KABC::Address business( KABC::Address::Work );
248 business.setStreet( el.attribute( "BusinessStreet" ) ); 248 business.setStreet( el.attribute( "BusinessStreet" ) );
249 business.setLocality( el.attribute( "BusinessCity" ) ); 249 business.setLocality( el.attribute( "BusinessCity" ) );
250 business.setRegion( el.attribute( "BusinessState" ) ); 250 business.setRegion( el.attribute( "BusinessState" ) );
251 business.setPostalCode( el.attribute( "BusinessZip" ) ); 251 business.setPostalCode( el.attribute( "BusinessZip" ) );
252 business.setCountry( el.attribute( "BusinessCountry" ) ); 252 business.setCountry( el.attribute( "BusinessCountry" ) );
253 253
254 if ( !business.isEmpty() ) 254 if ( !business.isEmpty() )
255 adr.insertAddress( business ); 255 adr.insertAddress( business );
256 256
257 KABC::Address home( KABC::Address::Home ); 257 KABC::Address home( KABC::Address::Home );
258 home.setStreet( el.attribute( "HomeStreet" ) ); 258 home.setStreet( el.attribute( "HomeStreet" ) );
259 home.setLocality( el.attribute( "HomeCity" ) ); 259 home.setLocality( el.attribute( "HomeCity" ) );
260 home.setRegion( el.attribute( "HomeState" ) ); 260 home.setRegion( el.attribute( "HomeState" ) );
261 home.setPostalCode( el.attribute( "HomeZip" ) ); 261 home.setPostalCode( el.attribute( "HomeZip" ) );
262 home.setCountry( el.attribute( "HomeCountry" ) ); 262 home.setCountry( el.attribute( "HomeCountry" ) );
263 263
264 if ( !home.isEmpty() ) 264 if ( !home.isEmpty() )
265 adr.insertAddress( home ); 265 adr.insertAddress( home );
266 266
267 adr.setNickName( el.attribute( "Nickname" ) ); 267 adr.setNickName( el.attribute( "Nickname" ) );
268 adr.setNote( el.attribute( "Notes" ) ); 268 adr.setNote( el.attribute( "Notes" ) );
269 269
270 { 270 {
271 QStringList categories = QStringList::split(";", el.attribute("Categories" ) ); 271 QStringList categories = QStringList::split(";", el.attribute("Categories" ) );
272 QString cat; 272 QString cat;
273 QStringList added; 273 QStringList added;
274 for ( uint i = 0; i < categories.count(); i++ ) { 274 for ( uint i = 0; i < categories.count(); i++ ) {
275 cat = m_edit->categoryById( categories[ i ], "Contacts" ); 275 cat = m_edit->categoryById( categories[ i ], "Contacts" );
276 276
277 // if name is not empty and we did not add the 277 // if name is not empty and we did not add the
278 // cat try to repair broken files 278 // cat try to repair broken files
279 if ( !cat.isEmpty() && !added.contains( cat ) ) { 279 if ( !cat.isEmpty() && !added.contains( cat ) ) {
280 adr.insertCategory( cat ); 280 adr.insertCategory( cat );
281 added << cat; 281 added << cat;
282 } 282 }
283 } 283 }
284 } 284 }
285 285
286 if ( !el.attribute( "Department" ).isEmpty() ) 286 if ( !el.attribute( "Department" ).isEmpty() )
287 adr.insertCustom( "KADDRESSBOOK", "X-Department", el.attribute( "Department" ) ); 287 adr.insertCustom( "KADDRESSBOOK", "X-Department", el.attribute( "Department" ) );
288 if ( !el.attribute( "HomeWebPage" ).isEmpty() ) 288 if ( !el.attribute( "HomeWebPage" ).isEmpty() )
289 adr.insertCustom( "opie", "HomeWebPage", el.attribute( "HomeWebPage" ) ); 289 adr.insertCustom( "opie", "HomeWebPage", el.attribute( "HomeWebPage" ) );
290 if ( !el.attribute( "Spouse" ).isEmpty() ) 290 if ( !el.attribute( "Spouse" ).isEmpty() )
291 adr.insertCustom( "KADDRESSBOOK", "X-SpousesName", el.attribute( "Spouse" ) ); 291 adr.insertCustom( "KADDRESSBOOK", "X-SpousesName", el.attribute( "Spouse" ) );
292 if ( !el.attribute( "Gender" ).isEmpty() ) { 292 if ( !el.attribute( "Gender" ).isEmpty() ) {
293 if ( el.attribute( "Gender" ) == "1" ) 293 if ( el.attribute( "Gender" ) == "1" )
294 adr.insertCustom( "KADDRESSBOOK", "X-Gender", "male" ); 294 adr.insertCustom( "KADDRESSBOOK", "X-Gender", "male" );
295 else if ( el.attribute( "Gender" ) == "2" ) 295 else if ( el.attribute( "Gender" ) == "2" )
296 adr.insertCustom( "KADDRESSBOOK", "X-Gender", "female" ); 296 adr.insertCustom( "KADDRESSBOOK", "X-Gender", "female" );
297 } 297 }
298 QDate ann = dateFromString( el.attribute( "Anniversary" ) ); 298 QDate ann = dateFromString( el.attribute( "Anniversary" ) );
299 if ( ann.isValid() ) { 299 if ( ann.isValid() ) {
300 QString dt = KGlobal::locale()->formatDate(ann, true, KLocale::ISODate); 300 QString dt = KGlobal::locale()->formatDate(ann, true, KLocale::ISODate);
301 adr.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt ); 301 adr.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt );
302 } 302 }
303 303
304 if ( !el.attribute( "Children" ).isEmpty() ) 304 if ( !el.attribute( "Children" ).isEmpty() )
305 adr.insertCustom("KADDRESSBOOK", "X-Children", el.attribute("Children") ); 305 adr.insertCustom("KADDRESSBOOK", "X-Children", el.attribute("Children") );
306 if ( !el.attribute( "Office" ).isEmpty() ) 306 if ( !el.attribute( "Office" ).isEmpty() )
307 adr.insertCustom("KADDRESSBOOK", "X-Office", el.attribute("Office") ); 307 adr.insertCustom("KADDRESSBOOK", "X-Office", el.attribute("Office") );
308 if ( !el.attribute( "Profession" ).isEmpty() ) 308 if ( !el.attribute( "Profession" ).isEmpty() )
309 adr.insertCustom("KADDRESSBOOK", "X-Profession", el.attribute("Profession") ); 309 adr.insertCustom("KADDRESSBOOK", "X-Profession", el.attribute("Profession") );
310 if ( !el.attribute( "Assistant" ).isEmpty() ) 310 if ( !el.attribute( "Assistant" ).isEmpty() )
311 adr.insertCustom("KADDRESSBOOK", "X-AssistantsName", el.attribute("Assistant") ); 311 adr.insertCustom("KADDRESSBOOK", "X-AssistantsName", el.attribute("Assistant") );
312 if ( !el.attribute( "Manager" ).isEmpty() ) 312 if ( !el.attribute( "Manager" ).isEmpty() )
313 adr.insertCustom("KADDRESSBOOK", "X-ManagersName", el.attribute("Manager") ); 313 adr.insertCustom("KADDRESSBOOK", "X-ManagersName", el.attribute("Manager") );
314 314
315 315
316 } 316 }
317 return true; 317 return true;
318} 318}
319 319
320bool QtopiaConverter::addresseeToQtopia( const Addressee &ab, QTextStream *stream ) 320bool QtopiaConverter::addresseeToQtopia( const Addressee &ab, QTextStream *stream )
321{ 321{
322 *stream << "<Contact "; 322 *stream << "<Contact ";
323 *stream << "FirstName=\"" << escape(ab.givenName()) << "\" "; 323 *stream << "FirstName=\"" << escape(ab.givenName()) << "\" ";
324 *stream << "MiddleName=\"" << escape(ab.additionalName()) << "\" "; 324 *stream << "MiddleName=\"" << escape(ab.additionalName()) << "\" ";
325 *stream << "LastName=\"" << escape(ab.familyName()) << "\" "; 325 *stream << "LastName=\"" << escape(ab.familyName()) << "\" ";
326 *stream << "Suffix=\"" << escape(ab.suffix()) << "\" "; 326 *stream << "Suffix=\"" << escape(ab.suffix()) << "\" ";
327 327
328 QString sortStr; 328 QString sortStr;
329 sortStr = ab.formattedName(); 329 sortStr = ab.formattedName();
330 /* is formattedName is empty we use the assembled name as fallback */ 330 /* is formattedName is empty we use the assembled name as fallback */
331 if (sortStr.isEmpty() ) 331 if (sortStr.isEmpty() )
332 sortStr = ab.assembledName(); 332 sortStr = ab.assembledName();
333 *stream << "FileAs=\"" << escape(sortStr) << "\" "; 333 *stream << "FileAs=\"" << escape(sortStr) << "\" ";
334 334
335 *stream << "JobTitle=\"" << escape(ab.role()) << "\" "; 335 *stream << "JobTitle=\"" << escape(ab.role()) << "\" ";
336 *stream << "Department=\"" << escape(ab.custom( "KADDRESSBOOK", "X-Department" )) << "\" "; 336 *stream << "Department=\"" << escape(ab.custom( "KADDRESSBOOK", "X-Department" )) << "\" ";
337 *stream << "Company=\"" << escape(ab.organization()) << "\" "; 337 *stream << "Company=\"" << escape(ab.organization()) << "\" ";
338 338
339 KABC::PhoneNumber businessPhoneNum = ab.phoneNumber(KABC::PhoneNumber::Work ); 339 KABC::PhoneNumber businessPhoneNum = ab.phoneNumber(KABC::PhoneNumber::Work );
340 *stream << "BusinessPhone=\"" << escape( businessPhoneNum.number() ) << "\" "; 340 *stream << "BusinessPhone=\"" << escape( businessPhoneNum.number() ) << "\" ";
341 341
342 KABC::PhoneNumber businessFaxNum = ab.phoneNumber(KABC::PhoneNumber::Work | KABC::PhoneNumber::Fax ); 342 KABC::PhoneNumber businessFaxNum = ab.phoneNumber(KABC::PhoneNumber::Work | KABC::PhoneNumber::Fax );
343 *stream << "BusinessFax=\"" << escape( businessFaxNum.number() )<< "\" "; 343 *stream << "BusinessFax=\"" << escape( businessFaxNum.number() )<< "\" ";
344 344
345 KABC::PhoneNumber businessMobile = ab.phoneNumber(KABC::PhoneNumber::Work | KABC::PhoneNumber::Cell ); 345 KABC::PhoneNumber businessMobile = ab.phoneNumber(KABC::PhoneNumber::Work | KABC::PhoneNumber::Cell );
346 *stream << "BusinessMobile=\"" << escape( businessMobile.number() ) << "\" "; 346 *stream << "BusinessMobile=\"" << escape( businessMobile.number() ) << "\" ";
347 347
348 *stream << "DefaultEmail=\"" << escape( ab.preferredEmail() ) << "\" "; 348 *stream << "DefaultEmail=\"" << escape( ab.preferredEmail() ) << "\" ";
349 QStringList list = ab.emails(); 349 QStringList list = ab.emails();
350 if ( list.count() > 0 ) { 350 if ( list.count() > 0 ) {
351 QStringList::Iterator it = list.begin(); 351 QStringList::Iterator it = list.begin();
352 *stream << "Emails=\"" << escape( *it ); 352 *stream << "Emails=\"" << escape( *it );
353 while (++it != list.end()) 353 while (++it != list.end())
354 *stream << ' ' << escape( *it ); 354 *stream << ' ' << escape( *it );
355 *stream << "\" "; 355 *stream << "\" ";
356 } 356 }
357 357
358 KABC::PhoneNumber homePhoneNum = ab.phoneNumber(KABC::PhoneNumber::Home ); 358 KABC::PhoneNumber homePhoneNum = ab.phoneNumber(KABC::PhoneNumber::Home );
359 *stream << "HomePhone=\"" << escape( homePhoneNum.number() ) << "\" "; 359 *stream << "HomePhone=\"" << escape( homePhoneNum.number() ) << "\" ";
360 360
361 KABC::PhoneNumber homeFax = ab.phoneNumber( KABC::PhoneNumber::Home | KABC::PhoneNumber::Fax ); 361 KABC::PhoneNumber homeFax = ab.phoneNumber( KABC::PhoneNumber::Home | KABC::PhoneNumber::Fax );
diff --git a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp
index 4adcae4..3d429fa 100644
--- a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp
+++ b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp
@@ -7,329 +7,329 @@
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21/* 21/*
22Enhanced Version of the file for platform independent KDE tools. 22Enhanced Version of the file for platform independent KDE tools.
23Copyright (c) 2004 Ulf Schenk 23Copyright (c) 2004 Ulf Schenk
24 24
25$Id$ 25$Id$
26*/ 26*/
27 27
28#include "kglobal.h" 28#include "kglobal.h"
29#include <qregexp.h> 29#include <qregexp.h>
30 30
31 31
32#include "sharpdtmconverter.h" 32#include "sharpdtmconverter.h"
33 33
34#include <sl/slcategories.h> 34#include <sl/slcategories.h>
35#include <libkdepim/ksyncprofile.h> 35#include <libkdepim/ksyncprofile.h>
36//US #include <qpe/categoryselect.h> 36//US #include <qpe/categoryselect.h>
37 37
38 38
39using namespace KABC; 39using namespace KABC;
40using namespace SlCategory; 40using namespace SlCategory;
41 41
42SharpDTMConverter::SharpDTMConverter() : catDB(0) 42SharpDTMConverter::SharpDTMConverter() : catDB(0)
43{ 43{
44} 44}
45 45
46SharpDTMConverter::~SharpDTMConverter() 46SharpDTMConverter::~SharpDTMConverter()
47{ 47{
48 deinit(); 48 deinit();
49} 49}
50 50
51bool SharpDTMConverter::init() 51bool SharpDTMConverter::init()
52{ 52{
53 catDB = new SlCategory::SlCategories(); 53 catDB = new SlCategory::SlCategories();
54 54
55 if (!catDB) 55 if (!catDB)
56 return false; 56 return false;
57 57
58// catDB->load( categoryFileName() ); 58// catDB->load( categoryFileName() );
59 return true; 59 return true;
60} 60}
61 61
62void SharpDTMConverter::deinit() 62void SharpDTMConverter::deinit()
63{ 63{
64 if (catDB) 64 if (catDB)
65 { 65 {
66 delete catDB; 66 delete catDB;
67 catDB = 0; 67 catDB = 0;
68 } 68 }
69} 69}
70 70
71bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBase* database, Addressee &addr ) 71bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBase* database, Addressee &addr )
72{ 72{
73 SlZDataBase* db = (SlZDataBase*)database; 73 SlZDataBase* db = (SlZDataBase*)database;
74 74
75 // for syncing: we need setting of the two fields 75 // for syncing: we need setting of the two fields
76 addr.setExternalUID( QString::number( contact ) ); 76 addr.setExternalUID( QString::number( contact ) );
77 addr.setOriginalExternalUID( QString::number( contact ) ); 77 addr.setOriginalExternalUID( QString::number( contact ) );
78 addr.setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL ); 78 addr.setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL );
79 79
80 80
81 // name 81 // name
82 //qDebug("SharpDTMConverter::sharpToAddressee check if the fileAs transformation works!!"); 82 //qDebug("SharpDTMConverter::sharpToAddressee check if the fileAs transformation works!!");
83 addr.setFormattedName(db->readField(ZdbAdrs::FileAs)); 83 addr.setFormattedName(db->readField(ZdbAdrs::FileAs));
84 //addr.setName(db->readField(ZdbAdrs::FullName)); 84 //addr.setName(db->readField(ZdbAdrs::FullName));
85 85
86 addr.setFamilyName( db->readField(ZdbAdrs::LastName) ); 86 addr.setFamilyName( db->readField(ZdbAdrs::LastName) );
87 addr.setGivenName( db->readField(ZdbAdrs::FirstName) ); 87 addr.setGivenName( db->readField(ZdbAdrs::FirstName) );
88 addr.setAdditionalName( db->readField(ZdbAdrs::MiddleName) ); 88 addr.setAdditionalName( db->readField(ZdbAdrs::MiddleName) );
89 addr.setPrefix( db->readField(ZdbAdrs::Title) ); 89 addr.setPrefix( db->readField(ZdbAdrs::Title) );
90 addr.setSuffix( db->readField(ZdbAdrs::Suffix) ); 90 addr.setSuffix( db->readField(ZdbAdrs::Suffix) );
91 91
92 92
93 QString emailstr = db->readField(ZdbAdrs::Emails); 93 QString emailstr = db->readField(ZdbAdrs::Emails);
94 emailstr.replace( QRegExp(","), " " ); 94 emailstr.replace( QRegExp(","), " " );
95 emailstr.replace( QRegExp(";"), " " ); 95 emailstr.replace( QRegExp(";"), " " );
96 emailstr.replace( QRegExp(":"), " " ); 96 emailstr.replace( QRegExp(":"), " " );
97 //qDebug("SharpDTMConverter::sharpToAddressee whats the character to seperate the emailadresses? %s ", emailstr.latin1()); 97 //qDebug("SharpDTMConverter::sharpToAddressee whats the character to seperate the emailadresses? %s ", emailstr.latin1());
98 QStringList emails = QStringList::split(" ", emailstr.simplifyWhiteSpace()); 98 QStringList emails = QStringList::split(" ", emailstr.simplifyWhiteSpace());
99 bool defE = false; 99 bool defE = false;
100 bool found = false; 100 bool found = false;
101 for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) { 101 for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) {
102 if (found ) 102 if (found )
103 defE = false; 103 defE = false;
104 else 104 else
105 found = defE = ((*it).lower() == db->readField(ZdbAdrs::DefaultEmail).lower()); 105 found = defE = ((*it).lower() == db->readField(ZdbAdrs::DefaultEmail).lower());
106 addr.insertEmail( *it, defE ); 106 addr.insertEmail( *it, defE );
107 } 107 }
108 if ( ! found ) 108 if ( ! found )
109 if (!db->readField(ZdbAdrs::DefaultEmail).isEmpty()) 109 if (!db->readField(ZdbAdrs::DefaultEmail).isEmpty())
110 addr.insertEmail(db->readField(ZdbAdrs::DefaultEmail), true); 110 addr.insertEmail(db->readField(ZdbAdrs::DefaultEmail), true);
111 111
112 // home 112 // home
113 if ((!db->readField(ZdbAdrs::HomeStreet).isEmpty()) || 113 if ((!db->readField(ZdbAdrs::HomeStreet).isEmpty()) ||
114 (!db->readField(ZdbAdrs::HomeCity).isEmpty()) || 114 (!db->readField(ZdbAdrs::HomeCity).isEmpty()) ||
115 (!db->readField(ZdbAdrs::HomeState).isEmpty()) || 115 (!db->readField(ZdbAdrs::HomeState).isEmpty()) ||
116 (!db->readField(ZdbAdrs::HomeZip).isEmpty()) || 116 (!db->readField(ZdbAdrs::HomeZip).isEmpty()) ||
117 (!db->readField(ZdbAdrs::HomeCountry).isEmpty())) 117 (!db->readField(ZdbAdrs::HomeCountry).isEmpty()))
118 { 118 {
119 Address homeaddress; 119 Address homeaddress;
120 homeaddress.setType(Address::Home); 120 homeaddress.setType(Address::Home);
121//US homeaddress.setPostOfficeBox( "" ); 121//US homeaddress.setPostOfficeBox( "" );
122//US homeaddress.setExtended( "" ); 122//US homeaddress.setExtended( "" );
123 homeaddress.setStreet( db->readField(ZdbAdrs::HomeStreet).replace( QRegExp("\\r"), "")); 123 homeaddress.setStreet( db->readField(ZdbAdrs::HomeStreet).replace( QRegExp("\\r"), ""));
124 homeaddress.setLocality( db->readField(ZdbAdrs::HomeCity) ); 124 homeaddress.setLocality( db->readField(ZdbAdrs::HomeCity) );
125 homeaddress.setRegion( db->readField(ZdbAdrs::HomeState) ); 125 homeaddress.setRegion( db->readField(ZdbAdrs::HomeState) );
126 homeaddress.setPostalCode( db->readField(ZdbAdrs::HomeZip) ); 126 homeaddress.setPostalCode( db->readField(ZdbAdrs::HomeZip) );
127 homeaddress.setCountry( db->readField(ZdbAdrs::HomeCountry) ); 127 homeaddress.setCountry( db->readField(ZdbAdrs::HomeCountry) );
128 128
129 addr.insertAddress( homeaddress ); 129 addr.insertAddress( homeaddress );
130 } 130 }
131 131
132 if (!db->readField(ZdbAdrs::HomePhone).isEmpty()) 132 if (!db->readField(ZdbAdrs::HomePhone).isEmpty())
133 { 133 {
134 PhoneNumber homephone; 134 PhoneNumber homephone;
135 homephone.setType( PhoneNumber::Home ); 135 homephone.setType( PhoneNumber::Home | PhoneNumber::Pref );
136 homephone.setNumber( db->readField(ZdbAdrs::HomePhone) ); 136 homephone.setNumber( db->readField(ZdbAdrs::HomePhone) );
137 addr.insertPhoneNumber( homephone ); 137 addr.insertPhoneNumber( homephone );
138 } 138 }
139 139
140 if (!db->readField(ZdbAdrs::HomeFax).isEmpty()) 140 if (!db->readField(ZdbAdrs::HomeFax).isEmpty())
141 { 141 {
142 PhoneNumber homefax; 142 PhoneNumber homefax;
143 homefax.setType( PhoneNumber::Home | PhoneNumber::Fax ); 143 homefax.setType( PhoneNumber::Home | PhoneNumber::Fax );
144 homefax.setNumber( db->readField(ZdbAdrs::HomeFax) ); 144 homefax.setNumber( db->readField(ZdbAdrs::HomeFax) );
145 addr.insertPhoneNumber( homefax ); 145 addr.insertPhoneNumber( homefax );
146 } 146 }
147 147
148 if (!db->readField(ZdbAdrs::HomeMobile).isEmpty()) 148 if (!db->readField(ZdbAdrs::HomeMobile).isEmpty())
149 { 149 {
150 PhoneNumber homemobile; 150 PhoneNumber homemobile;
151 homemobile.setType( PhoneNumber::Home | PhoneNumber::Cell ); 151 homemobile.setType( PhoneNumber::Cell );
152 homemobile.setNumber( db->readField(ZdbAdrs::HomeMobile) ); 152 homemobile.setNumber( db->readField(ZdbAdrs::HomeMobile) );
153 addr.insertPhoneNumber( homemobile ); 153 addr.insertPhoneNumber( homemobile );
154 } 154 }
155 155
156 addr.setUrl( db->readField(ZdbAdrs::HomeWebPage) ); 156 addr.setUrl( db->readField(ZdbAdrs::HomeWebPage) );
157 157
158 158
159 // business 159 // business
160 if ((!db->readField(ZdbAdrs::BusinessStreet).isEmpty()) || 160 if ((!db->readField(ZdbAdrs::BusinessStreet).isEmpty()) ||
161 (!db->readField(ZdbAdrs::BusinessCity).isEmpty()) || 161 (!db->readField(ZdbAdrs::BusinessCity).isEmpty()) ||
162 (!db->readField(ZdbAdrs::BusinessState).isEmpty()) || 162 (!db->readField(ZdbAdrs::BusinessState).isEmpty()) ||
163 (!db->readField(ZdbAdrs::BusinessZip).isEmpty()) || 163 (!db->readField(ZdbAdrs::BusinessZip).isEmpty()) ||
164 (!db->readField(ZdbAdrs::BusinessCountry).isEmpty())) 164 (!db->readField(ZdbAdrs::BusinessCountry).isEmpty()))
165 { 165 {
166 Address businessaddress; 166 Address businessaddress;
167 businessaddress.setType(Address::Work); 167 businessaddress.setType(Address::Work);
168//US businessaddress.setPostOfficeBox( "" ); 168//US businessaddress.setPostOfficeBox( "" );
169//US businessaddress.setExtended( "" ); 169//US businessaddress.setExtended( "" );
170 businessaddress.setStreet( db->readField(ZdbAdrs::BusinessStreet).replace( QRegExp("\\r"), "") ); 170 businessaddress.setStreet( db->readField(ZdbAdrs::BusinessStreet).replace( QRegExp("\\r"), "") );
171 businessaddress.setLocality( db->readField(ZdbAdrs::BusinessCity) ); 171 businessaddress.setLocality( db->readField(ZdbAdrs::BusinessCity) );
172 businessaddress.setRegion( db->readField(ZdbAdrs::BusinessState) ); 172 businessaddress.setRegion( db->readField(ZdbAdrs::BusinessState) );
173 businessaddress.setPostalCode( db->readField(ZdbAdrs::BusinessZip) ); 173 businessaddress.setPostalCode( db->readField(ZdbAdrs::BusinessZip) );
174 businessaddress.setCountry( db->readField(ZdbAdrs::BusinessCountry) ); 174 businessaddress.setCountry( db->readField(ZdbAdrs::BusinessCountry) );
175 175
176 addr.insertAddress( businessaddress ); 176 addr.insertAddress( businessaddress );
177 } 177 }
178 178
179 179
180 if (!db->readField(ZdbAdrs::BusinessPhone).isEmpty()) 180 if (!db->readField(ZdbAdrs::BusinessPhone).isEmpty())
181 { 181 {
182 PhoneNumber businessphone; 182 PhoneNumber businessphone;
183 businessphone.setType( PhoneNumber::Work ); 183 businessphone.setType( PhoneNumber::Work | PhoneNumber::Pref );
184 businessphone.setNumber( db->readField(ZdbAdrs::BusinessPhone) ); 184 businessphone.setNumber( db->readField(ZdbAdrs::BusinessPhone) );
185 addr.insertPhoneNumber( businessphone ); 185 addr.insertPhoneNumber( businessphone );
186 } 186 }
187 187
188 if (!db->readField(ZdbAdrs::BusinessFax).isEmpty()) 188 if (!db->readField(ZdbAdrs::BusinessFax).isEmpty())
189 { 189 {
190 PhoneNumber businessfax; 190 PhoneNumber businessfax;
191 businessfax.setType( PhoneNumber::Work | PhoneNumber::Fax ); 191 businessfax.setType( PhoneNumber::Work | PhoneNumber::Fax );
192 businessfax.setNumber( db->readField(ZdbAdrs::BusinessFax) ); 192 businessfax.setNumber( db->readField(ZdbAdrs::BusinessFax) );
193 addr.insertPhoneNumber( businessfax ); 193 addr.insertPhoneNumber( businessfax );
194 } 194 }
195 195
196 if (!db->readField(ZdbAdrs::BusinessMobile).isEmpty()) 196 if (!db->readField(ZdbAdrs::BusinessMobile).isEmpty())
197 { 197 {
198 PhoneNumber businessmobile; 198 PhoneNumber businessmobile;
199 businessmobile.setType( PhoneNumber::Work | PhoneNumber::Cell ); 199 businessmobile.setType( PhoneNumber::Car );
200 businessmobile.setNumber( db->readField(ZdbAdrs::BusinessMobile) ); 200 businessmobile.setNumber( db->readField(ZdbAdrs::BusinessMobile) );
201 addr.insertPhoneNumber( businessmobile ); 201 addr.insertPhoneNumber( businessmobile );
202 } 202 }
203 203
204 if (!db->readField(ZdbAdrs::BusinessPager).isEmpty()) 204 if (!db->readField(ZdbAdrs::BusinessPager).isEmpty())
205 { 205 {
206 PhoneNumber businesspager; 206 PhoneNumber businesspager;
207 businesspager.setType( PhoneNumber::Work | PhoneNumber::Pager ); 207 businesspager.setType( PhoneNumber::Pager );
208 businesspager.setNumber( db->readField(ZdbAdrs::BusinessPager) ); 208 businesspager.setNumber( db->readField(ZdbAdrs::BusinessPager) );
209 addr.insertPhoneNumber( businesspager ); 209 addr.insertPhoneNumber( businesspager );
210 } 210 }
211 211
212 addr.setRole( db->readField(ZdbAdrs::JobTitle) ); 212 addr.setRole( db->readField(ZdbAdrs::JobTitle) );
213 addr.setOrganization( db->readField(ZdbAdrs::Company) ); 213 addr.setOrganization( db->readField(ZdbAdrs::Company) );
214 addr.insertCustom( "KADDRESSBOOK", "X-Profession", db->readField(ZdbAdrs::Profession) ); 214 addr.insertCustom( "KADDRESSBOOK", "X-Profession", db->readField(ZdbAdrs::Profession) );
215 addr.insertCustom( "KADDRESSBOOK", "X-AssistantsName", db->readField(ZdbAdrs::Assistant) ); 215 addr.insertCustom( "KADDRESSBOOK", "X-AssistantsName", db->readField(ZdbAdrs::Assistant) );
216 addr.insertCustom( "KADDRESSBOOK", "X-Department", db->readField(ZdbAdrs::Department) ); 216 addr.insertCustom( "KADDRESSBOOK", "X-Department", db->readField(ZdbAdrs::Department) );
217 addr.insertCustom( "KADDRESSBOOK", "X-ManagersName", db->readField(ZdbAdrs::Manager) ); 217 addr.insertCustom( "KADDRESSBOOK", "X-ManagersName", db->readField(ZdbAdrs::Manager) );
218 addr.insertCustom( "KADDRESSBOOK", "X-Office", db->readField(ZdbAdrs::Office) ); 218 addr.insertCustom( "KADDRESSBOOK", "X-Office", db->readField(ZdbAdrs::Office) );
219 219
220 //personal 220 //personal
221 addr.insertCustom( "KADDRESSBOOK", "X-SpousesName", db->readField(ZdbAdrs::Spouse) ); 221 addr.insertCustom( "KADDRESSBOOK", "X-SpousesName", db->readField(ZdbAdrs::Spouse) );
222 222
223 QString gen = db->readField(ZdbAdrs::Gender); 223 QString gen = db->readField(ZdbAdrs::Gender);
224 //qDebug("SharpDTMConverter::sharpToAddressee pleas check that gender works!! : Gender: %s", gen.latin1()); 224 //qDebug("SharpDTMConverter::sharpToAddressee pleas check that gender works!! : Gender: %s", gen.latin1());
225 //qDebug("SharpDTMConverter::sharpToAddressee: may be int db->readUshortField(\"ZdbAdrs::Gender\") is here better suited"); 225 //qDebug("SharpDTMConverter::sharpToAddressee: may be int db->readUshortField(\"ZdbAdrs::Gender\") is here better suited");
226 if (gen == "1") 226 if (gen == "1")
227 addr.insertCustom( "KADDRESSBOOK", "X-Gender", "male"); 227 addr.insertCustom( "KADDRESSBOOK", "X-Gender", "male");
228 else if (gen == "2") 228 else if (gen == "2")
229 addr.insertCustom( "KADDRESSBOOK", "X-Gender", "female"); 229 addr.insertCustom( "KADDRESSBOOK", "X-Gender", "female");
230 else 230 else
231 addr.insertCustom( "KADDRESSBOOK", "X-Gender", "undef"); 231 addr.insertCustom( "KADDRESSBOOK", "X-Gender", "undef");
232 232
233 233
234 QDate ann = KGlobal::locale()->readDate( db->readField(ZdbAdrs::Anniversary) ); 234 QDate ann = KGlobal::locale()->readDate( db->readField(ZdbAdrs::Anniversary) );
235 if (ann.isValid()) { 235 if (ann.isValid()) {
236 QString dt = KGlobal::locale()->formatDate(ann, true, KLocale::ISODate); 236 QString dt = KGlobal::locale()->formatDate(ann, true, KLocale::ISODate);
237 //qDebug("qtopiaToAddressee annyversary found:%s", dt.latin1()); 237 //qDebug("qtopiaToAddressee annyversary found:%s", dt.latin1());
238 addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt); 238 addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt);
239 } else 239 } else
240 addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", " "); 240 addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", " ");
241 241
242 242
243 243
244 addr.insertCustom( "KADDRESSBOOK", "X-Children", db->readField(ZdbAdrs::Children) ); 244 addr.insertCustom( "KADDRESSBOOK", "X-Children", db->readField(ZdbAdrs::Children) );
245 245
246 246
247 QDate birthd = KGlobal::locale()->readDate( db->readField(ZdbAdrs::Birthday) ); 247 QDate birthd = KGlobal::locale()->readDate( db->readField(ZdbAdrs::Birthday) );
248 //qDebug("birtd %s ", birthd.toString().latin1()); 248 //qDebug("birtd %s ", birthd.toString().latin1());
249 if (birthd.isValid()) 249 if (birthd.isValid())
250 addr.setBirthday( birthd ); 250 addr.setBirthday( birthd );
251 251
252 addr.setNickName( db->readField(ZdbAdrs::Nickname) ); 252 addr.setNickName( db->readField(ZdbAdrs::Nickname) );
253 253
254 // others 254 // others
255 //US I put opies BusinessWebPage into Ka/Pi's notes block, because no other native field is available. 255 //US I put opies BusinessWebPage into Ka/Pi's notes block, because no other native field is available.
256 //QString notes = db->readField(ZdbAdrs::Notes); 256 //QString notes = db->readField(ZdbAdrs::Notes);
257 //notes += "\nBusinessWebPage: " + db->readField(ZdbAdrs::BusinessWebPage) + "\n"; 257 //notes += "\nBusinessWebPage: " + db->readField(ZdbAdrs::BusinessWebPage) + "\n";
258 if ( addr.url().isEmpty() ) 258 if ( addr.url().isEmpty() )
259 addr.setUrl( db->readField(ZdbAdrs::BusinessWebPage) ); 259 addr.setUrl( db->readField(ZdbAdrs::BusinessWebPage) );
260 addr.setNote( db->readField(ZdbAdrs::Notes).replace( QRegExp("\\r"), "")); 260 addr.setNote( db->readField(ZdbAdrs::Notes).replace( QRegExp("\\r"), ""));
261 261
262 262
263 263
264//US QString groups() const { return find( Qtopia::Groups ); } 264//US QString groups() const { return find( Qtopia::Groups ); }
265//US QStringList groupList() const; 265//US QStringList groupList() const;
266 266
267 //qDebug("SharpDTMConverter::sharpToAddressee please check that the categories will be converted" ); 267 //qDebug("SharpDTMConverter::sharpToAddressee please check that the categories will be converted" );
268 QArray<int> catArray = db->readCategories(); 268 QArray<int> catArray = db->readCategories();
269 QString cat; 269 QString cat;
270 270
271 for ( unsigned int i=0; i < catArray.size(); i++ ) { 271 for ( unsigned int i=0; i < catArray.size(); i++ ) {
272 cat = catDB->label(catArray[i]); 272 cat = catDB->label(catArray[i]);
273 if ( cat.isEmpty() ) 273 if ( cat.isEmpty() )
274 addr.insertCategory(QString::number(catArray[i])); 274 addr.insertCategory(QString::number(catArray[i]));
275 else 275 else
276 addr.insertCategory( cat ); 276 addr.insertCategory( cat );
277 } 277 }
278 278
279 return true; 279 return true;
280} 280}
281 281
282bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* database , const CardId &contact ) 282bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* database , const CardId &contact )
283{ 283{
284 bool cellHome = false, cellWork = false; 284 bool cellHome = false, cellWork = false;
285 // name 285 // name
286 database->writeField(ZdbAdrs::LastName, addr.familyName()); 286 database->writeField(ZdbAdrs::LastName, addr.familyName());
287 database->writeField(ZdbAdrs::FirstName, addr.givenName()); 287 database->writeField(ZdbAdrs::FirstName, addr.givenName());
288 database->writeField(ZdbAdrs::MiddleName, addr.additionalName()); 288 database->writeField(ZdbAdrs::MiddleName, addr.additionalName());
289 database->writeField(ZdbAdrs::Title, addr.prefix()); 289 database->writeField(ZdbAdrs::Title, addr.prefix());
290 database->writeField(ZdbAdrs::Suffix, addr.suffix()); 290 database->writeField(ZdbAdrs::Suffix, addr.suffix());
291 291
292 //qDebug("SharpDTMConverter::addresseeToSharp check if the fileAs transformation works!!\n%s",addr.formattedName().latin1() ); 292 //qDebug("SharpDTMConverter::addresseeToSharp check if the fileAs transformation works!!\n%s",addr.formattedName().latin1() );
293 QString formattedName = addr.formattedName(); 293 QString formattedName = addr.formattedName();
294 if ( formattedName.isEmpty() ) { 294 if ( formattedName.isEmpty() ) {
295 if ( !addr.familyName().isEmpty() ) { 295 if ( !addr.familyName().isEmpty() ) {
296 formattedName = addr.familyName(); 296 formattedName = addr.familyName();
297 if ( !addr.givenName().isEmpty() ) { 297 if ( !addr.givenName().isEmpty() ) {
298 formattedName += ", "; 298 formattedName += ", ";
299 formattedName += addr.givenName(); 299 formattedName += addr.givenName();
300 } 300 }
301 } else 301 } else
302 formattedName = addr.givenName(); 302 formattedName = addr.givenName();
303 } 303 }
304 database->writeField(ZdbAdrs::FileAs, formattedName); 304 database->writeField(ZdbAdrs::FileAs, formattedName);
305 database->writeField(ZdbAdrs::FullName, formattedName); 305 database->writeField(ZdbAdrs::FullName, formattedName);
306 306
307 // email 307 // email
308 //qDebug("SharpDTMConverter::addresseeToSharp check which seperator we need here for the emails!!"); 308 //qDebug("SharpDTMConverter::addresseeToSharp check which seperator we need here for the emails!!");
309 //qDebug("SharpDTMConverter::addresseeToSharp its probably the same from sharpToAddressee"); 309 //qDebug("SharpDTMConverter::addresseeToSharp its probably the same from sharpToAddressee");
310 QString emails = addr.emails().join(" "); 310 QString emails = addr.emails().join(" ");
311 database->writeField(ZdbAdrs::Emails, emails ); 311 database->writeField(ZdbAdrs::Emails, emails );
312 312
313 database->writeField(ZdbAdrs::DefaultEmail, addr.preferredEmail() ); 313 database->writeField(ZdbAdrs::DefaultEmail, addr.preferredEmail() );
314 // home 314 // home
315 const Address homeaddress = addr.address(Address::Home); 315 const Address homeaddress = addr.address(Address::Home);
316 database->writeField(ZdbAdrs::HomeStreet, homeaddress.street()); 316 database->writeField(ZdbAdrs::HomeStreet, homeaddress.street());
317 database->writeField(ZdbAdrs::HomeCity, homeaddress.locality()); 317 database->writeField(ZdbAdrs::HomeCity, homeaddress.locality());
318 database->writeField(ZdbAdrs::HomeState, homeaddress.region()); 318 database->writeField(ZdbAdrs::HomeState, homeaddress.region());
319 database->writeField(ZdbAdrs::HomeZip, homeaddress.postalCode()); 319 database->writeField(ZdbAdrs::HomeZip, homeaddress.postalCode());
320 database->writeField(ZdbAdrs::HomeCountry, homeaddress.country()); 320 database->writeField(ZdbAdrs::HomeCountry, homeaddress.country());
321 321
322 PhoneNumber homephone = addr.phoneNumber( PhoneNumber::Home ); 322 PhoneNumber homephone = addr.phoneNumber( PhoneNumber::Home );
323 database->writeField(ZdbAdrs::HomePhone, homephone.number()); 323 database->writeField(ZdbAdrs::HomePhone, homephone.number());
324 PhoneNumber homefax = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Fax ); 324 PhoneNumber homefax = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Fax );
325 database->writeField(ZdbAdrs::HomeFax, homefax.number()); 325 database->writeField(ZdbAdrs::HomeFax, homefax.number());
326 PhoneNumber homemobile = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Cell ); 326 PhoneNumber homemobile = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Cell );
327 database->writeField(ZdbAdrs::HomeMobile, homemobile.number()); 327 database->writeField(ZdbAdrs::HomeMobile, homemobile.number());
328 if (!homemobile.number().isEmpty()) { 328 if (!homemobile.number().isEmpty()) {
329 cellHome = true; 329 cellHome = true;
330 } 330 }
331 database->writeField(ZdbAdrs::HomeWebPage, addr.url().url()); 331 database->writeField(ZdbAdrs::HomeWebPage, addr.url().url());
332 // business 332 // business
333 const Address businessaddress = addr.address(Address::Work); 333 const Address businessaddress = addr.address(Address::Work);
334 //qDebug("write business address "); 334 //qDebug("write business address ");
335 database->writeField(ZdbAdrs::BusinessStreet, businessaddress.street()); 335 database->writeField(ZdbAdrs::BusinessStreet, businessaddress.street());