akonadi
standardactionmanager.h
00001 /* 00002 Copyright (c) 2008 Volker Krause <vkrause@kde.org> 00003 00004 This library is free software; you can redistribute it and/or modify it 00005 under the terms of the GNU Library General Public License as published by 00006 the Free Software Foundation; either version 2 of the License, or (at your 00007 option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, but WITHOUT 00010 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00011 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 00012 License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to the 00016 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 00017 02110-1301, USA. 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 #include <akonadi/collection.h> 00028 #include <akonadi/item.h> 00029 00030 class KAction; 00031 class KActionCollection; 00032 class KLocalizedString; 00033 class QItemSelectionModel; 00034 class QWidget; 00035 class QMenu; 00036 00037 namespace Akonadi { 00038 00039 class FavoriteCollectionsModel; 00040 00126 class AKONADI_EXPORT StandardActionManager : public QObject 00127 { 00128 Q_OBJECT 00129 public: 00133 enum Type { 00134 CreateCollection, 00135 CopyCollections, 00136 DeleteCollections, 00137 SynchronizeCollections, 00138 CollectionProperties, 00139 CopyItems, 00140 Paste, 00141 DeleteItems, 00142 ManageLocalSubscriptions, 00143 AddToFavoriteCollections, 00144 RemoveFromFavoriteCollections, 00145 RenameFavoriteCollection, 00146 CopyCollectionToMenu, 00147 CopyItemToMenu, 00148 MoveItemToMenu, 00149 MoveCollectionToMenu, 00150 CutItems, 00151 CutCollections, 00152 CreateResource, 00153 DeleteResources, 00154 ResourceProperties, 00155 SynchronizeResources, 00156 ToggleWorkOffline, 00157 CopyCollectionToDialog, 00158 MoveCollectionToDialog, 00159 CopyItemToDialog, 00160 MoveItemToDialog, 00161 SynchronizeCollectionsRecursive, 00162 MoveCollectionsToTrash, 00163 MoveItemsToTrash, 00164 RestoreCollectionsFromTrash, 00165 RestoreItemsFromTrash, 00166 MoveToTrashRestoreCollection, 00167 MoveToTrashRestoreCollectionAlternative, 00168 MoveToTrashRestoreItem, 00169 MoveToTrashRestoreItemAlternative, 00170 SynchronizeFavoriteCollections, 00171 LastType 00172 }; 00173 00177 enum TextContext { 00178 DialogTitle, 00179 DialogText, 00180 MessageBoxTitle, 00181 MessageBoxText, 00182 MessageBoxAlternativeText, 00183 ErrorMessageTitle, 00184 ErrorMessageText 00185 }; 00186 00193 explicit StandardActionManager( KActionCollection *actionCollection, QWidget *parent = 0 ); 00194 00198 ~StandardActionManager(); 00199 00205 void setCollectionSelectionModel( QItemSelectionModel *selectionModel ); 00206 00211 void setItemSelectionModel( QItemSelectionModel* selectionModel ); 00212 00220 void setFavoriteCollectionsModel( FavoriteCollectionsModel *favoritesModel ); 00221 00229 void setFavoriteSelectionModel( QItemSelectionModel *selectionModel ); 00230 00236 KAction* createAction( Type type ); 00237 00242 void createAllActions(); 00243 00247 KAction* action( Type type ) const; 00248 00261 void setActionText( Type type, const KLocalizedString &text ); 00262 00272 void interceptAction( Type type, bool intercept = true ); 00273 00280 Akonadi::Collection::List selectedCollections() const; 00281 00288 Akonadi::Item::List selectedItems() const; 00289 00295 void setContextText( Type type, TextContext context, const QString &text ); 00296 00302 void setContextText( Type type, TextContext context, const KLocalizedString &text ); 00303 00309 void setMimeTypeFilter( const QStringList &mimeTypes ); 00310 00316 void setCapabilityFilter( const QStringList &capabilities ); 00317 00324 void setCollectionPropertiesPageNames( const QStringList &names ); 00325 00330 void createActionFolderMenu(QMenu *menu, Type type); 00331 00332 Q_SIGNALS: 00338 void actionStateUpdated(); 00339 00340 private: 00341 //@cond PRIVATE 00342 class Private; 00343 Private* const d; 00344 00345 Q_PRIVATE_SLOT( d, void updateActions() ) 00346 #ifndef QT_NO_CLIPBOARD 00347 Q_PRIVATE_SLOT( d, void clipboardChanged(QClipboard::Mode) ) 00348 #endif 00349 Q_PRIVATE_SLOT( d, void collectionSelectionChanged() ) 00350 Q_PRIVATE_SLOT( d, void favoriteSelectionChanged() ) 00351 00352 Q_PRIVATE_SLOT( d, void slotCreateCollection() ) 00353 Q_PRIVATE_SLOT( d, void slotCopyCollections() ) 00354 Q_PRIVATE_SLOT( d, void slotCutCollections() ) 00355 Q_PRIVATE_SLOT( d, void slotDeleteCollection() ) 00356 Q_PRIVATE_SLOT( d, void slotMoveCollectionToTrash() ) 00357 Q_PRIVATE_SLOT( d, void slotMoveItemToTrash() ) 00358 Q_PRIVATE_SLOT( d, void slotRestoreCollectionFromTrash() ) 00359 Q_PRIVATE_SLOT( d, void slotRestoreItemFromTrash() ) 00360 Q_PRIVATE_SLOT( d, void slotTrashRestoreCollection() ) 00361 Q_PRIVATE_SLOT( d, void slotTrashRestoreItem() ) 00362 Q_PRIVATE_SLOT( d, void slotSynchronizeCollection() ) 00363 Q_PRIVATE_SLOT( d, void slotSynchronizeCollectionRecursive() ) 00364 Q_PRIVATE_SLOT( d, void slotSynchronizeFavoriteCollections() ) 00365 Q_PRIVATE_SLOT( d, void slotCollectionProperties() ) 00366 Q_PRIVATE_SLOT( d, void slotCopyItems() ) 00367 Q_PRIVATE_SLOT( d, void slotCutItems() ) 00368 Q_PRIVATE_SLOT( d, void slotPaste() ) 00369 Q_PRIVATE_SLOT( d, void slotDeleteItems() ) 00370 Q_PRIVATE_SLOT( d, void slotDeleteItemsDeferred(const Akonadi::Item::List &) ) 00371 Q_PRIVATE_SLOT( d, void slotLocalSubscription() ) 00372 Q_PRIVATE_SLOT( d, void slotAddToFavorites() ) 00373 Q_PRIVATE_SLOT( d, void slotRemoveFromFavorites() ) 00374 Q_PRIVATE_SLOT( d, void slotRenameFavorite() ) 00375 Q_PRIVATE_SLOT( d, void slotCopyCollectionTo() ) 00376 Q_PRIVATE_SLOT( d, void slotMoveCollectionTo() ) 00377 Q_PRIVATE_SLOT( d, void slotCopyItemTo() ) 00378 Q_PRIVATE_SLOT( d, void slotMoveItemTo() ) 00379 Q_PRIVATE_SLOT( d, void slotCopyCollectionTo(QAction*) ) 00380 Q_PRIVATE_SLOT( d, void slotMoveCollectionTo(QAction*) ) 00381 Q_PRIVATE_SLOT( d, void slotCopyItemTo(QAction*) ) 00382 Q_PRIVATE_SLOT( d, void slotMoveItemTo(QAction*) ) 00383 Q_PRIVATE_SLOT( d, void slotCreateResource() ) 00384 Q_PRIVATE_SLOT( d, void slotDeleteResource() ) 00385 Q_PRIVATE_SLOT( d, void slotResourceProperties() ) 00386 Q_PRIVATE_SLOT( d, void slotSynchronizeResource() ) 00387 Q_PRIVATE_SLOT( d, void slotToggleWorkOffline(bool) ) 00388 00389 Q_PRIVATE_SLOT( d, void collectionCreationResult(KJob*) ) 00390 Q_PRIVATE_SLOT( d, void collectionDeletionResult(KJob*) ) 00391 Q_PRIVATE_SLOT( d, void moveCollectionToTrashResult(KJob*) ) 00392 Q_PRIVATE_SLOT( d, void moveItemToTrashResult(KJob*) ) 00393 Q_PRIVATE_SLOT( d, void itemDeletionResult(KJob*) ) 00394 Q_PRIVATE_SLOT( d, void resourceCreationResult(KJob*) ) 00395 Q_PRIVATE_SLOT( d, void pasteResult(KJob*) ) 00396 00397 Q_PRIVATE_SLOT( d, void enableAction(int, bool) ) 00398 Q_PRIVATE_SLOT( d, void updatePluralLabel(int, int) ) 00399 Q_PRIVATE_SLOT( d, void updateAlternatingAction(int) ) 00400 Q_PRIVATE_SLOT( d, bool isFavoriteCollection(const Akonadi::Collection&) ) 00401 00402 Q_PRIVATE_SLOT( d, void aboutToShowMenu() ) 00403 //@endcond 00404 }; 00405 00406 } 00407 00408 #endif
This file is part of the KDE documentation.
Documentation copyright © 1996-2012 The KDE developers.
Generated on Mon May 14 2012 04:53:03 by doxygen 1.7.5 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2012 The KDE developers.
Generated on Mon May 14 2012 04:53:03 by doxygen 1.7.5 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.