akregator/src
folder.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef AKREGATOR_FOLDER_H
00027 #define AKREGATOR_FOLDER_H
00028
00029 #include "treenode.h"
00030
00031 class TQDomDocument;
00032 class TQDomElement;
00033 class TQStringList;
00034 template <class T> class TQValueList;
00035
00036 namespace Akregator
00037 {
00038 class Article;
00039 class FetchQueue;
00040 class TreeNodeVisitor;
00041
00044 class Folder : public TreeNode
00045 {
00046 Q_OBJECT
00047
00048 public:
00053 static Folder* fromOPML(TQDomElement e);
00054
00058 Folder(const TQString& title = TQString());
00059
00060 virtual ~Folder();
00061
00062 virtual bool accept(TreeNodeVisitor* visitor);
00063
00066 virtual TQValueList<Article> articles(const TQString& tag=TQString());
00067
00069 virtual TQStringList tags() const;
00070
00073 virtual int unread() const;
00074
00077 virtual int totalCount() const;
00078
00080 virtual bool isGroup() const { return true; }
00081
00087 virtual TQDomElement toOPML( TQDomElement parent, TQDomDocument document ) const;
00088
00092 virtual TQValueList<TreeNode*> children() const;
00093
00098 virtual void insertChild(TreeNode* node, TreeNode* after);
00099
00102 virtual void prependChild(TreeNode* node);
00103
00106 virtual void appendChild(TreeNode* node);
00107
00110 virtual void removeChild(TreeNode* node);
00111
00113 virtual TreeNode* firstChild();
00114
00116 virtual TreeNode* lastChild();
00117
00120 virtual bool isOpen() const;
00121
00123 virtual void setOpen(bool open);
00124
00125 signals:
00127 void signalChildAdded(TreeNode*);
00128
00130 void signalChildRemoved(Folder*, TreeNode*);
00131
00132 public slots:
00133
00135 virtual void slotDeleteExpiredArticles();
00136
00138 virtual void slotMarkAllArticlesAsRead();
00139
00143 virtual void slotChildChanged(TreeNode* node);
00144
00148 virtual void slotChildDestroyed(TreeNode* node);
00149
00153 virtual void slotAddToFetchQueue(FetchQueue* queue, bool intervalFetchesOnly=false);
00154
00158 virtual TreeNode* next();
00159
00160 protected:
00161
00165 virtual void insertChild(uint index, TreeNode* node);
00166
00167 virtual void doArticleNotification();
00168 private:
00169
00170 void connectToNode(TreeNode* child);
00171 void disconnectFromNode(TreeNode* child);
00172
00173 virtual void updateUnreadCount();
00174
00175 class FolderPrivate;
00176 FolderPrivate* d;
00177 };
00178 }
00179
00180 #endif // AKREGATOR_FOLDER_H
|