field.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KABC_FIELD_H
00022 #define KABC_FIELD_H
00023
00024 #include <qstring.h>
00025 #include <qvaluelist.h>
00026
00027 #include "addressee.h"
00028
00029 class KConfig;
00030
00031 namespace KABC {
00032
00033 class KABC_EXPORT Field
00034 {
00035 class FieldImpl;
00036 friend class FieldImpl;
00037
00038 public:
00039 typedef QValueList<Field *> List;
00040
00050 enum FieldCategory
00051 {
00052 All = 0x0,
00053 Frequent = 0x01,
00054 Address = 0x02,
00055 Email = 0x04,
00056 Personal = 0x08,
00057 Organization = 0x10,
00058 CustomCategory = 0x20
00059 };
00060
00064 virtual QString label();
00065
00069 virtual int category();
00070
00074 static QString categoryLabel( int category );
00075
00081 virtual QString value( const KABC::Addressee & );
00082
00087 virtual bool setValue( KABC::Addressee &, const QString & );
00088
00092 QString sortKey( const KABC::Addressee & );
00093
00097 virtual bool isCustom();
00098
00102 virtual bool equals( Field *field );
00103
00107 static Field::List allFields();
00108
00112 static Field::List defaultFields();
00113
00122 static Field *createCustomField( const QString &label, int category,
00123 const QString &key, const QString &app );
00124
00128 static void deleteFields();
00129
00137 static void saveFields( KConfig *cfg, const QString &identifier,
00138 const Field::List &fields );
00143 static void saveFields( const QString &identifier,
00144 const Field::List &fields );
00145
00152 static Field::List restoreFields( KConfig *cfg, const QString &identifier );
00153
00158 static Field::List restoreFields( const QString &identifier );
00159
00160 protected:
00161 static void createField( int id, int category = 0 );
00162 static void createDefaultField( int id, int category = 0 );
00163
00164 private:
00165 Field( FieldImpl * );
00166 virtual ~Field();
00167
00168 FieldImpl *mImpl;
00169
00170 static Field::List mAllFields;
00171 static Field::List mDefaultFields;
00172 static Field::List mCustomFields;
00173 };
00174
00175 }
00176 #endif
|