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

# addresseelist.h

    00001 /*
    00002     This file is part of libkabc.
    00003     Copyright (c) 2002 Jost Schenck <jost@schenck.de>
    00004                   2003 Tobias Koenig <tokoe@kde.org>
    00005
    00006     This library is free software; you can redistribute it and/or
    00007     modify it under the terms of the GNU Library General Public
    00008     License as published by the Free Software Foundation; either
    00009     version 2 of the License, or (at your option) any later version.
    00010
    00011     This library is distributed in the hope that it will be useful,
    00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
    00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00014     Library General Public License for more details.
    00015
    00016     You should have received a copy of the GNU Library General Public License
    00017     along with this library; see the file COPYING.LIB.  If not, write to
    00018     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    00019     Boston, MA 02111-1307, USA.
    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 // fallback to given name
    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  // fallback to family name
    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     //KDE 4.0 - add a d-pointer here!
    00217 };
    00218
    00219 }
    00220
    00221 #endif

This file is part of the documentation for kabc Library Version 3.4.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat Jun 11 20:31:29 2005 by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2003