From 49f9998b5e498ec6d5d68f9c0db85e742620cc82 Mon Sep 17 00:00:00 2001 From: Laurent Montel Date: Wed, 4 Nov 2009 13:56:30 +0000 Subject: [PATCH] Move ChangeRecorder to kmkernel. It's more logical svn path=/branches/work/akonadi-ports/kdepim/; revision=1044695 --- folderselectiontreeview.cpp | 20 ++------------------ folderselectiontreeview.h | 4 ---- kmkernel.cpp | 24 ++++++++++++++++++------ kmkernel.h | 5 +++-- kmmainwidget.cpp | 2 +- newcomposerwin.cpp | 8 +++----- 6 files changed, 27 insertions(+), 36 deletions(-) diff --git a/folderselectiontreeview.cpp b/folderselectiontreeview.cpp index 651407428..5017d3133 100644 --- a/folderselectiontreeview.cpp +++ b/folderselectiontreeview.cpp @@ -44,14 +44,12 @@ public: :filterModel( 0 ), collectionFolderView( 0 ), entityModel( 0 ), - monitor( 0 ), quotaModel( 0 ), readableproxy( 0 ) { } FolderTreeView *collectionFolderView; Akonadi::EntityTreeModel *entityModel; - Akonadi::ChangeRecorder *monitor; Akonadi::QuotaColorProxyModel *quotaModel; Akonadi::StatisticsProxyModel *filterModel; ReadableCollectionProxyModel *readableproxy; @@ -66,17 +64,7 @@ FolderSelectionTreeView::FolderSelectionTreeView( QWidget *parent, KXMLGUIClient lay->setMargin( 0 ); Akonadi::Session *session = new Akonadi::Session( "KMail Session", this ); - // monitor collection changes - d->monitor = new Akonadi::ChangeRecorder( this ); - d->monitor->setCollectionMonitored( Akonadi::Collection::root() ); - d->monitor->fetchCollection( true ); - d->monitor->setAllMonitored( true ); - d->monitor->setMimeTypeMonitored( "message/rfc822" ); - d->monitor->setResourceMonitored( "akonadi_search_resource" , true ); - - // TODO: Only fetch the envelope etc if possible. - d->monitor->itemFetchScope().fetchFullPayload(true); - d->entityModel = new Akonadi::EntityTreeModel( session, d->monitor, this ); + d->entityModel = new Akonadi::EntityTreeModel( session, KMKernel::self()->monitor(), this ); @@ -129,11 +117,6 @@ void FolderSelectionTreeView::selectCollectionFolder( const Akonadi::Collection d->collectionFolderView->selectionModel()->select(colIndex, QItemSelectionModel::SelectCurrent); } -Akonadi::ChangeRecorder * FolderSelectionTreeView::monitorFolders() -{ - return d->monitor; -} - void FolderSelectionTreeView::setSelectionMode( QAbstractItemView::SelectionMode mode ) { d->collectionFolderView->setSelectionMode( mode ); @@ -245,4 +228,5 @@ ReadableCollectionProxyModel *FolderSelectionTreeView::readableCollectionProxyMo return d->readableproxy; } + #include "folderselectiontreeview.moc" diff --git a/folderselectiontreeview.h b/folderselectiontreeview.h index a4f1f8935..e7587c783 100644 --- a/folderselectiontreeview.h +++ b/folderselectiontreeview.h @@ -49,9 +49,6 @@ public: DisplayNever ///< Nevery display tooltips }; - - Akonadi::ChangeRecorder *monitorFolders(); - void selectCollectionFolder( const Akonadi::Collection & col ); @@ -79,7 +76,6 @@ public: void readConfig(); - private: class FolderSelectionTreeViewPrivate; FolderSelectionTreeViewPrivate * const d; diff --git a/kmkernel.cpp b/kmkernel.cpp index 5fc3c62d7..128f4c4d6 100644 --- a/kmkernel.cpp +++ b/kmkernel.cpp @@ -72,6 +72,7 @@ using KWallet::Wallet; #include #include #include +#include #include "actionscheduler.h" #include @@ -105,6 +106,18 @@ KMKernel::KMKernel (QObject *parent, const char *name) : mIdentityManager(0), mConfigureDialog(0), mMailService(0), mMailManager( 0 ), mContextMenuShown( false ), mWallet( 0 ) { + // monitor collection changes + mMonitor = new Akonadi::ChangeRecorder( this ); + mMonitor->setCollectionMonitored( Akonadi::Collection::root() ); + mMonitor->fetchCollection( true ); + mMonitor->setAllMonitored( true ); + mMonitor->setMimeTypeMonitored( "message/rfc822" ); + mMonitor->setResourceMonitored( "akonadi_search_resource" , true ); + + // TODO: Only fetch the envelope etc if possible. + mMonitor->itemFetchScope().fetchFullPayload(true); + + mStorageDebug = KDebug::registerArea( "Storage Debug", false /* disable by default */ ); kDebug(); setObjectName( name ); @@ -196,6 +209,11 @@ Akonadi::AgentManager *KMKernel::agentManager() return Akonadi::AgentManager::self(); } +Akonadi::ChangeRecorder * KMKernel::monitor() +{ + return mMonitor; +} + int KMKernel::storageDebug() { KMKernel *theKernel = self(); @@ -1513,12 +1531,6 @@ void KMKernel::init() the_weaver = new ThreadWeaver::Weaver( this ); - connect( the_folderMgr, SIGNAL( folderRemoved(const Akonadi::Collection &) ), - this, SIGNAL( folderRemoved(const Akonadi::Collection&) ) ); -#if 0 - connect( the_searchFolderMgr, SIGNAL( folderRemoved(const Akonadi::Collection&) ), - this, SIGNAL( folderRemoved(const Akonadi::Collection&) ) ); -#endif mBackgroundTasksTimer = new QTimer( this ); mBackgroundTasksTimer->setSingleShot( true ); connect( mBackgroundTasksTimer, SIGNAL( timeout() ), this, SLOT( slotRunBackgroundTasks() ) ); diff --git a/kmkernel.h b/kmkernel.h index 6b053a51d..711618b1c 100644 --- a/kmkernel.h +++ b/kmkernel.h @@ -27,6 +27,7 @@ Q_DECLARE_METATYPE(QVector) namespace Akonadi { class Collection; + class ChangeRecorder; } namespace KIO { @@ -266,7 +267,7 @@ public: Akonadi::AgentManager *agentManager(); - + Akonadi::ChangeRecorder *monitor(); //TODO port to akonadi void cleanupImapFolders(); void testDir(const char *_name); @@ -445,7 +446,6 @@ protected slots: signals: void configChanged(); - void folderRemoved( const Akonadi::Collection &aFolder ); void onlineStatusChanged( GlobalSettings::EnumNetworkState::type ); void customTemplatesChanged(); @@ -534,6 +534,7 @@ private: QString mAddMessageLastFolder; Akonadi::AgentManager *mAgentManager; + Akonadi::ChangeRecorder *mMonitor; // special debug area int mStorageDebug; diff --git a/kmmainwidget.cpp b/kmmainwidget.cpp index faafa3900..115d3eb1b 100644 --- a/kmmainwidget.cpp +++ b/kmmainwidget.cpp @@ -871,7 +871,7 @@ void KMMainWidget::createWidgets() mCollectionFolderView = new FolderSelectionTreeView( this, mGUIClient ); connect( mCollectionFolderView->folderTreeView(), SIGNAL( currentChanged( const Akonadi::Collection &) ), this, SLOT( slotFolderChanged( const Akonadi::Collection& ) ) ); - connect( mCollectionFolderView->monitorFolders(), SIGNAL( collectionRemoved( const Akonadi::Collection &) ), this, SLOT( slotCollectionRemoved( const Akonadi::Collection& ) ) ); + connect( KMKernel::self()->monitor(), SIGNAL( collectionRemoved( const Akonadi::Collection &) ), this, SLOT( slotCollectionRemoved( const Akonadi::Collection& ) ) ); mCollectionFolderView->setSelectionMode( QAbstractItemView::ExtendedSelection ); const KConfigGroup cfg( KGlobal::config(), "CollectionFolderView" ); diff --git a/newcomposerwin.cpp b/newcomposerwin.cpp index a1d802393..9ec6b3fb5 100644 --- a/newcomposerwin.cpp +++ b/newcomposerwin.cpp @@ -144,6 +144,8 @@ using KMail::TemplateParser; #include #include +#include + #include // MOC #include "newcomposerwin.moc" @@ -364,12 +366,8 @@ KMComposeWin::KMComposeWin( KMime::Message *aMsg, Composer::TemplateContext cont connect( mEdtFrom, SIGNAL(completionModeChanged(KGlobalSettings::Completion)), SLOT(slotCompletionModeChanged(KGlobalSettings::Completion)) ); -#if 0 - connect( kmkernel->folderMgr(), SIGNAL(folderRemoved(const Akonadi::Collection&)), + connect( kmkernel->monitor(), SIGNAL(collectionRemoved(const Akonadi::Collection&)), SLOT(slotFolderRemoved(const Akonadi::Collection&)) ); -#else - kDebug() << "AKONADI PORT: Disabled code in " << Q_FUNC_INFO; -#endif connect( kmkernel, SIGNAL( configChanged() ), this, SLOT( slotConfigChanged() ) );