20 #include "specialmailcollections.h"
21 #include "akonadi/entitydisplayattribute.h"
22 #include "akonadi/collectionmodifyjob.h"
23 #include "specialmailcollectionssettings.h"
27 #include "akonadi/agentinstance.h"
28 #include "akonadi/servermanager.h"
30 using namespace Akonadi;
32 class Akonadi::SpecialMailCollectionsPrivate
35 SpecialMailCollectionsPrivate();
36 ~SpecialMailCollectionsPrivate();
41 typedef SpecialMailCollectionsSettings Settings;
43 K_GLOBAL_STATIC( SpecialMailCollectionsPrivate, sInstance )
56 default:
return QByteArray();
break;
60 SpecialMailCollectionsPrivate::SpecialMailCollectionsPrivate()
65 SpecialMailCollectionsPrivate::~SpecialMailCollectionsPrivate()
70 static KCoreConfigSkeleton *getConfig(
const QString &filename)
72 Settings::instance( ServerManager::addNamespace(filename) );
73 return Settings::self();
76 SpecialMailCollections::SpecialMailCollections( SpecialMailCollectionsPrivate *dd )
77 : SpecialCollections( getConfig(QLatin1String(
"specialmailcollectionsrc")) ),
84 return sInstance->mInstance;
89 return SpecialCollections::hasCollection( enumToType( type ), instance );
94 return SpecialCollections::collection( enumToType( type ), instance );
99 return SpecialCollections::registerCollection( enumToType( type ), collection );
104 return SpecialCollections::hasDefaultCollection( enumToType( type ) );
109 return SpecialCollections::defaultCollection( enumToType( type ) );
112 void SpecialMailCollections::verifyI18nDefaultCollection( Type type )
119 defaultI18n = i18nc(
"local mail folder",
"inbox" );
122 defaultI18n = i18nc(
"local mail folder",
"outbox" );
125 defaultI18n = i18nc(
"local mail folder",
"sent-mail" );
128 defaultI18n = i18nc(
"local mail folder",
"trash" );
131 defaultI18n = i18nc(
"local mail folder",
"drafts" );
134 defaultI18n = i18nc(
"local mail folder",
"templates" );
139 if(!defaultI18n.isEmpty()) {
140 if(collection.hasAttribute<Akonadi::EntityDisplayAttribute>()) {
141 if( collection.attribute<Akonadi::EntityDisplayAttribute>()->displayName() != defaultI18n) {
142 collection.attribute<Akonadi::EntityDisplayAttribute>()->setDisplayName( defaultI18n );
143 Akonadi::CollectionModifyJob *job =
new Akonadi::CollectionModifyJob( collection,
this );
144 connect( job, SIGNAL(result(KJob*)),
this, SLOT(slotCollectionModified(KJob*)) );
150 void SpecialMailCollections::slotCollectionModified(KJob*job)
152 if ( job->error() ) {
153 kDebug()<<
" Error when we modified collection";