00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __bookmarkiterator_h
00022 #define __bookmarkiterator_h
00023
00024 #include <tqobject.h>
00025 #include <tqptrlist.h>
00026 #include <kbookmark.h>
00027
00028 class KEBListViewItem;
00029 class BookmarkIteratorHolder;
00030
00031 class BookmarkIterator : public QObject
00032 {
00033 Q_OBJECT
00034
00035 public:
00036 BookmarkIterator(TQValueList<KBookmark> bks);
00037 virtual ~BookmarkIterator();
00038 virtual BookmarkIteratorHolder* holder() const = 0;
00039
00040 public slots:
00041 void nextOne();
00042 void delayedEmitNextOne();
00043 void slotCancelTest(BookmarkIterator *t);
00044
00045 signals:
00046 void deleteSelf(BookmarkIterator *);
00047
00048 protected:
00049 virtual void doAction() = 0;
00050 virtual bool isApplicable(const KBookmark &bk) const = 0;
00051 KEBListViewItem* curItem() const;
00052 const KBookmark curBk() const;
00053
00054 private:
00055 KBookmark m_bk;
00056 TQValueList<KBookmark> m_bklist;
00057 };
00058
00059 class BookmarkIteratorHolder
00060 {
00061 public:
00062 void cancelAllItrs();
00063 void removeItr(BookmarkIterator*);
00064 void insertItr(BookmarkIterator*);
00065 protected:
00066 BookmarkIteratorHolder();
00067 virtual ~BookmarkIteratorHolder() {};
00068 virtual void doItrListChanged() = 0;
00069 int count() const { return m_itrs.count(); }
00070 private:
00071 TQPtrList<BookmarkIterator> m_itrs;
00072 };
00073
00074 #endif