00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef AKONADI_STANDARDCONTACTACTIONMANAGER_H
00023 #define AKONADI_STANDARDCONTACTACTIONMANAGER_H
00024
00025 #include "akonadi-contact_export.h"
00026
00027 #include <akonadi/standardactionmanager.h>
00028
00029 #include <QtCore/QObject>
00030
00031 class KAction;
00032 class KActionCollection;
00033 class QItemSelectionModel;
00034 class QWidget;
00035
00036 namespace Akonadi {
00037
00038 class Item;
00039
00046 class AKONADI_CONTACT_EXPORT StandardContactActionManager : public QObject
00047 {
00048 Q_OBJECT
00049
00050 public:
00054 enum Type {
00055 CreateContact = StandardActionManager::LastType + 1,
00056 CreateContactGroup,
00057 EditItem,
00058 LastType
00059 };
00060
00067 explicit StandardContactActionManager( KActionCollection *actionCollection, QWidget *parent = 0 );
00068
00072 ~StandardContactActionManager();
00073
00079 void setCollectionSelectionModel( QItemSelectionModel *selectionModel );
00080
00085 void setItemSelectionModel( QItemSelectionModel* selectionModel );
00086
00092 KAction* createAction( Type type );
00093
00099 KAction* createAction( StandardActionManager::Type type );
00100
00105 void createAllActions();
00106
00110 KAction* action( Type type ) const;
00111
00115 KAction* action( StandardActionManager::Type type ) const;
00116
00129 void setActionText( StandardActionManager::Type type, const KLocalizedString &text );
00130
00138 void interceptAction( Type type, bool intercept = true );
00139
00147 void interceptAction( StandardActionManager::Type type, bool intercept = true );
00148
00153 Akonadi::Collection::List selectedCollections() const;
00154
00159 Akonadi::Item::List selectedItems() const;
00160
00161 Q_SIGNALS:
00167 void actionStateUpdated();
00168
00169 private:
00170
00171 class Private;
00172 Private* const d;
00173
00174 Q_PRIVATE_SLOT( d, void updateActions() )
00175 Q_PRIVATE_SLOT( d, void slotCreateContact() )
00176 Q_PRIVATE_SLOT( d, void slotCreateContactGroup() )
00177 Q_PRIVATE_SLOT( d, void slotEditItem() )
00178
00179 };
00180
00181 }
00182
00183 #endif