/* This file is part of KAddressBook. Copyright (c) 2002 Tobias Koenig This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. As a special exception, permission is given to link this program with any edition of Qt, and distribute the resulting executable, without including the source code for Qt in the source distribution. */ #ifndef DISTRIBUTIONLISTWIDGET_H #define DISTRIBUTIONLISTWIDGET_H #include #include #include "extensionwidget.h" //Added by qt3to4: #include #include #include #include class Q3ButtonGroup; class QComboBox; class QLabel; class Q3ListView; class DistributionListView; class KABCore; namespace KABC { class AddressBook; class DistributionListManager; } class DistributionListWidget : public ExtensionWidget { Q_OBJECT public: DistributionListWidget( KABCore*, QWidget *parent, const char *name = 0 ); virtual ~DistributionListWidget(); void contactsSelectionChanged(); QString title() const; QString identifier() const; public slots: void save(); void dropped( QDropEvent*, Q3ListViewItem* ); private slots: void createList(); void editList(); void removeList(); void addContact(); void removeContact(); void changeEmail(); void updateNameCombo(); void updateContactView(); void selectionContactViewChanged(); void changed(); protected: void dropEvent( QDropEvent* ); private: QComboBox *mNameCombo; QLabel *mListLabel; DistributionListView *mContactView; KABC::DistributionListManager *mManager; QPushButton *mCreateListButton; QPushButton *mEditListButton; QPushButton *mRemoveListButton; QPushButton *mChangeEmailButton; QPushButton *mAddContactButton; QPushButton *mRemoveContactButton; }; /** @short Helper class */ class DistributionListView : public KListView { Q_OBJECT public: DistributionListView( QWidget *parent, const char* name = 0 ); protected: void dragEnterEvent( QDragEnterEvent *e ); void dropEvent( QDropEvent *e ); void viewportDragMoveEvent( QDragMoveEvent *e ); void viewportDropEvent( QDropEvent *e ); }; /** @short Helper class */ class EmailSelector : public KDialogBase { public: EmailSelector( const QStringList &emails, const QString ¤t, QWidget *parent ); QString selected(); static QString getEmail( const QStringList &emails, const QString ¤t, QWidget *parent ); private: Q3ButtonGroup *mButtonGroup; }; #ifdef KAB_EMBEDDED class DistributionListFactory : public ExtensionFactory { public: ExtensionWidget *extension( KABCore *core, QWidget *parent, const char *name ) { return new DistributionListWidget( core, parent, name ); } QString identifier() const { return "distribution_list_editor"; } }; #endif //KAB_EMBEDDED #endif