kaddressbook

searchmanager.h
1 /*
2  This file is part of KAddressBook.
3  Copyright (c) 2004 Tobias Koenig <tokoe@kde.org>
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program; if not, write to the Free Software
17  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 
19  As a special exception, permission is given to link this program
20  with any edition of TQt, and distribute the resulting executable,
21  without including the source code for TQt in the source distribution.
22 */
23 
24 #ifndef SEARCHMANAGER_H
25 #define SEARCHMANAGER_H
26 
27 #include <config.h> // for TDEPIM_NEW_DISTRLISTS
28 #include <tqobject.h>
29 
30 #include <tdeabc/stdaddressbook.h>
31 #ifdef TDEPIM_NEW_DISTRLISTS
32 #include <libtdepim/distributionlist.h>
33 #endif
34 
35 namespace KAB {
36 
37 class SearchManager : public TQObject
38 {
39  TQ_OBJECT
40 
41 
42  public:
43  enum Type {
44  StartsWith,
45  EndsWith,
46  Contains,
47  Equals
48  };
49 
50  SearchManager( TDEABC::AddressBook *ab,
51  TQObject *parent, const char *name = 0 );
52 
62  void search( const TQString &pattern, const TDEABC::Field::List &fields, Type type = Contains );
63 
67  TDEABC::Addressee::List contacts() const;
68 
69 
70 #ifdef TDEPIM_NEW_DISTRLISTS
74  void setSelectedDistributionList( const TQString &name );
75 
79  KPIM::DistributionList::List distributionLists() const;
80 
84  TQStringList distributionListNames() const;
85 #endif
86 
87  signals:
91  void contactsUpdated();
92 
93  public slots:
94  void reload();
95 
96  private:
97  TDEABC::Addressee::List mContacts;
98 #ifdef TDEPIM_NEW_DISTRLISTS
99  TQString mSelectedDistributionList;
100  KPIM::DistributionList::List mDistributionLists;
101 #endif
102  TDEABC::AddressBook *mAddressBook;
103 
104  TQString mPattern;
105  TDEABC::Field::List mFields;
106  Type mType;
107 };
108 
109 }
110 
111 #endif