00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef AKREGATORFEEDLIST_H
00026 #define AKREGATORFEEDLIST_H
00027
00028 #include "nodelist.h"
00029
00030 class TQDomDocument;
00031 class TQDomNode;
00032 class TQString;
00033
00034 namespace Akregator
00035 {
00036
00037 class Article;
00038 class Feed;
00039 class Folder;
00040 class TreeNode;
00041
00044 class FeedList : public NodeList
00045 {
00046 Q_OBJECT
00047
00048 public:
00049
00050 FeedList(TQObject *parent = 0, const char *name = 0);
00051
00053 ~FeedList();
00054
00057 void append(FeedList* list, Folder* parent=0, TreeNode* after=0);
00058
00063 virtual bool readFromXML(const TQDomDocument& doc);
00064
00066 virtual TQDomDocument toXML() const;
00067
00069 Feed* findByURL(const TQString& feedURL) const;
00070
00071 Article findArticle(const TQString& feedURL, const TQString& guid) const;
00072
00073 signals:
00074
00075 void signalDestroyed(FeedList*);
00076
00077 protected:
00078
00079 virtual void addNode(TreeNode* node, bool preserveID);
00080 virtual void removeNode(TreeNode* node);
00081
00082 public:
00083
00084
00085 void parseChildNodes(TQDomNode &node, Folder* parent);
00086
00087
00088 FeedList(const FeedList&) : NodeList() {}
00089 FeedList& operator=(const FeedList&) { return *this; }
00090
00091 friend class AddNodeVisitor;
00092 class AddNodeVisitor;
00093
00094 friend class RemoveNodeVisitor;
00095 class RemoveNodeVisitor;
00096
00097 class FeedListPrivate;
00098 FeedListPrivate* d;
00099 };
00100
00101 }
00102
00103 #endif