From c3f52dca895566c856f947343a495d72fb83e1bd Mon Sep 17 00:00:00 2001 From: Bo Thorsen Date: Mon, 12 May 2003 17:10:28 +0000 Subject: [PATCH] Remove incidenceAdded and incidenceDeleted detour over KMGroupware svn path=/trunk/kdepim/; revision=225431 --- kmailicalifaceimpl.cpp | 53 +++++++++++++++++++++++++++++++++++------- kmailicalifaceimpl.h | 11 +++++++-- kmgroupware.cpp | 42 --------------------------------- kmgroupware.h | 5 ---- 4 files changed, 53 insertions(+), 58 deletions(-) diff --git a/kmailicalifaceimpl.cpp b/kmailicalifaceimpl.cpp index 258a8ef39..39fbf27d0 100644 --- a/kmailicalifaceimpl.cpp +++ b/kmailicalifaceimpl.cpp @@ -28,6 +28,7 @@ #include "kmfoldermgr.h" #include "kmcommands.h" #include "kmfolderindex.h" +#include "kmmsgdict.h" #include @@ -54,11 +55,6 @@ KMailICalIfaceImpl::KMailICalIfaceImpl() mUseResourceIMAP( false ) { QObject* gw = &kernel->groupware(); - connect( gw, SIGNAL( incidenceAdded( const QString&, const QString& ) ), - this, SLOT( slotIncidenceAdded( const QString&, const QString& ) ) ); - - connect( gw, SIGNAL( incidenceDeleted( const QString&, const QString& ) ), - this, SLOT( slotIncidenceDeleted( const QString&, const QString& ) ) ); connect( gw, SIGNAL( signalRefresh( const QString& ) ), this, SLOT( slotRefresh( const QString& ) ) ); } @@ -130,29 +126,60 @@ QStringList KMailICalIfaceImpl::incidences( const QString& type ) } // KMail added a file to one of the groupware folders -void KMailICalIfaceImpl::slotIncidenceAdded( KMFolder* folder, const QString& ical ) +void KMailICalIfaceImpl::slotIncidenceAdded( KMFolder* folder, + Q_UINT32 sernum ) { QString type = icalFolderType( folder ); - if( !type.isNull() ) { + if( type.isNull() ) { + kdError() << "Not an IMAP resource folder" << endl; + return; + } + + int i = 0; + KMFolder* aFolder = 0; + kernel->msgDict()->getLocation( sernum, &aFolder, &i ); + assert( folder == aFolder ); + + bool unget = !folder->isMessage( i ); + QString ical; + if( KMGroupware::vPartFoundAndDecoded( folder->getMsg( i ), ical ) ) { QByteArray data; QDataStream arg(data, IO_WriteOnly ); arg << type << ical; kdDebug() << "Emitting DCOP signal incidenceAdded( " << type << ", " << ical << " )" << endl; emitDCOPSignal( "incidenceAdded(QString,QString)", data ); } + if( unget ) folder->unGetMsg(i); + } // KMail deleted a file -void KMailICalIfaceImpl::slotIncidenceDeleted( KMFolder* folder, const QString& uid ) +void KMailICalIfaceImpl::slotIncidenceDeleted( KMFolder* folder, + Q_UINT32 sernum ) { QString type = icalFolderType( folder ); - if( !type.isNull() ) { + if( type.isNull() ) { + kdError() << "Not a groupware folder" << endl; + return; + } + + int i = 0; + KMFolder* aFolder = 0; + kernel->msgDict()->getLocation( sernum, &aFolder, &i ); + assert( folder == aFolder ); + + bool unget = !folder->isMessage( i ); + QString ical; + if( KMGroupware::vPartFoundAndDecoded( folder->getMsg( i ), ical ) ) { + QString uid( "UID" ); + vPartMicroParser( ical.utf8(), uid ); QByteArray data; QDataStream arg(data, IO_WriteOnly ); arg << type << uid; kdDebug() << "Emitting DCOP signal incidenceDeleted( " << type << ", " << uid << " )" << endl; emitDCOPSignal( "incidenceDeleted(QString,QString)", data ); } + if( unget ) folder->unGetMsg(i); } // KMail orders a refresh @@ -391,6 +418,8 @@ void KMailICalIfaceImpl::readConfig() connect( mJournals, SIGNAL( expunged() ), this, SLOT( slotRefreshJournals() ) ); connect( mContacts, SIGNAL( expunged() ), this, SLOT( slotRefreshContacts() ) ); connect( mNotes, SIGNAL( expunged() ), this, SLOT( slotRefreshNotes() ) ); + + // Bad hack connect( mNotes, SIGNAL( changed() ), this, SLOT( slotRefreshNotes() ) ); // Make KOrganizer re-read everything @@ -403,6 +432,12 @@ void KMailICalIfaceImpl::readConfig() kernel->groupware().reloadFolderTree(); } +void KMailICalIfaceImpl::slotRefreshCalendar() { slotRefresh( "Calendar" ); } +void KMailICalIfaceImpl::slotRefreshTasks() { slotRefresh( "Task" ); } +void KMailICalIfaceImpl::slotRefreshJournals() { slotRefresh( "Journal" ); } +void KMailICalIfaceImpl::slotRefreshContacts() { slotRefresh( "Contact" ); } +void KMailICalIfaceImpl::slotRefreshNotes() { slotRefresh( "Notes" ); } + KMFolder* KMailICalIfaceImpl::initFolder( KFolderTreeItem::Type itemType, const char* typeString ) { diff --git a/kmailicalifaceimpl.h b/kmailicalifaceimpl.h index d45759ce3..62c561b43 100644 --- a/kmailicalifaceimpl.h +++ b/kmailicalifaceimpl.h @@ -87,10 +87,17 @@ public: static void deleteMsg( KMMessage* msg ); public slots: - void slotIncidenceAdded( KMFolder* folder, const QString& ical ); - void slotIncidenceDeleted( KMFolder* folder, const QString& uid ); + void slotIncidenceAdded( KMFolder* folder, Q_UINT32 sernum ); + void slotIncidenceDeleted( KMFolder* folder, Q_UINT32 sernum ); void slotRefresh( const QString& type); +private slots: + void slotRefreshCalendar(); + void slotRefreshTasks(); + void slotRefreshJournals(); + void slotRefreshContacts(); + void slotRefreshNotes(); + private: /** Helper function for initFolders. Initializes a single folder. */ KMFolder* initFolder( KFolderTreeItem::Type itemType, const char* typeString ); diff --git a/kmgroupware.cpp b/kmgroupware.cpp index d43fc4bb2..d46ae9f60 100644 --- a/kmgroupware.cpp +++ b/kmgroupware.cpp @@ -37,7 +37,6 @@ #include "kmgroupwarefuncs.h" #include "kmcommands.h" #include "kmfolderindex.h" -#include "kmmsgdict.h" #include "kmkernel.h" #include "objecttreeparser.h" #include "kmailicalifaceimpl.h" @@ -544,47 +543,6 @@ void internal_directlySendMessage(KMMessage* msg) //mMainWin->slotCompose( msgNew, 0 ); } -void KMGroupware::slotIncidenceAdded( KMFolder* folder, Q_UINT32 sernum ) -{ - if( !kernel->iCalIface().isResourceImapFolder( folder ) ) { - kdError() << "Not a groupware folder" << endl; - return; - } - - int i = 0; - KMFolder* aFolder = 0; - KMKernel::self()->msgDict()->getLocation( sernum, &aFolder, &i ); - assert( folder == aFolder ); - - bool unget = !folder->isMessage( i ); - QString s; - if( vPartFoundAndDecoded( folder->getMsg( i ), s ) ) - emit incidenceAdded( folder, s ); - if( unget ) folder->unGetMsg(i); -} - -void KMGroupware::slotIncidenceDeleted( KMFolder* folder, Q_UINT32 sernum ) -{ - if( !kernel->iCalIface().isResourceImapFolder( folder ) ) { - kdError() << "Not a groupware folder" << endl; - return; - } - - int i = 0; - KMFolder* aFolder = 0; - KMKernel::self()->msgDict()->getLocation( sernum, &aFolder, &i ); - assert( folder == aFolder ); - - bool unget = !folder->isMessage( i ); - QString s; - if( KMGroupware::vPartFoundAndDecoded( folder->getMsg( i ), s ) ) { - QString uid( "UID" ); - vPartMicroParser( s.utf8(), uid ); - emit incidenceDeleted( folder, uid ); - } - if( unget ) folder->unGetMsg(i); -} - void KMGroupware::slotRefreshCalendar() { emit signalRefresh( "Calendar" ); diff --git a/kmgroupware.h b/kmgroupware.h index 2cfa6dc39..d18205ac1 100644 --- a/kmgroupware.h +++ b/kmgroupware.h @@ -59,16 +59,11 @@ public: virtual ~KMGroupware(); signals: - void incidenceAdded( KMFolder* folder, const QString& ical ); - void incidenceDeleted( KMFolder* folder, const QString& uid ); - /** Make the IMAP resource re-read all of the given type */ void signalRefresh( const QString& type); private slots: // internal slots for new interface - void slotIncidenceAdded( KMFolder*, Q_UINT32 ); - void slotIncidenceDeleted( KMFolder*, Q_UINT32 ); void slotRefreshCalendar(); void slotRefreshTasks();