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 );
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
00099 KABC::Addressee::List toAddresses() const;
00103 KABC::Addressee::List ccAddresses() const;
00107 KABC::Addressee::List bccAddresses() const;
00108
00109 public slots:
00114 void setShowCC( bool b );
00119 void setShowBCC( bool b );
00124 void setRecentAddresses( const KABC::Addressee::List& addr );
00128 void setSelectedTo( const QStringList& l );
00132 void setSelectedCC( const QStringList& l );
00136 void setSelectedBCC( const QStringList& l );
00137
00138 protected slots:
00139 void addSelectedTo();
00140 void addSelectedCC();
00141 void addSelectedBCC();
00142
00143 void removeEntry();
00144 void saveAs();
00145 void launchAddressBook();
00146
00147 void filterChanged( const QString & );
00148
00149 void updateAvailableAddressees();
00150 void availableSelectionChanged();
00151 void selectedSelectionChanged();
00152 void availableAddressSelected( AddresseeViewItem* item, bool selected );
00153 void selectedAddressSelected( AddresseeViewItem* item, bool selected );
00154
00155 protected:
00156 AddresseeViewItem* selectedToItem();
00157 AddresseeViewItem* selectedCcItem();
00158 AddresseeViewItem* selectedBccItem();
00159
00160 void initConnections();
00161 void addDistributionLists();
00162 void addAddresseeToAvailable( const KABC::Addressee& addr,
00163 AddresseeViewItem* defaultParent=0 );
00164 void addAddresseeToSelected( const KABC::Addressee& addr,
00165 AddresseeViewItem* defaultParent=0 );
00166 void addAddresseesToSelected( AddresseeViewItem *parent,
00167 const QPtrList<AddresseeViewItem>& addresses );
00168 QStringList entryToString( const KABC::Addressee::List& l ) const;
00169 KABC::Addressee::List allAddressee( AddresseeViewItem* parent ) const;
00170 KABC::Addressee::List allAddressee( KListView* view, bool onlySelected = true ) const;
00171 QStringList allDistributionLists( AddresseeViewItem* parent ) const;
00172
00173 private:
00174
00175 void checkForSingleAvailableGroup();
00176
00177
00178
00179 void unmapSelectedAddress(AddresseeViewItem* item);
00180 void updateRecentAddresses();
00181
00182 struct AddressesDialogPrivate;
00183 AddressesDialogPrivate *d;
00184
00185 QPtrList<AddresseeViewItem> selectedAvailableAddresses;
00186 QPtrList<AddresseeViewItem> selectedSelectedAddresses;
00187 QPtrDict<AddresseeViewItem> selectedToAvailableMapping;
00188 };
00189
00190 }
00191
00192 #endif
This file is part of the documentation for libkdepim Library Version 3.2.2.