[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/kresources/kolab/shared
From: Volker Krause <vkrause () kde ! org>
Date: 2008-03-25 17:55:14
Message-ID: 1206467714.607849.28479.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 789931 by vkrause:
cleanup error handling
M +24 -59 kmailconnection.cpp
M +27 -2 kmailconnection.h
--- trunk/KDE/kdepim/kresources/kolab/shared/kmailconnection.cpp #789930:789931
@@ -37,11 +37,9 @@
#include <kdebug.h>
#include <kurl.h>
#include <kdbusservicestarter.h>
-#include <kmail_groupwareinterface.h>
#include <kmail/groupware_types.h>
#include <klocale.h>
#include <QDBusAbstractInterface>
-#include <QDBusError>
#include <QMap>
using namespace Kolab;
@@ -50,7 +48,6 @@
: mResource( resource )
, mKmailGroupwareInterface( 0 )
{
- // Make the connection to KMail ready
QObject::connect(QDBusConnection::sessionBus().interface(),
SIGNAL(serviceOwnerChanged(QString,QString,QString)),
this, SLOT(dbusServiceOwnerChanged(QString,QString,QString)));
@@ -67,7 +64,6 @@
bool KMailConnection::connectToKMail()
{
- kDebug()<<" bool KMailConnection::connectToKMail()";
if ( !mKmailGroupwareInterface ) {
QString error;
QString dbusService;
@@ -161,13 +157,7 @@
{
if ( !connectToKMail() )
return false;
-
- QDBusReply<KMail::SubResource::List> r = \
mKmailGroupwareInterface->subresourcesKolab( contentsType );
- if ( r.isValid() )
- {
- lst = r;
- }
- return (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+ return checkReply( mKmailGroupwareInterface->subresourcesKolab( contentsType ), \
lst ); }
bool KMailConnection::kmailIncidencesCount( int& count,
@@ -176,10 +166,7 @@
{
if ( !connectToKMail() )
return false;
-
- QDBusReply<int> val= mKmailGroupwareInterface->incidencesKolabCount( mimetype, \
resource );
- count = val;
- return (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+ return checkReply( mKmailGroupwareInterface->incidencesKolabCount( mimetype, \
resource ), count ); }
bool KMailConnection::kmailIncidences( KMail::SernumDataPair::List& lst,
@@ -190,11 +177,7 @@
{
if ( !connectToKMail() )
return false;
- QDBusReply< KMail::SernumDataPair::List > r = \
mKmailGroupwareInterface->incidencesKolab( mimetype, resource, startIndex, nbMessages \
);
- if (r.isValid()) {
- lst = r.value();
- }
- return (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+ return checkReply( mKmailGroupwareInterface->incidencesKolab( mimetype, resource, \
startIndex, nbMessages ), lst ); }
@@ -205,11 +188,7 @@
{
if ( !connectToKMail() )
return false;
-
- QDBusReply<QString> val = mKmailGroupwareInterface->getAttachment( resource, \
sernum, filename );
- QString tmp = val;
- url = KUrl( val );
- return (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+ return checkReply( mKmailGroupwareInterface->getAttachment( resource, sernum, \
filename ), url ); }
bool KMailConnection::kmailListAttachments(QStringList &list,
@@ -217,20 +196,15 @@
{
if ( !connectToKMail() )
return false;
-
- QDBusReply<QStringList> r = mKmailGroupwareInterface->listAttachments( resource, \
sernum );
- list = r;
- return (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+ return checkReply( mKmailGroupwareInterface->listAttachments( resource, sernum ), \
list ); }
bool KMailConnection::kmailDeleteIncidence( const QString& resource,
quint32 sernum )
{
- QDBusReply<bool> deleteIncidence = mKmailGroupwareInterface->deleteIncidenceKolab( \
resource, sernum );
- bool b = deleteIncidence;
- return connectToKMail()
- && b
- && (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+ if ( !connectToKMail() )
+ return false;
+ return checkReply( mKmailGroupwareInterface->deleteIncidenceKolab( resource, \
sernum ) ); }
bool KMailConnection::kmailUpdate( const QString& resource,
@@ -243,9 +217,9 @@
const QStringList& attachmentNames,
const QStringList& deletedAttachments )
{
- bool ok = connectToKMail();
-
- QDBusReply<quint32> reply = mKmailGroupwareInterface->update(
+ if ( !connectToKMail() )
+ return false;
+ return checkReply( mKmailGroupwareInterface->update(
resource,
sernum,
subject,
@@ -254,52 +228,43 @@
attachmentURLs,
attachmentMimetypes,
attachmentNames,
- deletedAttachments );
-
- if ( reply.isValid() )
- sernum = reply;
-
- return ok && (mKmailGroupwareInterface->lastError().type() == \
QDBusError::NoError); + deletedAttachments ), sernum );
}
bool KMailConnection::kmailAddSubresource( const QString& resource,
const QString& parent,
const QString& contentsType )
{
- bool ok = connectToKMail();
- QDBusReply<bool> reply = mKmailGroupwareInterface->addSubresource( resource, \
parent, contentsType );
- if ( reply.isValid() )
- ok = reply;
- return ok && (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+ if ( !connectToKMail() )
+ return false;
+ return checkReply( mKmailGroupwareInterface->addSubresource( resource, parent, \
contentsType ) ); }
bool KMailConnection::kmailRemoveSubresource( const QString& resource )
{
- bool ok = connectToKMail();
- QDBusReply<bool> reply = mKmailGroupwareInterface->removeSubresource( resource );
- if ( reply.isValid() )
- ok = reply;
- return ok && (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+ if ( !connectToKMail() )
+ return false;
+ return checkReply( mKmailGroupwareInterface->removeSubresource( resource ) );
}
bool KMailConnection::kmailStorageFormat( KMail::StorageFormat& type,
const QString& folder )
{
- bool ok = connectToKMail();
+ if ( !connectToKMail() )
+ return false;
QDBusReply<int> reply = mKmailGroupwareInterface->storageFormat( folder );
if ( reply.isValid() )
type = static_cast<KMail::StorageFormat>( reply.value() );
- return ok && (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+ return mKmailGroupwareInterface->lastError().type() == QDBusError::NoError;
}
bool KMailConnection::kmailTriggerSync( const QString &contentsType )
{
- bool ok = connectToKMail();
- QDBusReply<bool> val = mKmailGroupwareInterface->triggerSync( contentsType );
- bool ret = val;
- return ok && ret;
+ if ( !connectToKMail() )
+ return false;
+ return checkReply( mKmailGroupwareInterface->triggerSync( contentsType ) );
}
void KMailConnection::dbusServiceOwnerChanged(const QString & service, const \
QString&, const QString&)
--- trunk/KDE/kdepim/kresources/kolab/shared/kmailconnection.h #789930:789931
@@ -34,12 +34,18 @@
#ifndef KMAILCONNECTION_H
#define KMAILCONNECTION_H
+#include <kmail/groupware_types.h>
+#include <kmail_groupwareinterface.h>
+
+#include <kdebug.h>
+
#include <QObject>
-#include <kmail/groupware_types.h>
#include <QMap>
+#include <QDBusError>
+#include <QDBusReply>
+
class KUrl;
class QString;
-class OrgKdeKmailGroupwareInterface;
namespace Kolab {
@@ -107,6 +113,25 @@
const QString& contentsType );
bool kmailRemoveSubresource( const QString& resource );
+ private:
+ template <typename T, typename V> inline bool checkReply( QDBusReply<T> reply, V \
&value ) const + {
+ if ( reply.isValid() && mKmailGroupwareInterface->lastError().type() == \
QDBusError::NoError ) { + value = reply.value();
+ return true;
+ }
+ kWarning(5650) << "D-Bus communication failed. Reply error is: " << \
reply.error() + << "Last interface error was: " << \
mKmailGroupwareInterface->lastError(); + return false;
+ }
+
+ inline bool checkReply( QDBusReply<bool> reply ) const
+ {
+ bool b;
+ bool ok = checkReply( reply, b );
+ return b && ok;
+ }
+
private slots:
void dbusServiceOwnerChanged(const QString & service, const QString & oldOwner, \
const QString & newOwner);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic