specialmailcollections.h
00001 /* 00002 Copyright (c) 2009 Constantin Berzan <exit3219@gmail.com> 00003 00004 This library is free software; you can redistribute it and/or modify it 00005 under the terms of the GNU Library General Public License as published by 00006 the Free Software Foundation; either version 2 of the License, or (at your 00007 option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, but WITHOUT 00010 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00011 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 00012 License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to the 00016 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 00017 02110-1301, USA. 00018 */ 00019 00020 #ifndef AKONADI_SPECIALMAILCOLLECTIONS_H 00021 #define AKONADI_SPECIALMAILCOLLECTIONS_H 00022 00023 #include "akonadi-kmime_export.h" 00024 00025 #include "akonadi/specialcollections.h" 00026 00027 namespace Akonadi { 00028 00029 class SpecialMailCollectionsPrivate; 00030 00067 class AKONADI_KMIME_EXPORT SpecialMailCollections : public SpecialCollections 00068 { 00069 Q_OBJECT 00070 00071 public: 00078 enum Type 00079 { 00080 Invalid = -1, 00081 Root = 0, 00082 Inbox, 00083 Outbox, 00084 SentMail, 00085 Trash, 00086 Drafts, 00087 Templates, 00088 LastType 00089 }; 00090 00094 static SpecialMailCollections *self(); 00095 00100 bool hasCollection( Type type, const AgentInstance &instance ) const; 00101 00106 Akonadi::Collection collection( Type type, const AgentInstance &instance ) const; 00107 00116 bool registerCollection( Type type, const Akonadi::Collection &collection ); 00117 00122 bool hasDefaultCollection( Type type ) const; 00123 00128 Akonadi::Collection defaultCollection( Type type ) const; 00129 00130 private: 00131 //@cond PRIVATE 00132 friend class SpecialMailCollectionsPrivate; 00133 00134 #if 1 // TODO do this only if building tests: 00135 friend class SpecialMailCollectionsTesting; 00136 friend class LocalFoldersTest; 00137 #endif 00138 00139 SpecialMailCollections( SpecialMailCollectionsPrivate *dd ); 00140 00141 SpecialMailCollectionsPrivate *const d; 00142 //@endcond 00143 }; 00144 00145 } // namespace Akonadi 00146 00147 #endif // AKONADI_SPECIALMAILCOLLECTIONS_H