summaryrefslogtreecommitdiffabout
path: root/kabc/addresseedialog.h
Unidiff
Diffstat (limited to 'kabc/addresseedialog.h') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addresseedialog.h160
1 files changed, 160 insertions, 0 deletions
diff --git a/kabc/addresseedialog.h b/kabc/addresseedialog.h
new file mode 100644
index 0000000..74e7871
--- a/dev/null
+++ b/kabc/addresseedialog.h
@@ -0,0 +1,160 @@
1/*
2 This file is part of libkabc.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9
10 This library 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 GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA.
19*/
20
21#ifndef KABC_ADDRESSEEDIALOG_H
22#define KABC_ADDRESSEEDIALOG_H
23
24#include <qdict.h>
25
26#include <kdialogbase.h>
27#include <klineedit.h>
28#include <klistview.h>
29
30#include "addressbook.h"
31
32namespace KABC {
33
34/**
35 @short Special ListViewItem, that is used by the AddresseeDialog.
36*/
37class AddresseeItem : public QListViewItem
38{
39 public:
40
41 /**
42 Type of column
43 @li @p Name - Name in Addressee
44 @li @p Email - Email in Addressee
45 */
46 enum columns { Name = 0, Email = 1 };
47
48 /**
49 Constructor.
50
51 @param parent The parent listview.
52 @param addressee The associated addressee.
53 */
54 AddresseeItem( QListView *parent, const Addressee &addressee );
55
56 /**
57 Returns the addressee.
58 */
59 Addressee addressee() const { return mAddressee; }
60
61 /**
62 Method used by QListView to sort the items.
63 */
64 virtual QString key( int column, bool ascending ) const;
65
66 private:
67 Addressee mAddressee;
68};
69
70/**
71 @short Dialog for selecting address book entries.
72
73 This class provides a dialog for selecting entries from the standard KDE
74 address book. Use the getAddressee() function to open a modal dialog,
75 returning an address book entry.
76
77 In the dialog you can select an entry from the list with the mouse or type in
78 the first letters of the name or email address you are searching for. The
79 entry matching best is automatically selected. Use double click, pressing
80 return or pressing the ok button to return the selected addressee to the
81 application.
82*/
83class AddresseeDialog : public KDialogBase
84{
85 Q_OBJECT
86
87 public:
88 /**
89 Construct addressbook entry select dialog.
90
91 @param parent parent widget
92 */
93 AddresseeDialog( QWidget *parent=0, bool multiple=false );
94
95 /**
96 Destructor.
97 */
98 virtual ~AddresseeDialog();
99
100 /**
101 Return the address chosen.
102
103 If it is a multiple select, this will return only the first address chosen
104 */
105 Addressee addressee();
106
107 /**
108 Return the list of addresses chosen
109 */
110 Addressee::List addressees();
111
112 /**
113 Select a single address book entry.
114
115 Open addressee select dialog and return the entry selected by the user.
116 If the user doesn't select an entry or presses cancel, the returned
117 addressee is empty.
118 */
119 static Addressee getAddressee( QWidget *parent );
120
121 /**
122 Select multiple address book entries.
123
124 Open addressee select dialog and return the entries selected by the user.
125 If the user doesn't select an entry or presses cancel, the returned
126 addressee list is empty.
127 */
128 static Addressee::List getAddressees( QWidget *parent );
129
130 private slots:
131 void selectItem( const QString & );
132 void updateEdit( QListViewItem *item );
133 void addSelected( QListViewItem *item );
134 void removeSelected();
135
136 protected slots:
137 void addressBookChanged();
138
139 private:
140 void loadAddressBook();
141 void addCompletionItem( const QString &str, QListViewItem *item );
142
143 bool mMultiple;
144
145 KListView *mAddresseeList;
146 KLineEdit *mAddresseeEdit;
147
148 KListView *mSelectedList;
149
150 AddressBook *mAddressBook;
151
152 QDict<QListViewItem> mItemDict;
153 QDict<QListViewItem> mSelectedDict;
154
155 class AddresseeDialogPrivate;
156 AddresseeDialogPrivate *d;
157};
158
159}
160#endif