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 KABCORE_H
00025
#define KABCORE_H
00026
00027
#include <kabc/field.h>
00028
00029
#include <qdict.h>
00030
#include <qwidget.h>
00031
00032
#include "core.h"
00033
00034
namespace KABC {
00035
class AddressBook;
00036
class Ticket;
00037 }
00038
00039
namespace KPIM {
00040
class AddresseeView;
00041
class CategoryEditDialog;
00042
class CategorySelectDialog;
00043 }
00044
00045
class KAboutData;
00046
class KAction;
00047
class KActionCollection;
00048
class KConfig;
00049
class KStatusBar;
00050
class KToggleAction;
00051
class KXMLGUIClient;
00052
00053
class QSplitter;
00054
00055
class AddresseeEditorDialog;
00056
class ExtensionManager;
00057
class FilterSelectionWidget;
00058
class IncSearchWidget;
00059
class JumpButtonBar;
00060
class KAddressBookIface;
00061
class KAddressBookService;
00062
class KIMProxy;
00063
class LDAPSearchDialog;
00064
class ViewManager;
00065
class XXPortManager;
00066
00067
typedef struct {
00068 KABC::Ticket *ticket;
00069
int counter;
00070 } ResourceMapEntry;
00071
00072
class KABCore :
public KAB::Core
00073 {
00074 Q_OBJECT
00075
00076
public:
00077 KABCore( KXMLGUIClient *client,
bool readWrite,
QWidget *parent,
00078
const QString &file = QString::null,
const char *name = 0 );
00079 ~KABCore();
00080
00084
void restoreSettings();
00085
00089
void saveSettings();
00090
00094 KABC::AddressBook *addressBook() const;
00095
00099 KConfig *config() const;
00100
00105 KActionCollection *actionCollection() const;
00106
00110 KABC::Field *currentSortField() const;
00111
00115
QStringList selectedUIDs() const;
00116
00122 KABC::Resource *requestResource(
QWidget *parent );
00123
00127
QWidget *widget() const;
00128
00129 static KAboutData *createAboutData();
00130
00131
void setStatusBar( KStatusBar *statusBar );
00132
00133 KStatusBar *statusBar() const;
00134
00135 KAB::SearchManager *searchManager()
const {
return mSearchManager; }
00136
00137
public slots:
00141
void setContactSelected(
const QString &uid );
00142
00147
void sendMail();
00148
00153
void sendMail(
const QString& email );
00154
00155
00156
void mailVCard();
00157
void mailVCard(
const QStringList& uids);
00158
00162
void startChat();
00163
00167
void browse(
const QString& url );
00168
00172
void selectAllContacts();
00173
00177
void deleteContacts();
00178
00184
void deleteContacts(
const QStringList &uids );
00185
00189
void copyContacts();
00190
00194
void cutContacts();
00195
00199
void pasteContacts();
00200
00206
void pasteContacts( KABC::Addressee::List &list );
00207
00208
00212
void mergeContacts();
00213
00218
void setWhoAmI();
00219
00224
void setCategories();
00225
00230
void incrementalTextSearch(
const QString& text );
00231
00232
void incrementalJumpButtonSearch(
const QStringList& characters );
00233
00237
void setModified();
00238
00242
void setModified(
bool modified );
00243
00247
bool modified() const;
00248
00253
void contactModified( const KABC::Addressee &addr );
00254
00258 virtual
void addEmail( const
QString& addr );
00259
00263 virtual
void importVCard( const KURL& url );
00264
00268 virtual
void importVCard( const
QString& vCardURL );
00269
00273 virtual
void newContact();
00274
00279 virtual
QString getNameByPhone( const
QString& phone );
00280
00285
bool handleCommandLine( KAddressBookIface* iface );
00286
00287
00291
void save();
00292
00296
void undo();
00297
00301
void redo();
00302
00307
void editContact( const
QString &uid =
QString::null );
00308
00312
void openLDAPDialog();
00313
00317
void configure();
00318
00323
void print();
00324
00325
void detailsHighlighted( const
QString& );
00326
00327
void showContactsAddress( const QString &uid );
00328
00329
void configurationChanged();
00330
00331 private slots:
00332
void setJumpButtonBarVisible(
bool visible );
00333
void setDetailsVisible(
bool visible );
00334
00335
void extensionModified( const KABC::Addressee::List &list );
00336
void clipboardDataChanged();
00337
void updateActionMenu();
00338
00339
void slotEditorDestroyed( const QString &uid );
00340
void addressBookChanged();
00341
00342
void categoriesSelected( const
QStringList& );
00343
void editCategories();
00344
00345 private:
00346
void initGUI();
00347
void initActions();
00348
00349 KABC::Addressee mergeContacts( const KABC::Addressee::List &list );
00350
00351 AddresseeEditorDialog *createAddresseeEditorDialog(
QWidget *parent,
00352 const
char *name = 0 );
00353
00354
QWidget *mWidget;
00355 KABC::AddressBook *mAddressBook;
00356 KStatusBar *mStatusBar;
00357
00358
ViewManager *mViewManager;
00359 ExtensionManager *mExtensionManager;
00360 XXPortManager *mXXPortManager;
00361
00362
JumpButtonBar *mJumpButtonBar;
00363
FilterSelectionWidget *mFilterSelectionWidget;
00364 IncSearchWidget *mIncSearchWidget;
00365 KPIM::AddresseeView *mDetails;
00366 KPIM::CategorySelectDialog *mCategorySelectDialog;
00367 KPIM::CategoryEditDialog *mCategoryEditDialog;
00368
QWidget *mDetailsPage;
00369
QSplitter *mDetailsSplitter;
00370
QSplitter *mExtensionBarSplitter;
00371
00372 LDAPSearchDialog *mLdapSearchDialog;
00373
QDict<AddresseeEditorDialog> mEditorDict;
00374
00375
bool mReadWrite;
00376
bool mModified;
00377
bool mIsPart;
00378
00379 KAction *mActionPaste;
00380 KAction *mActionCut;
00381 KAction *mActionDelete;
00382 KAction *mActionCopy;
00383 KAction *mActionEditAddressee;
00384 KAction *mActionMerge;
00385 KAction *mActionMail;
00386 KAction *mActionMailVCard;
00387 KAction *mActionChat;
00388 KAction *mActionUndo;
00389 KAction *mActionRedo;
00390 KAction *mActionSave;
00391 KAction *mActionDeleteView;
00392 KAction *mActionWhoAmI;
00393 KAction *mActionCategories;
00394 KToggleAction *mActionJumpBar;
00395 KToggleAction *mActionDetails;
00396
00397 KAddressBookService *mAddressBookService;
00398
00399 KAB::SearchManager *mSearchManager;
00400
00401 ::KIMProxy *mKIMProxy;
00402
00403 class KABCorePrivate;
00404 KABCorePrivate *d;
00405 };
00406
00407 #endif