Extract SubResource and enum from groupwareadaptor.

We will use them into kolab resources

svn path=/trunk/KDE/kdepim/; revision=678494
wilder-work
Laurent Montel 19 years ago
parent f10a8ed9a0
commit 9311f935dc
  1. 18
      groupwareadaptor.cpp
  2. 29
      groupwareadaptor.h
  3. 24
      kmail_util.h
  4. 74
      kmailicalifaceimpl.cpp
  5. 18
      kmailicalifaceimpl.h
  6. 10
      kmfoldercachedimap.cpp

@ -35,12 +35,12 @@
#include <qdbusconnection.h>
using namespace KMail;
typedef QList<GroupwareAdaptor::SubResource> QListKmailSubResource;
Q_DECLARE_METATYPE(GroupwareAdaptor::SubResource )
typedef QList<SubResource> QListKmailSubResource;
Q_DECLARE_METATYPE(SubResource )
Q_DECLARE_METATYPE(QListKmailSubResource )
Q_DECLARE_METATYPE(GroupwareAdaptor::StorageFormat )
Q_DECLARE_METATYPE(StorageFormat )
const QDBusArgument &operator<<(QDBusArgument &arg, const GroupwareAdaptor::SubResource &subResource)
const QDBusArgument &operator<<(QDBusArgument &arg, const SubResource &subResource)
{
arg.beginStructure();
arg << subResource.location << subResource.label << subResource.writable << subResource.alarmRelevant;
@ -48,7 +48,7 @@ const QDBusArgument &operator<<(QDBusArgument &arg, const GroupwareAdaptor::SubR
return arg;
}
const QDBusArgument &operator>>(const QDBusArgument &arg, GroupwareAdaptor::SubResource &subResource)
const QDBusArgument &operator>>(const QDBusArgument &arg, SubResource &subResource)
{
arg.beginStructure();
arg >> subResource.location >> subResource.label >> subResource.writable >> subResource.alarmRelevant;
@ -56,7 +56,7 @@ const QDBusArgument &operator>>(const QDBusArgument &arg, GroupwareAdaptor::SubR
return arg;
}
const QDBusArgument &operator<<(QDBusArgument &arg, const GroupwareAdaptor::StorageFormat &format)
const QDBusArgument &operator<<(QDBusArgument &arg, const StorageFormat &format)
{
arg.beginStructure();
quint32 foo = format;
@ -65,7 +65,7 @@ const QDBusArgument &operator<<(QDBusArgument &arg, const GroupwareAdaptor::Stor
return arg;
}
const QDBusArgument &operator>>(const QDBusArgument &arg, GroupwareAdaptor::StorageFormat &format)
const QDBusArgument &operator>>(const QDBusArgument &arg, StorageFormat &format)
{
arg.beginStructure();
quint32 foo = format;
@ -117,7 +117,7 @@ bool GroupwareAdaptor::deleteIncidenceKolab( const QString& resource, quint32 se
return mIcalImpl->deleteIncidenceKolab( resource, sernum );
}
GroupwareAdaptor::StorageFormat GroupwareAdaptor::storageFormat( const QString& resource )
StorageFormat GroupwareAdaptor::storageFormat( const QString& resource )
{
return mIcalImpl->storageFormat(resource );
}
@ -151,7 +151,7 @@ QMap<quint32, QString> GroupwareAdaptor::incidencesKolab( const QString& mimetyp
return mIcalImpl->incidencesKolab( mimetype, resource, startIndex, nbMessages );
}
QList<GroupwareAdaptor::SubResource> GroupwareAdaptor::subresourcesKolab( const QString& contentsType )
QList<SubResource> GroupwareAdaptor::subresourcesKolab( const QString& contentsType )
{
registerTypes();
return mIcalImpl->subresourcesKolab(contentsType );

@ -40,6 +40,8 @@
#include <qdbusmetatype.h>
#include <QtDBus/qdbusextratypes.h>
#include <QtDBus/QtDBus>
#include "kmail_util.h"
class KMailICalIfaceImpl;
typedef QMap<QByteArray, QString> ByteArrayStringMap;
@ -54,29 +56,6 @@ public:
GroupwareAdaptor(KMailICalIfaceImpl* impl);
//qDBusRegisterMetaType< QMap<QByteArray, QString> >();
struct SubResource {
SubResource() {
writable=false;
alarmRelevant=false;
}
SubResource( const QString& loc, const QString& lab, bool rw, bool ar )
: location( loc ), label( lab ), writable( rw ), alarmRelevant( ar ) {}
QString location; // unique
QString label; // shown to the user
bool writable;
bool alarmRelevant;
};
/// The format of the mails containing other contents than actual mail
/// (like contacts, calendar etc.)
/// This is currently either ical/vcard, or XML.
/// For actual mail folders this simply to know which resource handles it
/// This enum matches the one defined in kmail.kcfg
enum StorageFormat { StorageIcalVcard, StorageXML };
/// This bitfield indicates which changes have been made in a folder, at syncing time.
enum FolderChanges { NoChange = 0, Contents = 1, ACL = 2 };
public Q_SLOTS:
Q_SCRIPTABLE bool isWritableFolder( const QString& type, const QString& resource );
// Return the number of mails that need to be looked at by incidencesKolab.
@ -89,7 +68,7 @@ public Q_SLOTS:
Q_SCRIPTABLE bool triggerSync( const QString & );
Q_SCRIPTABLE bool deleteIncidenceKolab( const QString& resource, quint32 sernum );
Q_SCRIPTABLE GroupwareAdaptor::StorageFormat storageFormat( const QString& resource );
Q_SCRIPTABLE KMail::StorageFormat storageFormat( const QString& resource );
Q_SCRIPTABLE QString getAttachment( const QString& resource, quint32 sernum, const QString& filename );
Q_SCRIPTABLE quint32 update( const QString& resource,
@ -109,7 +88,7 @@ public Q_SLOTS:
* Return list of subresources. @p contentsType is
* Mail, Calendar, Contact, Note, Task or Journal
*/
Q_SCRIPTABLE QList<GroupwareAdaptor::SubResource> subresourcesKolab( const QString& contentsType );
Q_SCRIPTABLE QList<KMail::SubResource> subresourcesKolab( const QString& contentsType );
Q_SIGNALS:

@ -31,5 +31,29 @@
#define KMAILUTILS_H
#define DBUS_KMAIL "org.kde.kmail"
namespace KMail {
struct SubResource {
SubResource() {
writable=false;
alarmRelevant=false;
}
SubResource( const QString& loc, const QString& lab, bool rw, bool ar )
: location( loc ), label( lab ), writable( rw ), alarmRelevant( ar ) {}
QString location; // unique
QString label; // shown to the user
bool writable;
bool alarmRelevant;
};
/// The format of the mails containing other contents than actual mail
/// (like contacts, calendar etc.)
/// This is currently either ical/vcard, or XML.
/// For actual mail folders this simply to know which resource handles it
/// This enum matches the one defined in kmail.kcfg
enum StorageFormat { StorageIcalVcard, StorageXML };
/// This bitfield indicates which changes have been made in a folder, at syncing time.
enum FolderChanges { NoChange = 0, Contents = 1, ACL = 2 };
}
#endif

@ -75,8 +75,6 @@ using KMail::AccountManager;
#include <ktemporaryfile.h>
#include <kconfiggroup.h>
#include "groupwareadaptor.h"
#include "kmail_util.h"
using namespace KMail;
@ -110,9 +108,9 @@ static QString folderKolabMimeType( KMail::FolderContentsType type )
return s_folderContentsType[type].mimetype;
}
GroupwareAdaptor::StorageFormat KMailICalIfaceImpl::globalStorageFormat() const {
StorageFormat KMailICalIfaceImpl::globalStorageFormat() const {
return GlobalSettings::self()->theIMAPResourceStorageFormat()
== GlobalSettings::EnumTheIMAPResourceStorageFormat::XML ? GroupwareAdaptor::StorageXML : GroupwareAdaptor::StorageIcalVcard;
== GlobalSettings::EnumTheIMAPResourceStorageFormat::XML ? StorageXML : StorageIcalVcard;
}
static KMail::FolderContentsType folderContentsType( const QString& type )
@ -402,9 +400,9 @@ quint32 KMailICalIfaceImpl::addIncidenceKolab( KMFolder& folder,
}
// In case of the ical format, simply add the plain text content with the
// right content type
if ( storageFormat( &folder ) == GroupwareAdaptor::StorageXML ) {
if ( storageFormat( &folder ) == StorageXML ) {
setXMLContentTypeHeader( msg, plainTextBody );
} else if ( storageFormat( &folder ) == GroupwareAdaptor::StorageIcalVcard ) {
} else if ( storageFormat( &folder ) == StorageIcalVcard ) {
const KMail::FolderContentsType t = folder.storage()->contentsType();
setIcalVcardContentTypeHeader( msg, t );
msg->setBodyEncoded( plainTextBody.toUtf8() );
@ -442,7 +440,7 @@ quint32 KMailICalIfaceImpl::addIncidenceKolab( KMFolder& folder,
<< sernum << endl;
//debugBodyParts( "after addMsg", *msg );
addFolderChange( &folder,GroupwareAdaptor::Contents );
addFolderChange( &folder,Contents );
} else
kError(5006) << "addIncidenceKolab(): Message *NOT* saved!\n";
@ -615,14 +613,14 @@ void KMailICalIfaceImpl::slotMessageRetrieved( KMMessage* msg )
}
/* list all available subresources */
QList<GroupwareAdaptor::SubResource> KMailICalIfaceImpl::subresourcesKolab( const QString& contentsType )
QList<SubResource> KMailICalIfaceImpl::subresourcesKolab( const QString& contentsType )
{
QList<GroupwareAdaptor::SubResource> subResources;
QList<SubResource> subResources;
// Add the default one
KMFolder* f = folderFromType( contentsType, QString() );
if ( f ) {
subResources.append( GroupwareAdaptor::SubResource( f->location(), f->prettyUrl(),
subResources.append( SubResource( f->location(), f->prettyUrl(),
!f->isReadOnly(), folderIsAlarmRelevant( f ) ) );
kDebug(5006) << "Adding(1) folder " << f->location() << " " <<
( f->isReadOnly() ? "readonly" : "" ) << endl;
@ -634,7 +632,7 @@ QList<GroupwareAdaptor::SubResource> KMailICalIfaceImpl::subresourcesKolab( cons
for ( ; it.current(); ++it ){
f = it.current()->folder;
if ( f && f->storage()->contentsType() == t ) {
subResources.append( GroupwareAdaptor::SubResource( f->location(), f->prettyUrl(),
subResources.append( SubResource( f->location(), f->prettyUrl(),
!f->isReadOnly(), folderIsAlarmRelevant( f ) ) );
kDebug(5006) << "Adding(2) folder " << f->location() << " " <<
( f->isReadOnly() ? "readonly" : "" ) << endl;
@ -649,8 +647,8 @@ QList<GroupwareAdaptor::SubResource> KMailICalIfaceImpl::subresourcesKolab( cons
bool KMailICalIfaceImpl::triggerSync( const QString& contentsType )
{
kDebug(5006) << k_funcinfo << endl;
QList<GroupwareAdaptor::SubResource> folderList = subresourcesKolab( contentsType );
for ( QList<GroupwareAdaptor::SubResource>::const_iterator it( folderList.begin() ),
QList<SubResource> folderList = subresourcesKolab( contentsType );
for ( QList<SubResource>::const_iterator it( folderList.begin() ),
end( folderList.end() );
it != end ; ++it ) {
KMFolder * const f = findResourceFolder( (*it).location );
@ -685,9 +683,9 @@ bool KMailICalIfaceImpl::isWritableFolder( const QString& type,
}
/* Used by the resource to query the storage format of the folder. */
GroupwareAdaptor::StorageFormat KMailICalIfaceImpl::storageFormat( const QString& resource )
StorageFormat KMailICalIfaceImpl::storageFormat( const QString& resource )
{
GroupwareAdaptor::StorageFormat format;
StorageFormat format;
KMFolder* f = findResourceFolder( resource );
if ( f )
format = storageFormat( f );
@ -771,13 +769,13 @@ quint32 KMailICalIfaceImpl::update( const QString& resource,
const bool messageWasIcalVcardFormat = ( type.toLower() == "text" &&
( subtype.toLower() == "calendar" || subtype.toLower() == "x-vcard" ) );
if ( storageFormat( f ) == GroupwareAdaptor::StorageIcalVcard ) {
if ( storageFormat( f ) == StorageIcalVcard ) {
//kDebug(5006) << k_funcinfo << " StorageFormatIcalVcard " << endl;
if ( !messageWasIcalVcardFormat ) {
setIcalVcardContentTypeHeader( newMsg, t );
}
newMsg->setBodyEncoded( plainTextBody.toUtf8() );
} else if ( storageFormat( f ) == GroupwareAdaptor::StorageXML ) {
} else if ( storageFormat( f ) == StorageXML ) {
if ( messageWasIcalVcardFormat ) {
// this was originally an ical event, but the folder changed to xml,
// convert
@ -814,7 +812,7 @@ quint32 KMailICalIfaceImpl::update( const QString& resource,
rc = newMsg->getMsgSerNum();
kDebug(5006) << "forget about " << sernum << ", it's " << rc << " now" << endl;
}
addFolderChange( f, GroupwareAdaptor::Contents );
addFolderChange( f, Contents );
} else {
// Message not found - store it newly
rc = addIncidenceKolab( *f, subject, plainTextBody, customHeaders,
@ -846,7 +844,7 @@ KUrl KMailICalIfaceImpl::getAttachment( const QString& resource,
kError(5006) << "getAttachment(" << resource << ") : Not an IMAP resource folder" << endl;
return KUrl();
}
if ( storageFormat( f ) != GroupwareAdaptor::StorageXML ) {
if ( storageFormat( f ) != StorageXML ) {
kError(5006) << "getAttachment(" << resource << ") : Folder has wrong storage format " << storageFormat( f ) << endl;
return KUrl();
}
@ -932,15 +930,15 @@ void KMailICalIfaceImpl::slotIncidenceAdded( KMFolder* folder,
if( msg->isComplete() ) {
bool ok = false;
GroupwareAdaptor::StorageFormat format = storageFormat( folder );
StorageFormat format = storageFormat( folder );
switch( format ) {
case GroupwareAdaptor::StorageIcalVcard:
case StorageIcalVcard:
// Read the iCal or vCard
ok = vPartFoundAndDecoded( msg, s );
if ( ok )
vPartMicroParser( s, uid );
break;
case GroupwareAdaptor::StorageXML:
case StorageXML:
// Read the XML from the attachment with the given mimetype
if ( kolabXMLFoundAndDecoded( *msg,
folderKolabMimeType( folder->storage()->contentsType() ), s ) ) {
@ -1009,13 +1007,13 @@ void KMailICalIfaceImpl::slotIncidenceDeleted( KMFolder* folder,
KMMessage* msg = folder->getMsg( i );
QString uid( "UID" );
switch( storageFormat( folder ) ) {
case GroupwareAdaptor::StorageIcalVcard:
case StorageIcalVcard:
if( vPartFoundAndDecoded( msg, s ) ) {
vPartMicroParser( s, uid );
ok = true;
}
break;
case GroupwareAdaptor::StorageXML:
case StorageXML:
if ( kolabXMLFoundAndDecoded( *msg, folderKolabMimeType( folder->storage()->contentsType() ), s ) ) {
uid = msg->subject();
ok = true;
@ -1241,7 +1239,7 @@ void KMailICalIfaceImpl::deleteMsg( KMMessage *msg )
assert(idx != -1);
srcFolder->removeMsg(idx);
delete msg;
addFolderChange( srcFolder, GroupwareAdaptor::Contents );
addFolderChange( srcFolder, Contents );
}
void KMailICalIfaceImpl::folderContentsTypeChanged( KMFolder* folder,
@ -1332,7 +1330,7 @@ KMFolder* KMailICalIfaceImpl::extraFolder( const QString& type,
return 0;
}
GroupwareAdaptor::StorageFormat KMailICalIfaceImpl::storageFormat( KMFolder* folder ) const
StorageFormat KMailICalIfaceImpl::storageFormat( KMFolder* folder ) const
{
FolderInfoMap::ConstIterator it = mFolderInfoMap.find( folder );
if ( it != mFolderInfoMap.end() )
@ -1340,25 +1338,25 @@ GroupwareAdaptor::StorageFormat KMailICalIfaceImpl::storageFormat( KMFolder* fol
return globalStorageFormat();
}
void KMailICalIfaceImpl::setStorageFormat( KMFolder* folder, GroupwareAdaptor::StorageFormat format )
void KMailICalIfaceImpl::setStorageFormat( KMFolder* folder, StorageFormat format )
{
FolderInfoMap::Iterator it = mFolderInfoMap.find( folder );
if ( it != mFolderInfoMap.end() ) {
(*it).mStorageFormat = format;
} else {
FolderInfo info( format, GroupwareAdaptor::NoChange );
FolderInfo info( format, NoChange );
mFolderInfoMap.insert( folder, info );
}
KConfigGroup configGroup( kmkernel->config(), "GroupwareFolderInfo" );
configGroup.writeEntry( folder->idString() + "-storageFormat",
format == GroupwareAdaptor::StorageXML ? "xml" : "icalvcard" );
format == StorageXML ? "xml" : "icalvcard" );
}
void KMailICalIfaceImpl::addFolderChange( KMFolder* folder, GroupwareAdaptor::FolderChanges changes )
void KMailICalIfaceImpl::addFolderChange( KMFolder* folder, FolderChanges changes )
{
FolderInfoMap::Iterator it = mFolderInfoMap.find( folder );
if ( it != mFolderInfoMap.end() ) {
(*it).mChanges = static_cast<GroupwareAdaptor::FolderChanges>( (*it).mChanges | changes );
(*it).mChanges = static_cast<FolderChanges>( (*it).mChanges | changes );
} else { // Otherwise, well, it's a folder we don't care about.
kDebug(5006) << "addFolderChange: nothing known about folder " << folder->location() << endl;
}
@ -1374,11 +1372,11 @@ KMailICalIfaceImpl::FolderInfo KMailICalIfaceImpl::readFolderInfo( const KMFolde
if ( str == "unset" ) {
info.mStorageFormat = globalStorageFormat();
configGroup.writeEntry( folder->idString() + "-storageFormat",
info.mStorageFormat == GroupwareAdaptor::StorageXML ? "xml" : "icalvcard" );
info.mStorageFormat == StorageXML ? "xml" : "icalvcard" );
} else {
info.mStorageFormat = ( str == "xml" ) ? GroupwareAdaptor::StorageXML : GroupwareAdaptor::StorageIcalVcard;
info.mStorageFormat = ( str == "xml" ) ? StorageXML : StorageIcalVcard;
}
info.mChanges = (GroupwareAdaptor::FolderChanges) configGroup.readEntry( folder->idString() + "-changes", 0 );
info.mChanges = (FolderChanges) configGroup.readEntry( folder->idString() + "-changes", 0 );
return info;
}
@ -1388,7 +1386,7 @@ void KMailICalIfaceImpl::folderSynced( KMFolder* folder, const KUrl& folderURL )
FolderInfoMap::Iterator it = mFolderInfoMap.find( folder );
if ( it != mFolderInfoMap.end() && (*it).mChanges ) {
handleFolderSynced( folder, folderURL, (*it).mChanges );
(*it).mChanges = GroupwareAdaptor::NoChange;
(*it).mChanges = NoChange;
}
}
@ -1400,9 +1398,9 @@ void KMailICalIfaceImpl::handleFolderSynced( KMFolder* folder,
// there could be 0, 1, or N kolab resources at this point.
// We can hack the N case, but not the 0 case.
// So the idea of a DCOP signal for this wouldn't work.
if ( ( _changes & GroupwareAdaptor::Contents ) ||
( _changes & GroupwareAdaptor::ACL ) ) {
if ( storageFormat( folder ) == GroupwareAdaptor::StorageXML && folder->storage()->contentsType() == KMail::ContentsTypeCalendar )
if ( ( _changes & Contents ) ||
( _changes & ACL ) ) {
if ( storageFormat( folder ) == StorageXML && folder->storage()->contentsType() == KMail::ContentsTypeCalendar )
triggerKolabFreeBusy( folderURL );
}
}

@ -89,7 +89,7 @@ public:
bool isWritableFolder( const QString& type, const QString& resource );
KMail::GroupwareAdaptor::StorageFormat storageFormat( const QString &resource );
KMail::StorageFormat storageFormat( const QString &resource );
/// Update a kolab storage entry.
/// If message is not there, it is added and
@ -115,7 +115,7 @@ public:
int startIndex,
int nbMessages );
QList<KMail::GroupwareAdaptor::SubResource> subresourcesKolab( const QString& contentsType );
QList<KMail::SubResource> subresourcesKolab( const QString& contentsType );
bool triggerSync( const QString& contentsType );
@ -194,9 +194,9 @@ public:
void folderContentsTypeChanged( KMFolder*, KMail::FolderContentsType );
/// @return the storage format of a given folder
KMail::GroupwareAdaptor::StorageFormat storageFormat( KMFolder* folder ) const;
KMail::StorageFormat storageFormat( KMFolder* folder ) const;
/// Set the storage format of a given folder. Called when seeing the kolab annotation.
void setStorageFormat( KMFolder* folder, KMail::GroupwareAdaptor::StorageFormat format );
void setStorageFormat( KMFolder* folder, KMail::StorageFormat format );
static const char* annotationForContentsType( KMail::FolderContentsType type );
@ -206,7 +206,7 @@ public:
// Called when deletion of a folder from the server suceeded,
// triggers fb re-generation
void folderDeletedOnServer( const KUrl& folderURL );
void addFolderChange( KMFolder* folder, KMail::GroupwareAdaptor::FolderChanges changes );
void addFolderChange( KMFolder* folder, KMail::FolderChanges changes );
// See CachedImapJob::slotPutMessageResult
bool isResourceQuiet() const;
@ -274,7 +274,7 @@ private:
int _changes );
void triggerKolabFreeBusy( const KUrl& folderURL );
KMail::GroupwareAdaptor::StorageFormat globalStorageFormat() const;
KMail::StorageFormat globalStorageFormat() const;
static bool folderIsAlarmRelevant( const KMFolder * );
@ -295,10 +295,10 @@ private:
// kmfoldercachedimap and kmfolderimap, and that it's groupware data anyway.
struct FolderInfo {
FolderInfo() {} // for QMap
FolderInfo(KMail::GroupwareAdaptor::StorageFormat f, KMail::GroupwareAdaptor::FolderChanges c ) :
FolderInfo(KMail::StorageFormat f, KMail::FolderChanges c ) :
mStorageFormat( f ), mChanges( c ) {}
KMail::GroupwareAdaptor::StorageFormat mStorageFormat;
KMail::GroupwareAdaptor::FolderChanges mChanges;
KMail::StorageFormat mStorageFormat;
KMail::FolderChanges mChanges;
};
// The storage format used for each folder that we care about
typedef QMap<KMFolder*, FolderInfo> FolderInfoMap;

@ -255,7 +255,7 @@ void KMFolderCachedImap::readConfig()
// if there is an annotation, it has to be XML
if ( !mAnnotationFolderType.isEmpty() &&
!mAnnotationFolderType.startsWith( "mail" ) ) {
kmkernel->iCalIface().setStorageFormat( folder(), GroupwareAdaptor::StorageXML );
kmkernel->iCalIface().setStorageFormat( folder(), StorageXML );
}
}
mIncidencesFor = incidencesForFromString( group.readEntry( "IncidencesFor" ) );
@ -2264,7 +2264,7 @@ void KMFolderCachedImap::slotMultiSetACLResult( KJob *job )
static_cast<KIO::Job*>(job)->ui()->setWindow( 0 );
static_cast<KIO::Job*>(job)->ui()->showErrorMessage();
} else {
kmkernel->iCalIface().addFolderChange( folder(), GroupwareAdaptor::ACL );
kmkernel->iCalIface().addFolderChange( folder(), ACL );
}
if ( mAccount->slave() ) {
@ -2381,7 +2381,7 @@ void KMFolderCachedImap::updateAnnotationFolderType()
QString newType, newSubType;
// We want to store an annotation on the folder only if using the kolab storage.
if ( kmkernel->iCalIface().storageFormat( folder() ) == GroupwareAdaptor::StorageXML ) {
if ( kmkernel->iCalIface().storageFormat( folder() ) == StorageXML ) {
newType = KMailICalIfaceImpl::annotationForContentsType( mContentsType );
if ( kmkernel->iCalIface().isStandardResourceFolder( folder() ) ) {
newSubType = "default";
@ -2438,7 +2438,7 @@ void KMFolderCachedImap::slotAnnotationResult( const QString &entry,
if ( type == KMailICalIfaceImpl::annotationForContentsType( contentsType ) ) {
// Case 3: known content-type on server, get it
if ( contentsType != ContentsTypeMail ) {
kmkernel->iCalIface().setStorageFormat( folder(), GroupwareAdaptor::StorageXML );
kmkernel->iCalIface().setStorageFormat( folder(), StorageXML );
}
mAnnotationFolderType = value;
if ( folder()->parent()->owner()->idString() != GlobalSettings::self()->theIMAPResourceFolderParent() &&
@ -2640,7 +2640,7 @@ void KMFolderCachedImap::slotAnnotationChanged( const QString &entry,
* The incidences-for changed, we must trigger the freebusy creation.
* HACK: in theory we would need a new enum value for this.
*/
kmkernel->iCalIface().addFolderChange( folder(), GroupwareAdaptor::ACL );
kmkernel->iCalIface().addFolderChange( folder(), ACL );
}
}

Loading…
Cancel
Save