00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "standardcalendaractionmanager.h"
00023
00024 #include <akonadi/entitytreemodel.h>
00025
00026 #include <kaction.h>
00027 #include <kactioncollection.h>
00028 #include <kcalcore/event.h>
00029 #include <kcalcore/journal.h>
00030 #include <kcalcore/todo.h>
00031 #include <klocale.h>
00032
00033 #include <QtGui/QItemSelectionModel>
00034
00035 using namespace Akonadi;
00036
00037 class StandardCalendarActionManager::Private
00038 {
00039 public:
00040 Private( KActionCollection *actionCollection, QWidget *parentWidget, StandardCalendarActionManager *parent )
00041 : mActionCollection( actionCollection ),
00042 mParentWidget( parentWidget ),
00043 mCollectionSelectionModel( 0 ),
00044 mItemSelectionModel( 0 ),
00045 mParent( parent )
00046 {
00047 mGenericManager = new StandardActionManager( actionCollection, parentWidget );
00048 mParent->connect( mGenericManager, SIGNAL( actionStateUpdated() ),
00049 mParent, SIGNAL( actionStateUpdated() ) );
00050 mGenericManager->createAllActions();
00051
00052 mGenericManager->action( Akonadi::StandardActionManager::CreateCollection )->setText(
00053 i18n( "Add Calendar Folder..." ) );
00054 mGenericManager->action( Akonadi::StandardActionManager::CreateCollection )->setWhatsThis(
00055 i18n( "Add a new calendar folder to the currently selected calendar folder." ) );
00056
00057 mGenericManager->setActionText( Akonadi::StandardActionManager::CopyCollections,
00058 ki18np( "Copy Calendar Folder", "Copy %1 Calendar Folders" ) );
00059 mGenericManager->action( Akonadi::StandardActionManager::CopyCollections )->setWhatsThis(
00060 i18n( "Copy the selected calendar folders to the clipboard." ) );
00061
00062 mGenericManager->setActionText( Akonadi::StandardActionManager::DeleteCollections,
00063 ki18np( "Delete Calendar Folder", "Delete %1 Calendar Folders" ) );
00064 mGenericManager->action( Akonadi::StandardActionManager::DeleteCollections )->setWhatsThis(
00065 i18n( "Delete the selected calendar folders from the calendar." ) );
00066
00067 mGenericManager->setActionText( Akonadi::StandardActionManager::SynchronizeCollections,
00068 ki18np( "Update Calendar Folder", "Update %1 Calendar Folders" ) );
00069 mGenericManager->action( Akonadi::StandardActionManager::SynchronizeCollections )->setWhatsThis(
00070 i18n( "Update the content of the selected calendar folders." ) );
00071
00072 mGenericManager->setActionText( Akonadi::StandardActionManager::CutCollections,
00073 ki18np( "Cut Calendar Folder", "Cut %1 Calendar Folders" ) );
00074 mGenericManager->action( Akonadi::StandardActionManager::CutCollections )->setWhatsThis(
00075 i18n( "Cut the selected calendar folders from the calendar." ) );
00076
00077 mGenericManager->action( Akonadi::StandardActionManager::CollectionProperties )->setText(
00078 i18n( "Folder Properties..." ) );
00079 mGenericManager->action( Akonadi::StandardActionManager::CollectionProperties)->setWhatsThis(
00080 i18n( "Open a dialog to edit the properties of the selected calendar folder." ) );
00081
00082 mGenericManager->setActionText( Akonadi::StandardActionManager::CopyItems,
00083 ki18np( "Copy Event", "Copy %1 Events" ) );
00084 mGenericManager->action( Akonadi::StandardActionManager::CopyItems )->setWhatsThis(
00085 i18n( "Copy the selected events to the clipboard." ) );
00086
00087 mGenericManager->setActionText( Akonadi::StandardActionManager::DeleteItems,
00088 ki18np( "Delete Event", "Delete %1 Events" ) );
00089 mGenericManager->action( Akonadi::StandardActionManager::DeleteItems )->setWhatsThis(
00090 i18n( "Delete the selected events from the calendar." ) );
00091
00092 mGenericManager->setActionText( Akonadi::StandardActionManager::CutItems, ki18np(
00093 "Cut Event", "Cut %1 Events" ) );
00094 mGenericManager->action( Akonadi::StandardActionManager::CutItems )->setWhatsThis(
00095 i18n( "Cut the selected events from the calendar." ) );
00096
00097 mGenericManager->action( Akonadi::StandardActionManager::CreateResource )->setText(
00098 i18n( "Add &Calendar..." ) );
00099 mGenericManager->action( Akonadi::StandardActionManager::CreateResource )->setWhatsThis(
00100 i18n( "Add a new calendar<p>"
00101 "You will be presented with a dialog where you can select "
00102 "the type of the calendar that shall be added.</p>" ) );
00103
00104 mGenericManager->setActionText( Akonadi::StandardActionManager::DeleteResources,
00105 ki18np( "&Delete Calendar", "&Delete %1 Calendars" ) );
00106 mGenericManager->action( Akonadi::StandardActionManager::DeleteResources )->setWhatsThis(
00107 i18n( "Delete the selected calendars<p>"
00108 "The currently selected calendars will be deleted, "
00109 "along with all the events, todos and journals they contain.</p>" ) );
00110
00111 mGenericManager->action( Akonadi::StandardActionManager::ResourceProperties )->setText(
00112 i18n( "Calendar Properties..." ) );
00113 mGenericManager->action( Akonadi::StandardActionManager::ResourceProperties )->setWhatsThis(
00114 i18n( "Open a dialog to edit properties of the selected calendar." ) );
00115
00116 mGenericManager->setActionText( Akonadi::StandardActionManager::SynchronizeResources,
00117 ki18np( "Update Calendar", "Update %1 Calendars" ) );
00118 mGenericManager->action( Akonadi::StandardActionManager::SynchronizeResources )->setWhatsThis(
00119 i18n( "Updates the content of all folders of the selected calendars." ) );
00120
00121 mGenericManager->action( Akonadi::StandardActionManager::CopyItemToMenu )->setText(
00122 i18n( "&Copy to Calendar" ) );
00123 mGenericManager->action( Akonadi::StandardActionManager::CopyItemToMenu )->setWhatsThis(
00124 i18n( "Copy the selected event to a different calendar." ) );
00125
00126 mGenericManager->action( Akonadi::StandardActionManager::MoveItemToMenu )->setText(
00127 i18n( "&Move to Calendar" ) );
00128 mGenericManager->action( Akonadi::StandardActionManager::MoveItemToMenu )->setWhatsThis(
00129 i18n( "Move the selected event to a different calendar." ) );
00130
00131
00132 mGenericManager->setContextText(
00133 StandardActionManager::CreateCollection, StandardActionManager::DialogTitle,
00134 i18nc( "@title:window", "New Calendar Folder" ) );
00135
00136 mGenericManager->setContextText(
00137 StandardActionManager::CreateCollection, StandardActionManager::ErrorMessageText,
00138 i18n( "Could not create calendar folder: %1" ) );
00139
00140 mGenericManager->setContextText(
00141 StandardActionManager::CreateCollection, StandardActionManager::ErrorMessageTitle,
00142 i18n( "Calendar folder creation failed" ) );
00143
00144 mGenericManager->setContextText(
00145 StandardActionManager::DeleteCollections, StandardActionManager::MessageBoxText,
00146 ki18np( "Do you really want to delete this calendar folder and all its sub-folders?",
00147 "Do you really want to delete %1 calendar folders and all their sub-folders?" ) );
00148
00149 mGenericManager->setContextText(
00150 StandardActionManager::DeleteCollections, StandardActionManager::MessageBoxTitle,
00151 ki18ncp( "@title:window", "Delete calendar folder?", "Delete calendar folders?" ) );
00152
00153 mGenericManager->setContextText(
00154 StandardActionManager::DeleteCollections, StandardActionManager::ErrorMessageText,
00155 i18n( "Could not delete calendar folder: %1" ) );
00156
00157 mGenericManager->setContextText(
00158 StandardActionManager::DeleteCollections, StandardActionManager::ErrorMessageTitle,
00159 i18n( "Calendar folder deletion failed" ) );
00160
00161 mGenericManager->setContextText(
00162 StandardActionManager::CollectionProperties, StandardActionManager::DialogTitle,
00163 i18nc( "@title:window", "Properties of Calendar Folder %1" ) );
00164
00165 mGenericManager->setContextText(
00166 StandardActionManager::DeleteItems, StandardActionManager::MessageBoxText,
00167 ki18np( "Do you really want to delete the selected event?",
00168 "Do you really want to delete %1 events?" ) );
00169
00170 mGenericManager->setContextText(
00171 StandardActionManager::DeleteItems, StandardActionManager::MessageBoxTitle,
00172 ki18ncp( "@title:window", "Delete Event?", "Delete Events?" ) );
00173
00174 mGenericManager->setContextText(
00175 StandardActionManager::DeleteItems, StandardActionManager::ErrorMessageText,
00176 i18n( "Could not delete event: %1" ) );
00177
00178 mGenericManager->setContextText(
00179 StandardActionManager::DeleteItems, StandardActionManager::ErrorMessageTitle,
00180 i18n( "Event deletion failed" ) );
00181
00182 mGenericManager->setContextText(
00183 StandardActionManager::CreateResource, StandardActionManager::DialogTitle,
00184 i18nc( "@title:window", "Add Calendar" ) );
00185
00186 mGenericManager->setContextText(
00187 StandardActionManager::CreateResource, StandardActionManager::ErrorMessageText,
00188 i18n( "Could not create calendar: %1" ) );
00189
00190 mGenericManager->setContextText(
00191 StandardActionManager::CreateResource, StandardActionManager::ErrorMessageTitle,
00192 i18n( "Calendar creation failed" ) );
00193
00194 mGenericManager->setContextText(
00195 StandardActionManager::DeleteResources, StandardActionManager::MessageBoxText,
00196 ki18np( "Do you really want to delete this calendar?",
00197 "Do you really want to delete %1 calendars?" ) );
00198
00199 mGenericManager->setContextText(
00200 StandardActionManager::DeleteResources, StandardActionManager::MessageBoxTitle,
00201 ki18ncp( "@title:window", "Delete Calendar?", "Delete Calendars?" ) );
00202
00203 mGenericManager->setContextText(
00204 StandardActionManager::Paste, StandardActionManager::ErrorMessageText,
00205 i18n( "Could not paste event: %1" ) );
00206
00207 mGenericManager->setContextText(
00208 StandardActionManager::Paste, StandardActionManager::ErrorMessageTitle,
00209 i18n( "Paste failed" ) );
00210
00211 mGenericManager->setMimeTypeFilter( QStringList() << QLatin1String( "text/calendar" ) );
00212 mGenericManager->setCapabilityFilter( QStringList() << QLatin1String( "Resource" ) );
00213 }
00214
00215 ~Private()
00216 {
00217 delete mGenericManager;
00218 }
00219
00220 static bool hasWritableCollection( const QModelIndex &index, const QString &mimeType )
00221 {
00222 const Akonadi::Collection collection =
00223 index.data( Akonadi::EntityTreeModel::CollectionRole ).value<Akonadi::Collection>();
00224 if ( collection.isValid() ) {
00225 if ( collection.contentMimeTypes().contains( mimeType ) &&
00226 ( collection.rights() & Akonadi::Collection::CanCreateItem ) ) {
00227 return true;
00228 }
00229 }
00230
00231 const QAbstractItemModel *model = index.model();
00232 if ( !model )
00233 return false;
00234
00235 for ( int row = 0; row < model->rowCount( index ); ++row ) {
00236 if ( hasWritableCollection( model->index( row, 0, index ), mimeType ) )
00237 return true;
00238 }
00239
00240 return false;
00241 }
00242
00243 bool hasWritableCollection( const QString &mimeType ) const
00244 {
00245 if ( !mCollectionSelectionModel )
00246 return false;
00247
00248 const QAbstractItemModel *collectionModel = mCollectionSelectionModel->model();
00249 for ( int row = 0; row < collectionModel->rowCount(); ++row ) {
00250 if ( hasWritableCollection( collectionModel->index( row, 0, QModelIndex() ), mimeType ) )
00251 return true;
00252 }
00253
00254 return false;
00255 }
00256
00257 void updateActions()
00258 {
00259 if ( !mItemSelectionModel )
00260 return;
00261
00262
00263 const int itemCount = mItemSelectionModel->selectedRows().count();
00264 if ( itemCount == 1 ) {
00265 const QModelIndex index = mItemSelectionModel->selectedRows().first();
00266 if ( index.isValid() ) {
00267 const QString mimeType = index.data( EntityTreeModel::MimeTypeRole ).toString();
00268 if ( mimeType == KCalCore::Event::eventMimeType() ) {
00269 mGenericManager->setActionText( Akonadi::StandardActionManager::CopyItems,
00270 ki18np( "Copy Event", "Copy %1 Events" ) );
00271 mGenericManager->action( Akonadi::StandardActionManager::CopyItemToMenu )->setText( i18n( "Copy Event To" ) );
00272 mGenericManager->action( Akonadi::StandardActionManager::CopyItemToDialog )->setText( i18n( "Copy Event To" ) );
00273 mGenericManager->setActionText( Akonadi::StandardActionManager::DeleteItems,
00274 ki18np( "Delete Event", "Delete %1 Events" ) );
00275 mGenericManager->setActionText( Akonadi::StandardActionManager::CutItems,
00276 ki18np( "Cut Event", "Cut %1 Events" ) );
00277 mGenericManager->action( Akonadi::StandardActionManager::MoveItemToMenu )->setText( i18n( "Move Event To" ) );
00278 mGenericManager->action( Akonadi::StandardActionManager::MoveItemToDialog )->setText( i18n( "Move Event To" ) );
00279 if ( mActions.contains( StandardCalendarActionManager::EditIncidence ) )
00280 mActions.value( StandardCalendarActionManager::EditIncidence )->setText( i18n( "Edit Event..." ) );
00281 } else if ( mimeType == KCalCore::Todo::todoMimeType() ) {
00282 mGenericManager->setActionText( Akonadi::StandardActionManager::CopyItems,
00283 ki18np( "Copy To-do", "Copy %1 To-dos" ) );
00284 mGenericManager->action( Akonadi::StandardActionManager::CopyItemToMenu )->setText( i18n( "Copy To-do To" ) );
00285 mGenericManager->action( Akonadi::StandardActionManager::CopyItemToDialog )->setText( i18n( "Copy To-do To" ) );
00286 mGenericManager->setActionText( Akonadi::StandardActionManager::DeleteItems,
00287 ki18np( "Delete To-do", "Delete %1 To-dos" ) );
00288 mGenericManager->setActionText( Akonadi::StandardActionManager::CutItems,
00289 ki18np( "Cut To-do", "Cut %1 To-dos" ) );
00290 mGenericManager->action( Akonadi::StandardActionManager::MoveItemToMenu )->setText( i18n( "Move To-do To" ) );
00291 mGenericManager->action( Akonadi::StandardActionManager::MoveItemToDialog )->setText( i18n( "Move To-do To" ) );
00292 if ( mActions.contains( StandardCalendarActionManager::EditIncidence ) )
00293 mActions.value( StandardCalendarActionManager::EditIncidence )->setText( i18n( "Edit To-do..." ) );
00294 } else if ( mimeType == KCalCore::Journal::journalMimeType() ) {
00295 mGenericManager->setActionText( Akonadi::StandardActionManager::CopyItems,
00296 ki18np( "Copy Journal", "Copy %1 Journals" ) );
00297 mGenericManager->action( Akonadi::StandardActionManager::CopyItemToMenu )->setText( i18n( "Copy Journal To" ) );
00298 mGenericManager->action( Akonadi::StandardActionManager::CopyItemToDialog )->setText( i18n( "Copy Journal To" ) );
00299 mGenericManager->setActionText( Akonadi::StandardActionManager::DeleteItems,
00300 ki18np( "Delete Journal", "Delete %1 Journals" ) );
00301 mGenericManager->setActionText( Akonadi::StandardActionManager::CutItems,
00302 ki18np( "Cut Journal", "Cut %1 Journals" ) );
00303 mGenericManager->action( Akonadi::StandardActionManager::MoveItemToMenu )->setText( i18n( "Move Journal To" ) );
00304 mGenericManager->action( Akonadi::StandardActionManager::MoveItemToDialog )->setText( i18n( "Move Journal To" ) );
00305 if ( mActions.contains( StandardCalendarActionManager::EditIncidence ) )
00306 mActions.value( StandardCalendarActionManager::EditIncidence )->setText( i18n( "Edit Journal..." ) );
00307 }
00308 }
00309 }
00310
00311
00312 if ( mActions.contains( StandardCalendarActionManager::CreateEvent ) )
00313 mActions[ StandardCalendarActionManager::CreateEvent ]->setEnabled( hasWritableCollection( KCalCore::Event::eventMimeType() ) );
00314 if ( mActions.contains( StandardCalendarActionManager::CreateTodo ) )
00315 mActions[ StandardCalendarActionManager::CreateTodo ]->setEnabled( hasWritableCollection( KCalCore::Todo::todoMimeType() ) );
00316 if ( mActions.contains( StandardCalendarActionManager::CreateJournal ) )
00317 mActions[ StandardCalendarActionManager::CreateJournal ]->setEnabled( hasWritableCollection( KCalCore::Journal::journalMimeType() ) );
00318
00319 if ( mActions.contains( StandardCalendarActionManager::EditIncidence ) ) {
00320 bool canEditItem = true;
00321
00322
00323 canEditItem = canEditItem && (itemCount == 1);
00324
00325
00326 const QModelIndexList rows = mItemSelectionModel->selectedRows();
00327 if ( rows.count() == 1 ) {
00328 const QModelIndex index = rows.first();
00329 const Collection parentCollection = index.data( EntityTreeModel::ParentCollectionRole ).value<Collection>();
00330 if ( parentCollection.isValid() )
00331 canEditItem = canEditItem && (parentCollection.rights() & Collection::CanChangeItem);
00332 }
00333
00334 mActions.value( StandardCalendarActionManager::EditIncidence )->setEnabled( canEditItem );
00335 }
00336
00337 if ( mActions.contains( StandardCalendarActionManager::CreateSubTodo ) )
00338 mActions[ StandardCalendarActionManager::CreateSubTodo ]->setEnabled( false );
00339
00340 if ( itemCount == 1 ) {
00341 const Akonadi::Item item = mGenericManager->selectedItems().first();
00342
00343 if ( item.isValid() && item.hasPayload<KCalCore::Todo::Ptr>() ) {
00344 if ( mActions.contains( StandardCalendarActionManager::CreateSubTodo ) )
00345 mActions[ StandardCalendarActionManager::CreateSubTodo ]->setEnabled( hasWritableCollection( KCalCore::Todo::todoMimeType() ) );
00346 }
00347 }
00348
00349 emit mParent->actionStateUpdated();
00350 }
00351
00352 void slotCreateEvent()
00353 {
00354
00355 }
00356
00357 void slotCreateTodo()
00358 {
00359
00360 }
00361
00362 void slotCreateSubTodo()
00363 {
00364
00365 }
00366
00367 void slotCreateJournal()
00368 {
00369
00370 }
00371
00372 void slotEditIncidence()
00373 {
00374
00375 }
00376
00377 KActionCollection *mActionCollection;
00378 QWidget *mParentWidget;
00379 StandardActionManager *mGenericManager;
00380 QItemSelectionModel *mCollectionSelectionModel;
00381 QItemSelectionModel *mItemSelectionModel;
00382 QHash<StandardCalendarActionManager::Type, KAction*> mActions;
00383 QSet<StandardCalendarActionManager::Type> mInterceptedActions;
00384 StandardCalendarActionManager *mParent;
00385 };
00386
00387
00388 Akonadi::StandardCalendarActionManager::StandardCalendarActionManager( KActionCollection *actionCollection, QWidget *parent )
00389 : QObject( parent ),
00390 d( new Private( actionCollection, parent, this ) )
00391 {
00392 }
00393
00394 StandardCalendarActionManager::~StandardCalendarActionManager()
00395 {
00396 delete d;
00397 }
00398
00399 void StandardCalendarActionManager::setCollectionSelectionModel( QItemSelectionModel *selectionModel )
00400 {
00401 d->mCollectionSelectionModel = selectionModel;
00402 d->mGenericManager->setCollectionSelectionModel( selectionModel );
00403
00404 connect( selectionModel->model(), SIGNAL( rowsInserted( const QModelIndex&, int, int ) ),
00405 SLOT( updateActions() ) );
00406 connect( selectionModel->model(), SIGNAL( rowsRemoved( const QModelIndex&, int, int ) ),
00407 SLOT( updateActions() ) );
00408 connect( selectionModel, SIGNAL( selectionChanged( const QItemSelection&, const QItemSelection& ) ),
00409 SLOT( updateActions() ) );
00410 d->updateActions();
00411 }
00412
00413 void StandardCalendarActionManager::setItemSelectionModel( QItemSelectionModel *selectionModel )
00414 {
00415 d->mItemSelectionModel = selectionModel;
00416 d->mGenericManager->setItemSelectionModel( selectionModel );
00417
00418 connect( selectionModel, SIGNAL( selectionChanged( const QItemSelection&, const QItemSelection& ) ),
00419 SLOT( updateActions() ) );
00420
00421 d->updateActions();
00422 }
00423
00424 KAction* StandardCalendarActionManager::createAction( StandardCalendarActionManager::Type type )
00425 {
00426 if ( d->mActions.contains( type ) )
00427 return d->mActions.value( type );
00428
00429 KAction *action = 0;
00430 switch ( type ) {
00431 case CreateEvent:
00432 action = new KAction( d->mParentWidget );
00433 action->setIcon( KIcon( QLatin1String( "appointment-new" ) ) );
00434 action->setText( i18n( "New E&vent..." ) );
00435 action->setWhatsThis( i18n( "Create a new event" ) );
00436 d->mActions.insert( CreateEvent, action );
00437 d->mActionCollection->addAction( QString::fromLatin1( "akonadi_event_create" ), action );
00438 connect( action, SIGNAL( triggered( bool ) ), this, SLOT( slotCreateEvent() ) );
00439 break;
00440 case CreateTodo:
00441 action = new KAction( d->mParentWidget );
00442 action->setIcon( KIcon( QLatin1String( "task-new" ) ) );
00443 action->setText( i18n( "New &To-do..." ) );
00444 action->setWhatsThis( i18n( "Create a new To-do" ) );
00445 d->mActions.insert( CreateTodo, action );
00446 d->mActionCollection->addAction( QString::fromLatin1( "akonadi_todo_create" ), action );
00447 connect( action, SIGNAL( triggered( bool ) ), this, SLOT( slotCreateTodo() ) );
00448 break;
00449 case CreateSubTodo:
00450 action = new KAction( d->mParentWidget );
00451 action->setIcon( KIcon( QLatin1String( "new_subtodo" ) ) );
00452 action->setText( i18n( "New Su&b-to-do..." ) );
00453 action->setWhatsThis( i18n( "Create a new Sub-to-do" ) );
00454 d->mActions.insert( CreateSubTodo, action );
00455 d->mActionCollection->addAction( QString::fromLatin1( "akonadi_subtodo_create" ), action );
00456 connect( action, SIGNAL( triggered( bool ) ), this, SLOT( slotCreateSubTodo() ) );
00457 break;
00458 case CreateJournal:
00459 action = new KAction( d->mParentWidget );
00460 action->setIcon( KIcon( QLatin1String( "journal-new" ) ) );
00461 action->setText( i18n( "New &Journal..." ) );
00462 action->setWhatsThis( i18n( "Create a new Journal" ) );
00463 d->mActions.insert( CreateJournal, action );
00464 d->mActionCollection->addAction( QString::fromLatin1( "akonadi_journal_create" ), action );
00465 connect( action, SIGNAL( triggered( bool ) ), this, SLOT( slotCreateJournal() ) );
00466 break;
00467 case EditIncidence:
00468 action = new KAction( d->mParentWidget );
00469 action->setText( i18n( "&Edit..." ) );
00470 action->setWhatsThis( i18n( "Edit the selected incidence." ) );
00471 d->mActions.insert( EditIncidence, action );
00472 d->mActionCollection->addAction( QString::fromLatin1( "akonadi_incidence_edit" ), action );
00473 connect( action, SIGNAL( triggered( bool ) ), this, SLOT( slotEditIncidence() ) );
00474 break;
00475 default:
00476 Q_ASSERT( false );
00477 break;
00478 }
00479
00480 return action;
00481 }
00482
00483 KAction* StandardCalendarActionManager::createAction( StandardActionManager::Type type )
00484 {
00485 return d->mGenericManager->createAction( type );
00486 }
00487
00488 void StandardCalendarActionManager::createAllActions()
00489 {
00490 createAction( CreateEvent );
00491 createAction( CreateTodo );
00492 createAction( CreateSubTodo );
00493 createAction( CreateJournal );
00494 createAction( EditIncidence );
00495
00496 d->mGenericManager->createAllActions();
00497 d->updateActions();
00498 }
00499
00500 KAction* StandardCalendarActionManager::action( StandardCalendarActionManager::Type type ) const
00501 {
00502 if ( d->mActions.contains( type ) )
00503 return d->mActions.value( type );
00504
00505 return 0;
00506 }
00507
00508 KAction* StandardCalendarActionManager::action( StandardActionManager::Type type ) const
00509 {
00510 return d->mGenericManager->action( type );
00511 }
00512
00513 void StandardCalendarActionManager::setActionText( StandardActionManager::Type type, const KLocalizedString &text )
00514 {
00515 d->mGenericManager->setActionText( type, text );
00516 }
00517
00518 void StandardCalendarActionManager::interceptAction( StandardCalendarActionManager::Type type, bool intercept )
00519 {
00520 if ( intercept )
00521 d->mInterceptedActions.insert( type );
00522 else
00523 d->mInterceptedActions.remove( type );
00524 }
00525
00526 void StandardCalendarActionManager::interceptAction( StandardActionManager::Type type, bool intercept )
00527 {
00528 d->mGenericManager->interceptAction( type, intercept );
00529 }
00530
00531 Akonadi::Collection::List StandardCalendarActionManager::selectedCollections() const
00532 {
00533 return d->mGenericManager->selectedCollections();
00534 }
00535
00536 Akonadi::Item::List StandardCalendarActionManager::selectedItems() const
00537 {
00538 return d->mGenericManager->selectedItems();
00539 }
00540
00541 void StandardCalendarActionManager::setContextText( StandardActionManager::Type type, StandardActionManager::TextContext context, const QString &text )
00542 {
00543 d->mGenericManager->setContextText( type, context, text );
00544 }
00545
00546 void StandardCalendarActionManager::setContextText( StandardActionManager::Type type, StandardActionManager::TextContext context, const KLocalizedString &text )
00547 {
00548 d->mGenericManager->setContextText( type, context, text );
00549 }
00550
00551 void StandardCalendarActionManager::setCollectionPropertiesPageNames( const QStringList &names )
00552 {
00553 d->mGenericManager->setCollectionPropertiesPageNames( names );
00554 }
00555
00556 #include "standardcalendaractionmanager.moc"