vcard21parser.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KABC_VCARD21FORMAT_H
00023 #define KABC_VCARD21FORMAT_H
00024
00025 #include <qdatetime.h>
00026 #include <kdebug.h>
00027 #include <qregexp.h>
00028 #include <qstring.h>
00029 #include <kurl.h>
00030 #include <qvaluelist.h>
00031
00032 #include "addressee.h"
00033 #include "addressbook.h"
00034 #include "phonenumber.h"
00035
00036
00037 #define VCARD_BEGIN "begin:vcard"
00038 #define VCARD_END "end:vcard"
00039 #define VCARD_BEGIN_N "begin"
00040 #define VCARD_END_N "end"
00041 #define VCARD_VERSION "version"
00042
00043 #define VCARD_FN "fn"
00044 #define VCARD_N "n"
00045
00046
00047 #define VCARD_NAME "name"
00048 #define VCARD_NICKNAME "nickname"
00049 #define VCARD_PHOTO "photo"
00050 #define VCARD_BDAY "bday"
00051 #define VCARD_ADR "adr"
00052
00053
00054 #define VCARD_ADR_DOM "dom"
00055 #define VCARD_ADR_INTL "intl"
00056 #define VCARD_ADR_POSTAL "postal"
00057 #define VCARD_ADR_PARCEL "parcel"
00058 #define VCARD_ADR_HOME "home"
00059 #define VCARD_ADR_WORK "work"
00060 #define VCARD_ADR_PREF "pref"
00061
00062 #define VCARD_ADR_POBOX "PO Box"
00063 #define VCARD_ADR_EXTADR "Extended Address"
00064 #define VCARD_ADR_STREET "Street"
00065 #define VCARD_ADR_LOCALITY "Locality"
00066 #define VCARD_ADR_REGION "Region"
00067 #define VCARD_ADR_POSTCODE "Postal Code"
00068 #define VCARD_ADR_COUNTRY "Country Name"
00069 #define VCARD_LABEL "label"
00070 #define VCARD_PROFILE "profile"
00071 #define VCARD_SOURCE "source"
00072 #define VCARD_TEL "tel"
00073
00074 #define VCARD_TEL_HOME "home"
00075 #define VCARD_TEL_WORK "work"
00076 #define VCARD_TEL_PREF "pref"
00077 #define VCARD_TEL_VOICE "voice"
00078 #define VCARD_TEL_FAX "fax"
00079 #define VCARD_TEL_MSG "msg"
00080 #define VCARD_TEL_CELL "cell"
00081 #define VCARD_TEL_PAGER "pager"
00082 #define VCARD_TEL_BBS "bbs"
00083 #define VCARD_TEL_MODEM "modem"
00084 #define VCARD_TEL_CAR "car"
00085 #define VCARD_TEL_ISDN "isdn"
00086 #define VCARD_TEL_VIDEO "video"
00087 #define VCARD_TEL_PCS "pcs"
00088 #define VCARD_EMAIL "email"
00089
00090 #define VCARD_EMAIL_PREF "pref"
00091 #define VCARD_EMAIL_INTERNET "internet"
00092 #define VCARD_EMAIL_X400 "x400"
00093 #define VCARD_TZ "tz"
00094 #define VCARD_GEO "geo"
00095 #define VCARD_MAILER "mailer"
00096 #define VCARD_TITLE "title"
00097 #define VCARD_ROLE "role"
00098 #define VCARD_LOGO "logo"
00099 #define VCARD_AGENT "agent"
00100 #define VCARD_ORG "org"
00101 #define VCARD_CATEGORIES "categories"
00102 #define VCARD_NOTE "note"
00103 #define VCARD_PRODID "prodid"
00104 #define VCARD_REV "rev"
00105 #define VCARD_SOUND "sound"
00106 #define VCARD_UID "uid"
00107 #define VCARD_URL "url"
00108 #define VCARD_CLASS "class"
00109 #define VCARD_CLASS_PUBLIC "public"
00110 #define VCARD_CLASS_PRIVATE "private"
00111 #define VCARD_CLASS_CONFIDENTIAL "confidential"
00112 #define VCARD_KEY "key"
00113
00114 #define VCARD_KEY_X509 "x509"
00115 #define VCARD_KEY_PGP "pgp"
00116
00117 #define VCARD_QUOTED_PRINTABLE "quoted-printable"
00118
00119 #define VCARD_ENCODING_QUOTED_PRINTABLE "encoding=quoted-printable"
00120 #define VCARD_BASE64 "base64"
00121
00122 #define VC_STATE_BEGIN 1
00123 #define VC_STATE_BODY 2
00124 #define VC_STATE_END 4
00125 #define VC_STATE_HAVE_N 8
00126 #define VC_STATE_HAVE_VERSION 16
00127
00128 #define VC_ERR_NO_BEGIN 1
00129 #define VC_ERR_NO_END 2
00130 #define VC_ERR_INVALID_LINE 3
00131 #define VC_ERR_INTERNAL 4
00132 #define VC_ERR_INVALID_NAME 5
00133 #define VC_ERR_MISSING_MANDATORY 6
00134
00135 namespace KABC {
00136
00137 class AddressBook;
00138
00142 class KABC_EXPORT_DEPRECATED VCard21Parser
00143 {
00144 public:
00145
00149 VCard21Parser();
00150
00154 virtual ~VCard21Parser();
00155
00163 void readFromString( KABC::AddressBook *ab, const QString &str );
00164
00173 KABC::Addressee readFromString( const QString &data);
00174
00181 static KABC::Address readAddressFromQStringList (const QStringList &data, const int type);
00182 };
00183
00184 }
00185
00189 class KABC_EXPORT VCardLineX
00190 {
00191 public:
00192 QString name;
00193 bool qualified;
00194 QValueList<QString> qualifiers;
00195 QValueList<QString> parameters;
00196 bool isValid() const;
00197 };
00198
00202 class KABC_EXPORT VCard21ParserImpl
00203 {
00204 friend class VCardLineX;
00205
00206 public:
00207 VCard21ParserImpl() { };
00208 virtual ~VCard21ParserImpl() { };
00209 static VCard21ParserImpl *parseVCard(const QString& vc, int *err = NULL);
00210 QString getValue(const QString& name, const QString& qualifier);
00211 QString getValue(const QString& name);
00212 QStringList getValues(const QString& name, const QString& qualifier);
00213 QStringList getValues(const QString& name);
00214
00215 QValueList<VCardLineX> *_vcdata;
00216
00217 private:
00218 VCard21ParserImpl (QValueList<VCardLineX> *_vcd);
00219 };
00220
00221 #endif
|