akonadi/contact
standardcontactactionmanager.h
00001 /* 00002 This file is part of Akonadi Contact. 00003 00004 Copyright (c) 2009 - 2010 Tobias Koenig <tokoe@kde.org> 00005 00006 This library is free software; you can redistribute it and/or modify it 00007 under the terms of the GNU Library General Public License as published by 00008 the Free Software Foundation; either version 2 of the License, or (at your 00009 option) any later version. 00010 00011 This library is distributed in the hope that it will be useful, but WITHOUT 00012 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00013 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 00014 License for more details. 00015 00016 You should have received a copy of the GNU Library General Public License 00017 along with this library; see the file COPYING.LIB. If not, write to the 00018 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 00019 02110-1301, USA. 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 //@cond PRIVATE 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 //@endcond 00179 }; 00180 00181 } 00182 00183 #endif