Remove incidenceAdded and incidenceDeleted detour over KMGroupware

svn path=/trunk/kdepim/; revision=225431
wilder-work
Bo Thorsen 23 years ago
parent 5d075232df
commit c3f52dca89
  1. 53
      kmailicalifaceimpl.cpp
  2. 11
      kmailicalifaceimpl.h
  3. 42
      kmgroupware.cpp
  4. 5
      kmgroupware.h

@ -28,6 +28,7 @@
#include "kmfoldermgr.h"
#include "kmcommands.h"
#include "kmfolderindex.h"
#include "kmmsgdict.h"
#include <mimelib/enum.h>
@ -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 )
{

@ -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 );

@ -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" );

@ -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();

Loading…
Cancel
Save