addresseelist.h Source File (kabc Library)

| # kabc Library API Documentation
Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Source Files

# addresseelist.h

    00001 /*
    00002     This file is part of libkabc.
    00003     Copyright (c) 2002 Jost Schenck <jost@schenck.de>
    00004
    00005     This library is free software; you can redistribute it and/or
    00006     modify it under the terms of the GNU Library General Public
    00007     License as published by the Free Software Foundation; either
    00008     version 2 of the License, or (at your option) any later version.
    00009
    00010     This library is distributed in the hope that it will be useful,
    00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
    00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00013     Library General Public License for more details.
    00014
    00015     You should have received a copy of the GNU Library General Public License
    00016     along with this library; see the file COPYING.LIB.  If not, write to
    00017     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    00018     Boston, MA 02111-1307, USA.
    00019 */
    00020
    00021 #ifndef KABC_ADDRESSEELIST_H
    00022 #define KABC_ADDRESSEELIST_H
    00023
    00024 #include <qvaluelist.h>
    00025
    00026 #include "addressee.h"
    00027 #include "field.h"
    00028
    00029 namespace KABC {
    00030
    00040 namespace SortingTraits
    00041 {
    00042
    00043 class Uid
    00044 {
    00045   public:
    00046     static bool eq( const Addressee &, const Addressee & );
    00047     static bool lt( const Addressee &, const Addressee & );
    00048 };
    00049
    00050 class Name
    00051 {
    00052   public:
    00053     static bool eq( const Addressee &, const Addressee & );
    00054     static bool lt( const Addressee &, const Addressee & );
    00055 };
    00056
    00057 class FormattedName
    00058 {
    00059   public:
    00060     static bool eq( const Addressee &, const Addressee & );
    00061     static bool lt( const Addressee &, const Addressee & );
    00062 };
    00063
    00064 class FamilyName // fallback to given name
    00065 {
    00066   public:
    00067     static bool eq( const Addressee &, const Addressee & );
    00068     static bool lt( const Addressee &, const Addressee & );
    00069 };
    00070
    00071 class GivenName  // fallback to family name
    00072 {
    00073   public:
    00074     static bool eq( const Addressee &, const Addressee & );
    00075     static bool lt( const Addressee &, const Addressee & );
    00076 };
    00077
    00078 }
    00079
    00083 typedef enum { Uid, Name, FormattedName, FamilyName, GivenName } SortingCriterion;
    00084
    00108 class AddresseeList : public QValueList<Addressee>
    00109 {
    00110   public:
    00111     AddresseeList();
    00112     ~AddresseeList();
    00113     AddresseeList( const AddresseeList & );
    00114     AddresseeList( const QValueList<Addressee> & );
    00115
    00119     void dump() const;
    00120
    00126     void setReverseSorting( bool r = true ) { mReverseSorting = r; }
    00127
    00132     bool reverseSorting() const { return mReverseSorting; }
    00133
    00138     void sortBy( SortingCriterion c );
    00139
    00140     void sortByField( Field *field );
    00141
    00151     void sort();
    00152
    00180     template<class Trait> void sortByTrait();
    00181
    00186     SortingCriterion sortingCriterion() const { return mActiveSortingCriterion; }
    00187
    00188   private:
    00189     bool mReverseSorting;
    00190     SortingCriterion mActiveSortingCriterion;
    00191 };
    00192
    00193 }
    00194
    00195 #endif

This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 13:29:18 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001