author | zautrix <zautrix> | 2004-06-26 19:01:18 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-06-26 19:01:18 (UTC) |
commit | b9aad1f15dc600e4dbe4c62d3fcced6363188ba3 (patch) (side-by-side diff) | |
tree | 2c3d4004fb21c72cba65793859f9bcd8ffd3a49c /kaddressbook/kabcore.h | |
download | kdepimpi-b9aad1f15dc600e4dbe4c62d3fcced6363188ba3.zip kdepimpi-b9aad1f15dc600e4dbe4c62d3fcced6363188ba3.tar.gz kdepimpi-b9aad1f15dc600e4dbe4c62d3fcced6363188ba3.tar.bz2 |
Initial revision
-rw-r--r-- | kaddressbook/kabcore.h | 421 |
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 |