[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdepim/akonadi
From:       Volker Krause <vkrause () kde ! org>
Date:       2008-03-08 14:12:29
Message-ID: 1204985549.787555.28176.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 783527 by vkrause:

Add item deletion action.


 M  +3 -0      clients/akonadiconsole/akonadiconsoleui.rc  
 M  +22 -0     libakonadi/standardactionmanager.cpp  
 M  +4 -0      libakonadi/standardactionmanager.h  


--- trunk/KDE/kdepim/akonadi/clients/akonadiconsole/akonadiconsoleui.rc \
#783526:783527 @@ -19,6 +19,8 @@
   </Menu>
   <Menu name="item"><text>&amp;Item</text>
     <Action name="akonadi_item_copy"/>
+    <Separator/>
+    <Action name="akonadi_item_delete"/>
   </Menu>
  </MenuBar>
 
@@ -38,6 +40,7 @@
  <Menu name="akonadi_itemview_contextmenu">
    <Action name="akonadi_item_copy"/>
    <Action name="akonadi_paste"/>
+   <Action name="akonadi_item_delete"/>
  </Menu>
 </kpartgui>
 
--- trunk/KDE/kdepim/akonadi/libakonadi/standardactionmanager.cpp #783526:783527
@@ -24,6 +24,8 @@
 #include <libakonadi/collectiondeletejob.h>
 #include <libakonadi/collectionmodel.h>
 #include <libakonadi/collectionpropertiesdialog.h>
+#include <libakonadi/itemdeletejob.h>
+#include <libakonadi/itemmodel.h>
 #include <libakonadi/pastehelper.h>
 #include <libakonadi/subscriptiondialog.h>
 
@@ -57,6 +59,7 @@
   { "akonadi_collection_properties", I18N_NOOP("Folder &Properties..."), \
"configure", 0, SLOT(slotCollectionProperties()) },  { "akonadi_item_copy", 0, \
"edit-copy", 0, SLOT(slotCopyItems()) },  { "akonadi_paste", I18N_NOOP("&Paste"), \
"edit-paste", Qt::CTRL + Qt::Key_V, SLOT(slotPaste()) }, +  { "akonadi_item_delete", \
0, "edit-delete", Qt::Key_Delete, SLOT(slotDeleteItems()) },  { \
"akonadi_manage_local_subscriptions", I18N_NOOP("Manage Local &Subscriptions..."), 0, \
0, SLOT(slotLocalSubscription()) }  };
 static const int numActionData = sizeof actionData / sizeof *actionData;
@@ -76,6 +79,7 @@
 
       pluralLabels.insert( StandardActionManager::CopyCollections, ki18np( "&Copy \
                Folder", "&Copy %1 Folders" ) );
       pluralLabels.insert( StandardActionManager::CopyItems, ki18np( "&Copy Item", \
"&Copy %1 Items" ) ); +      pluralLabels.insert( StandardActionManager::DeleteItems, \
ki18np( "&Delete Item", "&Delete %1 Items" ) );  }
 
     void enableAction( StandardActionManager::Type type, bool enable )
@@ -140,9 +144,11 @@
       }
 
       enableAction( CopyItems, multiItemSelected );
+      enableAction( DeleteItems, multiItemSelected );
 
       updatePluralLabel( CopyCollections, colCount );
       updatePluralLabel( CopyItems, itemCount );
+      updatePluralLabel( DeleteItems, itemCount );
 
       emit q->actionStateUpdated();
     }
@@ -233,6 +239,22 @@
         q->connect( job, SIGNAL(result(KJob*)), q, SLOT(pasteResult(KJob*)) );
     }
 
+    void slotDeleteItems()
+    {
+      if ( KMessageBox::questionYesNo( parentWidget,
+           i18n( "Do you really want to delete all selected items?" ),
+           i18n("Delete?"), KStandardGuiItem::del(), KStandardGuiItem::cancel(),
+           QString(), KMessageBox::Dangerous ) != KMessageBox::Yes )
+        return;
+
+      Q_ASSERT( itemSelectionModel );
+
+      // TODO: fix this once ItemStoreJob can handle item lists
+      foreach ( const QModelIndex index, itemSelectionModel->selectedRows() ) {
+        new ItemDeleteJob( DataReference( index.data( ItemModel::IdRole ).toInt(), \
QString() ), q ); +      }
+    }
+
     void slotLocalSubscription()
     {
       SubscriptionDialog* dlg = new SubscriptionDialog( parentWidget );
--- trunk/KDE/kdepim/akonadi/libakonadi/standardactionmanager.h #783526:783527
@@ -59,7 +59,9 @@
   - Deletion of selected collections (@c akonadi_collection_delete)
   - Synchronization of selected collections (@c akonadi_collection_sync)
   - Showing the collection properties dialog for the current collection (@c \
akonadi_collection_properties) +  - Copying of selected items (@c akonadi_itemcopy)
   - Pasting collections, items or raw data (@c akonadi_paste)
+  - Deleting of selected items (@c akonadi_item_delete)
   - Managing local subscriptions (@c akonadi_manage_local_subscriptions)
 
   The following example shows how to use standard actions in your application:
@@ -89,6 +91,7 @@
       CollectionProperties,
       CopyItems,
       Paste,
+      DeleteItems,
       ManageLocalSubscriptions,
       LastType
     };
@@ -172,6 +175,7 @@
     Q_PRIVATE_SLOT( d, void slotCollectionProperties() )
     Q_PRIVATE_SLOT( d, void slotCopyItems() )
     Q_PRIVATE_SLOT( d, void slotPaste() )
+    Q_PRIVATE_SLOT( d, void slotDeleteItems() )
     Q_PRIVATE_SLOT( d, void slotLocalSubscription() )
 
     Q_PRIVATE_SLOT( d, void collectionCreationResult(KJob*) )


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic