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 KADDRESSBOOKVIEW_H
00025
#define KADDRESSBOOKVIEW_H
00026
00027
#include <qstringlist.h>
00028
#include <qwidget.h>
00029
00030
#include <kabc/field.h>
00031
#include <klibloader.h>
00032
00033
#include "filter.h"
00034
#include "viewconfigurewidget.h"
00035
00036
class KConfig;
00037
class KXMLGUIClient;
00038
00039
class QDropEvent;
00040
00041
namespace KAB {
class Core; }
00042
namespace KABC {
class AddressBook; }
00043
00053 class KAddressBookView :
public QWidget
00054 {
00055 Q_OBJECT
00056
00057
public:
00058
enum DefaultFilterType { None = 0, Active = 1, Specific = 2 };
00059
00060
KAddressBookView( KAB::Core *
core,
QWidget *parent,
const char *name );
00061
virtual ~
KAddressBookView();
00062
00067
virtual QStringList selectedUids() = 0;
00068
00082
virtual void readConfig( KConfig *config );
00083
00096
virtual void writeConfig( KConfig *config );
00097
00102
virtual QString selectedEmails();
00103
00109
virtual QString type()
const = 0;
00110
00121 KABC::Field::List
fields()
const;
00122
00129
void setFilter(
const Filter& );
00130
00136 DefaultFilterType
defaultFilterType()
const;
00137
00142
const QString &
defaultFilterName()
const;
00143
00147 KAB::Core *
core()
const;
00148
00152
virtual KABC::Field *
sortField()
const = 0;
00153
00154
public slots:
00162
virtual void refresh(
QString uid = QString::null ) = 0;
00163
00169
virtual void setSelected(
QString uid = QString::null,
bool selected =
true ) = 0;
00170
00176
void popup(
const QPoint &point );
00177
00178 signals:
00183
void modified();
00184
00196
void selected(
const QString &uid );
00197
00207
void executed(
const QString &uid );
00208
00214
void startDrag();
00215
00221
void dropped(
QDropEvent* );
00222
00226
void sortFieldChanged();
00227
00228
protected:
00235 KABC::Addressee::List
addressees();
00236
00243
QWidget *
viewWidget();
00244
00245
private slots:
00246
void updateView();
00247
00248
private:
00249
void initGUI();
00250
00251 DefaultFilterType mDefaultFilterType;
00252
Filter mFilter;
00253
QString mDefaultFilterName;
00254 KAB::Core *mCore;
00255 KABC::Field::List mFieldList;
00256
00257
QWidget *mViewWidget;
00258 };
00259
00260
class ViewFactory :
public KLibFactory
00261 {
00262
public:
00263
virtual KAddressBookView *view( KAB::Core *core,
QWidget *parent,
00264
const char *name = 0 ) = 0;
00269
virtual QString type() const = 0;
00270
00276 virtual
QString description() const = 0;
00277
00287 virtual
ViewConfigureWidget *configureWidget( KABC::AddressBook *ab,
00288
QWidget *parent,
00289 const
char *name = 0 );
00290
00291 protected:
00292 virtual
QObject* createObject(
QObject*, const
char*, const
char*,
00293 const
QStringList & )
00294 {
00295
return 0;
00296 }
00297 };
00298
00299
#endif