• Skip to content
  • Skip to link menu
KDE 4.8 API Reference
  • KDE API Reference
  • KDE-PIM Libraries
  • KDE Home
  • Contact Us
 

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

akonadi

Skip menu "akonadi"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • Modules
  • Related Pages

KDE-PIM Libraries

Skip menu "KDE-PIM Libraries"
  • akonadi
  •   contact
  •   kmime
  • kabc
  • kalarmcal
  • kblog
  • kcal
  • kcalcore
  • kcalutils
  • kholidays
  • kimap
  • kioslave
  •   imap4
  •   mbox
  •   nntp
  • kldap
  • kmbox
  • kmime
  • kontactinterface
  • kpimidentities
  • kpimtextedit
  •   richtextbuilders
  • kpimutils
  • kresources
  • ktnef
  • kxmlrpcclient
  • mailtransport
  • microblog
  • qgpgme
  • syndication
  •   atom
  •   rdf
  •   rss2
Generated for KDE-PIM Libraries by doxygen 1.7.6.1
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal