addresseelist.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KABC_ADDRESSEELIST_H
00023 #define KABC_ADDRESSEELIST_H
00024
00025 #include <qvaluelist.h>
00026
00027 #include "addressee.h"
00028
00029 namespace KABC {
00030
00031 class Field;
00032 class SortField;
00033 class SortMode;
00034
00044 namespace SortingTraits
00045 {
00046
00047 class KABC_EXPORT Uid
00048 {
00049 public:
00050 static bool eq( const Addressee &, const Addressee & );
00051 static bool lt( const Addressee &, const Addressee & );
00052 };
00053
00054 class KABC_EXPORT Name
00055 {
00056 public:
00057 static bool eq( const Addressee &, const Addressee & );
00058 static bool lt( const Addressee &, const Addressee & );
00059 };
00060
00061 class KABC_EXPORT FormattedName
00062 {
00063 public:
00064 static bool eq( const Addressee &, const Addressee & );
00065 static bool lt( const Addressee &, const Addressee & );
00066 };
00067
00068 class KABC_EXPORT FamilyName
00069 {
00070 public:
00071 static bool eq( const Addressee &, const Addressee & );
00072 static bool lt( const Addressee &, const Addressee & );
00073 };
00074
00075 class KABC_EXPORT GivenName
00076 {
00077 public:
00078 static bool eq( const Addressee &, const Addressee & );
00079 static bool lt( const Addressee &, const Addressee & );
00080 };
00081
00082 }
00083
00087 typedef enum { Uid, Name, FormattedName, FamilyName, GivenName } SortingCriterion;
00088
00112 class KABC_EXPORT AddresseeList : public QValueList<Addressee>
00113 {
00114 public:
00115 AddresseeList();
00116 ~AddresseeList();
00117 AddresseeList( const AddresseeList & );
00118 AddresseeList( const QValueList<Addressee> & );
00119
00123 void dump() const;
00124
00130 void setReverseSorting( bool r = true ) { mReverseSorting = r; }
00131
00136 bool reverseSorting() const { return mReverseSorting; }
00137
00142 void sortBy( SortingCriterion c );
00143
00149 void sortByField( Field *field = 0 );
00150
00156 void sortByMode( SortMode *mode = 0 );
00157
00167 void sort();
00168
00196 template<class Trait> void sortByTrait();
00197
00202 SortingCriterion sortingCriterion() const { return mActiveSortingCriterion; }
00203
00211 Field* sortingField() const;
00212
00213 private:
00214 bool mReverseSorting;
00215 SortingCriterion mActiveSortingCriterion;
00216
00217 };
00218
00219 }
00220
00221 #endif
|