addressesdialog.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef ADDRESSESDIALOG_H
00025 #define ADDRESSESDIALOG_H
00026
00027 #include <kabc/addressee.h>
00028 #include <kdialogbase.h>
00029 #include <klistview.h>
00030 #include <qstringlist.h>
00031 #include <qptrlist.h>
00032 #include <qptrdict.h>
00033
00034 namespace KPIM {
00035
00036 class AddresseeViewItem : public QObject, public KListViewItem
00037 {
00038 Q_OBJECT
00039
00040 public:
00041 enum Category {
00042 To =0,
00043 CC =1,
00044 BCC =2,
00045 Group =3,
00046 Entry =4,
00047 FilledGroup =5,
00048 DistList =6
00049 };
00050 AddresseeViewItem( AddresseeViewItem *parent, const KABC::Addressee& addr, int emailIndex = 0 );
00051 AddresseeViewItem( KListView *lv, const QString& name, Category cat=Group );
00052 AddresseeViewItem( AddresseeViewItem *parent, const QString& name, const KABC::Addressee::List &lst );
00053 AddresseeViewItem( AddresseeViewItem *parent, const QString& name );
00054 ~AddresseeViewItem();
00055
00056 KABC::Addressee addressee() const;
00057 KABC::Addressee::List addresses() const;
00058 Category category() const;
00059
00060 QString name() const;
00061 QString email() const;
00062
00063 bool matches( const QString& ) const;
00064
00065 virtual int compare( QListViewItem * i, int col, bool ascending ) const;
00066 virtual void setSelected( bool );
00067
00068 signals:
00069 void addressSelected( AddresseeViewItem*, bool );
00070
00071 private:
00072 struct AddresseeViewItemPrivate;
00073 AddresseeViewItemPrivate *d;
00074 };
00075
00076 class AddressesDialog : public KDialogBase
00077 {
00078 Q_OBJECT
00079 public:
00080 AddressesDialog( QWidget *widget=0, const char *name=0 );
00081 ~AddressesDialog();
00082
00086 QStringList to() const;
00090 QStringList cc() const;
00094 QStringList bcc() const;
00095
00100 KABC::Addressee::List toAddresses() const;
00106 KABC::Addressee::List allToAddressesNoDuplicates() const;
00111 KABC::Addressee::List ccAddresses() const;
00116 KABC::Addressee::List bccAddresses() const;
00117
00122 QStringList toDistributionLists() const;
00127 QStringList ccDistributionLists() const;
00132 QStringList bccDistributionLists() const;
00133
00134 public slots:
00139 void setShowCC( bool b );
00144 void setShowBCC( bool b );
00149 void setRecentAddresses( const KABC::Addressee::List& addr );
00153 void setSelectedTo( const QStringList& l );
00157 void setSelectedCC( const QStringList& l );
00161 void setSelectedBCC( const QStringList& l );
00162
00163 protected slots:
00164 void addSelectedTo();
00165 void addSelectedCC();
00166 void addSelectedBCC();
00167
00168 void removeEntry();
00169 void saveAs();
00170 void launchAddressBook();
00171
00172 void filterChanged( const QString & );
00173
00174 void updateAvailableAddressees();
00175 void availableSelectionChanged();
00176 void selectedSelectionChanged();
00177 void availableAddressSelected( AddresseeViewItem* item, bool selected );
00178 void selectedAddressSelected( AddresseeViewItem* item, bool selected );
00179
00180 protected:
00181 AddresseeViewItem* selectedToItem();
00182 AddresseeViewItem* selectedCcItem();
00183 AddresseeViewItem* selectedBccItem();
00184
00185 void initConnections();
00186 void addDistributionLists();
00187 void addAddresseeToAvailable( const KABC::Addressee& addr,
00188 AddresseeViewItem* defaultParent=0, bool useCategory=true );
00189 void addAddresseeToSelected( const KABC::Addressee& addr,
00190 AddresseeViewItem* defaultParent=0 );
00191 void addAddresseesToSelected( AddresseeViewItem *parent,
00192 const QPtrList<AddresseeViewItem>& addresses );
00193 QStringList entryToString( const KABC::Addressee::List& l ) const;
00194 KABC::Addressee::List allAddressee( AddresseeViewItem* parent ) const;
00195 KABC::Addressee::List allAddressee( KListView* view, bool onlySelected = true ) const;
00196 QStringList allDistributionLists( AddresseeViewItem* parent ) const;
00197
00198 private:
00199
00200 void checkForSingleAvailableGroup();
00201
00202
00203
00204 void unmapSelectedAddress(AddresseeViewItem* item);
00205 void updateRecentAddresses();
00206
00207 struct AddressesDialogPrivate;
00208 AddressesDialogPrivate *d;
00209
00210 QPtrList<AddresseeViewItem> selectedAvailableAddresses;
00211 QPtrList<AddresseeViewItem> selectedSelectedAddresses;
00212 QPtrDict<AddresseeViewItem> selectedToAvailableMapping;
00213 };
00214
00215 }
00216
00217 #endif
This file is part of the documentation for libkdepim Library Version 3.3.2.