knode
knfoldermanager.h
Go to the documentation of this file.00001 /* 00002 KNode, the KDE newsreader 00003 Copyright (c) 1999-2005 the KNode authors. 00004 See file AUTHORS for details 00005 00006 This program is free software; you can redistribute it and/or modify 00007 it under the terms of the GNU General Public License as published by 00008 the Free Software Foundation; either version 2 of the License, or 00009 (at your option) any later version. 00010 You should have received a copy of the GNU General Public License 00011 along with this program; if not, write to the Free Software Foundation, 00012 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, US 00013 */ 00014 00015 #ifndef KNFOLDERMANAGER_H 00016 #define KNFOLDERMANAGER_H 00017 00018 #include <QList> 00019 #include <QObject> 00020 00021 class KNFolder; 00022 class KNArticleManager; 00023 class KNCleanUp; 00024 00025 00027 class KNFolderManager : public QObject 00028 { 00029 Q_OBJECT 00030 00031 public: 00032 KNFolderManager(KNArticleManager *a); 00033 ~KNFolderManager(); 00034 00036 typedef QList<KNFolder*> List; 00037 00038 //folder access 00039 void setCurrentFolder(KNFolder *f); 00040 KNFolder* currentFolder() const { return c_urrentFolder; } 00041 bool hasCurrentFolder() const { return (c_urrentFolder!=0); } 00042 KNFolder* folder(int id); 00043 List folders() const { return mFolderList; } 00044 00046 KNFolder* root() const { return mFolderList[0]; } 00048 KNFolder* drafts() const { return mFolderList[1]; } 00050 KNFolder* outbox() const { return mFolderList[2]; } 00052 KNFolder* sent() const { return mFolderList[3]; } 00053 00054 //header loading 00055 bool loadHeaders(KNFolder *f); 00056 bool unloadHeaders(KNFolder *f, bool force=true); 00057 bool loadDrafts() { return loadHeaders(drafts()); } 00058 bool loadOutbox() { return loadHeaders(outbox()); } 00059 bool loadSent() { return loadHeaders(sent()); } 00060 00061 // returns the new folder 00062 KNFolder* newFolder(KNFolder *p); 00063 bool deleteFolder(KNFolder *f); 00064 void emptyFolder(KNFolder *f); 00065 bool moveFolder(KNFolder *f, KNFolder *p); 00066 00067 //unsent articles 00068 int unsentForAccount(int accId); 00069 00070 //compacting 00071 void compactFolder(KNFolder *f); 00072 void compactAll(KNCleanUp *cup); 00073 void compactAll(); 00074 00075 // import + export 00076 void importFromMBox(KNFolder *f); 00077 void exportToMBox(KNFolder *f); 00078 00079 //synchronization 00080 void syncFolders(); 00081 00082 signals: 00083 // signals for the collection tree to update the UI 00084 void folderAdded(KNFolder *f); 00085 void folderRemoved(KNFolder *f); 00086 void folderActivated(KNFolder *f); 00087 00088 protected: 00089 int loadCustomFolders(); 00090 00091 KNFolder *c_urrentFolder; 00092 List mFolderList; 00093 int l_astId; 00094 KNArticleManager *a_rtManager; 00095 00096 }; 00097 00098 #endif
KDE 4.2 API Reference