summaryrefslogtreecommitdiffabout
path: root/kaddressbook/kabcore.h
Side-by-side diff
Diffstat (limited to 'kaddressbook/kabcore.h') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.h421
1 files changed, 421 insertions, 0 deletions
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h
new file mode 100644
index 0000000..edf98c2
--- a/dev/null
+++ b/kaddressbook/kabcore.h
@@ -0,0 +1,421 @@
+/*
+ This file is part of KAddressbook.
+ Copyright (c) 2003 Tobias Koenig <tokoe@kde.org>
+
+ 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 KABCORE_H
+#define KABCORE_H
+
+#include <kabc/field.h>
+
+#ifndef KAB_EMBEDDED
+#endif //KAB_EMBEDDED
+#include <qdict.h>
+
+#include <qwidget.h>
+#include <qpopupmenu.h>
+
+namespace KABC {
+class AddressBook;
+}
+
+#ifndef KAB_EMBEDDED
+class KAboutData;
+class KConfig;
+
+class KAddressBookService;
+class LDAPSearchDialog;
+#else //KAB_EMBEDDED
+class KAddressBookMain;
+//US class QAction;
+#endif //KAB_EMBEDDED
+class KCMultiDialog;
+class KXMLGUIClient;
+class ExtensionManager;
+class XXPortManager;
+class JumpButtonBar;
+class IncSearchWidget;
+class KDGanttMinimizeSplitter;
+class KAction;
+class KActionCollection;
+class KToggleAction;
+
+class QAction;
+class QMenuBar;
+class QSplitter;
+class ViewContainer;
+class ViewManager;
+class AddresseeEditorDialog;
+
+class KABCore : public QWidget
+{
+ Q_OBJECT
+
+ public:
+ KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name = 0 );
+
+
+ ~KABCore();
+
+
+#ifdef KAB_EMBEDDED
+ //US added functionality
+ QPopupMenu* getViewMenu() {return viewMenu;}
+ QPopupMenu* getFilterMenu() {return filterMenu;}
+ QPopupMenu* getSettingsMenu() {return settingsMenu;}
+ void addActionsManually();
+#endif //KAB_EMBEDDED
+ /**
+ Restores the global settings.
+ */
+ void restoreSettings();
+
+ /**
+ Saves the global settings.
+ */
+ void saveSettings();
+
+ /**
+ Returns a pointer to the StdAddressBook of the application.
+ */
+ KABC::AddressBook *addressBook() const;
+
+ /**
+ Returns a pointer to the KConfig object of the application.
+ */
+ static KConfig *config();
+
+ /**
+ Returns a pointer to the global KActionCollection object. So
+ other classes can register their actions easily.
+ */
+ KActionCollection *actionCollection() const;
+
+ /**
+ Returns the current search field of the Incremental Search Widget.
+ */
+ KABC::Field *currentSearchField() const;
+
+ /**
+ Returns the uid list of the currently selected contacts.
+ */
+ QStringList selectedUIDs() const;
+
+ /**
+ Displays the ResourceSelectDialog and returns the selected
+ resource or a null pointer if no resource was selected by
+ the user.
+ */
+ KABC::Resource *requestResource( QWidget *parent );
+
+#ifndef KAB_EMBEDDED
+ static KAboutData *createAboutData();
+#endif //KAB_EMBEDDED
+
+#ifdef KAB_EMBEDDED
+ inline QPopupMenu* getImportMenu() { return ImportMenu;}
+ inline QPopupMenu* getExportMenu() { return ExportMenu;}
+#endif //KAB_EMBEDDED
+
+ public slots:
+#ifdef KAB_EMBEDDED
+ void createAboutData();
+#endif //KAB_EMBEDDED
+
+ void statusMessage(QString, int time = 0 );
+ /**
+ Is called whenever a contact is selected in the view.
+ */
+ void setContactSelected( const QString &uid );
+
+ /**
+ Opens the preferred mail composer with all selected contacts as
+ arguments.
+ */
+ void sendMail();
+
+ /**
+ Opens the preferred mail composer with the given contacts as
+ arguments.
+ */
+ void sendMail( const QString& email );
+
+
+ void mailVCard();
+ void mailVCard(const QStringList& uids);
+
+ /**
+ Starts the preferred web browser with the given URL as argument.
+ */
+ void browse( const QString& url );
+
+ /**
+ Select all contacts in the view.
+ */
+ void selectAllContacts();
+
+ /**
+ Deletes all selected contacts from the address book.
+ */
+ void deleteContacts();
+
+ /**
+ Deletes given contacts from the address book.
+
+ @param uids The uids of the contacts, which shall be deleted.
+ */
+ void deleteContacts( const QStringList &uids );
+
+ /**
+ Copys the selected contacts into clipboard for later pasting.
+ */
+ void copyContacts();
+
+ /**
+ Cuts the selected contacts and stores them for later pasting.
+ */
+ void cutContacts();
+
+ /**
+ Paste contacts from clipboard into the address book.
+ */
+ void pasteContacts();
+
+ /**
+ Paste given contacts into the address book.
+
+ @param list The list of addressee, which shall be pasted.
+ */
+ void pasteContacts( KABC::Addressee::List &list );
+
+ /**
+ Sets the whoAmI contact, that is used by many other programs to
+ get personal information about the current user.
+ */
+ void setWhoAmI();
+
+ /**
+ Displays the category dialog and applies the result to all
+ selected contacts.
+ */
+ void setCategories();
+
+ /**
+ Sets the field list of the Incremental Search Widget.
+ */
+ void setSearchFields( const KABC::Field::List &fields );
+
+ /**
+ Search with the current search field for a contact, that matches
+ the given text, and selects it in the view.
+ */
+ void incrementalSearch( const QString& text );
+
+ /**
+ Marks the address book as modified.
+ */
+ void setModified();
+ /**
+ Marks the address book as modified without refreshing the view.
+ */
+ void setModifiedWOrefresh();
+
+ /**
+ Marks the address book as modified concerning the argument.
+ */
+ void setModified( bool modified );
+
+ /**
+ Returns whether the address book is modified.
+ */
+ bool modified() const;
+
+ /**
+ Called whenever an contact is modified in the contact editor
+ dialog or the quick edit.
+ */
+ void contactModified( const KABC::Addressee &addr );
+
+ /**
+ DCOP METHODS.
+ */
+ void addEmail( QString addr );
+ void importVCard( const KURL& url, bool showPreview );
+ void importVCard( const QString& vCard, bool showPreview );
+ void newContact();
+ QString getNameByPhone( const QString& phone );
+ /**
+ END DCOP METHODS
+ */
+
+ /**
+ Saves the contents of the AddressBook back to disk.
+ */
+ void save();
+
+ /**
+ Undos the last command using the undo stack.
+ */
+ void undo();
+
+ /**
+ Redos the last command that was undone, using the redo stack.
+ */
+ void redo();
+
+ /**
+ Shows the edit dialog for the given uid. If the uid is QString::null,
+ the method will try to find a selected addressee in the view.
+ */
+ void editContact( const QString &uid /*US = QString::null*/ );
+//US added a second method without defaultparameter
+ void editContact2();
+
+ /**
+ Launches the configuration dialog.
+ */
+ void openConfigDialog();
+
+ /**
+ Launches the ldap search dialog.
+ */
+ void openLDAPDialog();
+
+ /**
+ Creates a KAddressBookPrinter, which will display the print
+ dialog and do the printing.
+ */
+ void print();
+
+ /**
+ Registers a new GUI client, so plugins can register its actions.
+ */
+ void addGUIClient( KXMLGUIClient *client );
+
+ signals:
+ void contactSelected( const QString &name );
+ void contactSelected( const QPixmap &pixmap );
+ public slots:
+ void setDetailsVisible( bool visible );
+ void setDetailsToState();
+ private slots:
+ void setJumpButtonBarVisible( bool visible );
+
+ void extensionModified( const KABC::Addressee::List &list );
+ void clipboardDataChanged();
+ void updateActionMenu();
+ void configureKeyBindings();
+#ifdef KAB_EMBEDDED
+ void configureResources();
+#endif //KAB_EMBEDDED
+
+ void slotEditorDestroyed( const QString &uid );
+ void configurationChanged();
+ void addressBookChanged();
+
+ private:
+ void initGUI();
+ void initActions();
+
+ AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent,
+ const char *name = 0 );
+
+ KXMLGUIClient *mGUIClient;
+
+ KABC::AddressBook *mAddressBook;
+
+ ViewManager *mViewManager;
+ // QSplitter *mDetailsSplitter;
+ //QSplitter *mExtensionBarSplitter;
+ ViewContainer *mDetails;
+ KDGanttMinimizeSplitter* mMiniSplitter;
+ XXPortManager *mXXPortManager;
+ JumpButtonBar *mJumpButtonBar;
+ IncSearchWidget *mIncSearchWidget;
+ ExtensionManager *mExtensionManager;
+
+ KCMultiDialog *mConfigureDialog;
+
+#ifndef KAB_EMBEDDED
+
+ KCMultiDialog *mConfigureDialog;
+ LDAPSearchDialog *mLdapSearchDialog;
+#endif //KAB_EMBEDDED
+ QDict<AddresseeEditorDialog> mEditorDict;
+
+ bool mReadWrite;
+ bool mModified;
+ bool mIsPart;
+
+ //US file menu
+ KAction *mActionMail;
+ KAction* mActionPrint;
+ KAction* mActionNewContact;
+ KAction *mActionSave;
+ KAction *mActionEditAddressee;
+ KAction *mActionMailVCard;
+ KAction *mActionQuit;
+
+ //US edit menu
+ KAction *mActionCopy;
+ KAction *mActionCut;
+ KAction *mActionPaste;
+ KAction *mActionSelectAll;
+ KAction *mActionUndo;
+ KAction *mActionRedo;
+ KAction *mActionDelete;
+
+ //US settings menu
+ KAction *mActionConfigResources;
+ KAction *mActionConfigKAddressbook;
+ KAction *mActionConfigShortcuts;
+ KAction *mActionConfigureToolbars;
+ KAction *mActionKeyBindings;
+ KToggleAction *mActionJumpBar;
+ KToggleAction *mActionDetails;
+ KAction *mActionWhoAmI;
+ KAction *mActionCategories;
+ KAction *mActionAboutKAddressbook;
+
+ KAction *mActionDeleteView;
+
+ QPopupMenu *viewMenu;
+ QPopupMenu *filterMenu;
+ QPopupMenu *settingsMenu;
+
+//US QAction *mActionSave;
+ QPopupMenu *ImportMenu;
+ QPopupMenu *ExportMenu;
+
+#ifndef KAB_EMBEDDED
+ KAddressBookService *mAddressBookService;
+#endif //KAB_EMBEDDED
+
+ class KABCorePrivate;
+ KABCorePrivate *d;
+
+#ifdef KAB_EMBEDDED
+ KAddressBookMain *mMainWindow; // should be the same like mGUIClient
+#endif //KAB_EMBEDDED
+
+};
+
+#endif