diff --git a/foldercollectionmonitor.cpp b/foldercollectionmonitor.cpp index 1df2d520f..f88cccd77 100644 --- a/foldercollectionmonitor.cpp +++ b/foldercollectionmonitor.cpp @@ -20,6 +20,9 @@ #include #include #include +#include +#include +#include FolderCollectionMonitor::FolderCollectionMonitor(QObject *parent) :QObject( parent ) @@ -54,3 +57,25 @@ void FolderCollectionMonitor::compactAllFolders( bool immediate ) kDebug() << "AKONADI PORT: Need to implement it " << Q_FUNC_INFO; } + +void FolderCollectionMonitor::expure( const Akonadi::Collection & col ) +{ + Akonadi::ItemFetchJob *job = new Akonadi::ItemFetchJob( col,this ); + connect( job, SIGNAL( result( KJob* ) ), this, SLOT( slotFetchJob( KJob* ) ) ); + +} + +void FolderCollectionMonitor::slotFetchJob( KJob *job ) +{ + if ( job->error() ) { + static_cast(job)->ui()->showErrorMessage(); + return; + } + Akonadi::ItemFetchJob *fjob = dynamic_cast( job ); + if ( !fjob ) + return; + Akonadi::Item::List lstItem = fjob->items(); + Akonadi::ItemDeleteJob *jobDelete = new Akonadi::ItemDeleteJob(lstItem,this ); + +} + diff --git a/foldercollectionmonitor.h b/foldercollectionmonitor.h index 04b5e484d..eaca737f2 100644 --- a/foldercollectionmonitor.h +++ b/foldercollectionmonitor.h @@ -20,8 +20,11 @@ #define FOLDERCOLLECTIONMONITOR_H #include +#include +#include namespace Akonadi { class ChangeRecorder; + class Collection; } class FolderCollectionMonitor : public QObject @@ -34,6 +37,9 @@ public: Akonadi::ChangeRecorder * monitor(); void expireAllFolders(bool immediate ); void compactAllFolders( bool immediate ); + void expure( const Akonadi::Collection& ); +private slots: + void slotFetchJob( KJob *job ); private: Akonadi::ChangeRecorder *mMonitor; }; diff --git a/kmkernel.cpp b/kmkernel.cpp index 9c811028d..951272c7b 100644 --- a/kmkernel.cpp +++ b/kmkernel.cpp @@ -2132,6 +2132,8 @@ void KMKernel::slotEmptyTrash() } #else kDebug() << "AKONADI PORT: Disabled code in " << Q_FUNC_INFO; + Akonadi::Collection trash = trashCollectionFolder(); + mFolderCollectionMonitor->expure( trash ); #endif }