00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef AKONADI_STANDARDACTIONMANAGER_H
00021 #define AKONADI_STANDARDACTIONMANAGER_H
00022
00023 #include "akonadi_export.h"
00024
00025 #include <QtCore/QObject>
00026
00027 class KAction;
00028 class KActionCollection;
00029 class KLocalizedString;
00030 class QItemSelectionModel;
00031 class QWidget;
00032
00033 namespace Akonadi {
00034
00035 class FavoriteCollectionsModel;
00036
00091 class AKONADI_EXPORT StandardActionManager : public QObject
00092 {
00093 Q_OBJECT
00094 public:
00098 enum Type {
00099 CreateCollection,
00100 CopyCollections,
00101 DeleteCollections,
00102 SynchronizeCollections,
00103 CollectionProperties,
00104 CopyItems,
00105 Paste,
00106 DeleteItems,
00107 ManageLocalSubscriptions,
00108 AddToFavoriteCollections,
00109 RemoveFromFavoriteCollections,
00110 RenameFavoriteCollection,
00111 CopyCollectionToMenu,
00112 CopyItemToMenu,
00113 MoveItemToMenu,
00114 MoveCollectionToMenu,
00115 CutItems,
00116 CutCollections,
00117 LastType
00118 };
00119
00126 explicit StandardActionManager( KActionCollection *actionCollection, QWidget *parent = 0 );
00127
00131 ~StandardActionManager();
00132
00138 void setCollectionSelectionModel( QItemSelectionModel *selectionModel );
00139
00144 void setItemSelectionModel( QItemSelectionModel* selectionModel );
00145
00153 void setFavoriteCollectionsModel( FavoriteCollectionsModel *favoritesModel );
00154
00162 void setFavoriteSelectionModel( QItemSelectionModel *selectionModel );
00163
00169 KAction* createAction( Type type );
00170
00175 void createAllActions();
00176
00180 KAction* action( Type type ) const;
00181
00194 void setActionText( Type type, const KLocalizedString &text );
00195
00196 Q_SIGNALS:
00202 void actionStateUpdated();
00203
00204 private:
00205
00206 class Private;
00207 Private* const d;
00208
00209 Q_PRIVATE_SLOT( d, void updateActions() )
00210 Q_PRIVATE_SLOT( d, void clipboardChanged(QClipboard::Mode) )
00211 Q_PRIVATE_SLOT( d, void collectionSelectionChanged() )
00212 Q_PRIVATE_SLOT( d, void favoriteSelectionChanged() )
00213
00214 Q_PRIVATE_SLOT( d, void slotCreateCollection() )
00215 Q_PRIVATE_SLOT( d, void slotCopyCollections() )
00216 Q_PRIVATE_SLOT( d, void slotCutCollections() )
00217 Q_PRIVATE_SLOT( d, void slotDeleteCollection() )
00218 Q_PRIVATE_SLOT( d, void slotSynchronizeCollection() )
00219 Q_PRIVATE_SLOT( d, void slotCollectionProperties() )
00220 Q_PRIVATE_SLOT( d, void slotCopyItems() )
00221 Q_PRIVATE_SLOT( d, void slotCutItems() )
00222 Q_PRIVATE_SLOT( d, void slotPaste() )
00223 Q_PRIVATE_SLOT( d, void slotDeleteItems() )
00224 Q_PRIVATE_SLOT( d, void slotLocalSubscription() )
00225 Q_PRIVATE_SLOT( d, void slotAddToFavorites() )
00226 Q_PRIVATE_SLOT( d, void slotRemoveFromFavorites() )
00227 Q_PRIVATE_SLOT( d, void slotRenameFavorite() )
00228 Q_PRIVATE_SLOT( d, void slotCopyCollectionTo(QAction*) )
00229 Q_PRIVATE_SLOT( d, void slotMoveCollectionTo(QAction*) )
00230 Q_PRIVATE_SLOT( d, void slotCopyItemTo(QAction*) )
00231 Q_PRIVATE_SLOT( d, void slotMoveItemTo(QAction*) )
00232
00233 Q_PRIVATE_SLOT( d, void collectionCreationResult(KJob*) )
00234 Q_PRIVATE_SLOT( d, void collectionDeletionResult(KJob*) )
00235 Q_PRIVATE_SLOT( d, void pasteResult(KJob*) )
00236
00237 };
00238
00239 }
00240
00241 #endif