26#include <tqstylesheet.h>
29#include <kstaticdeleter.h>
31#include <libtdepim/progressmanager.h>
37#include "progressmanager.h"
43class ProgressManager::ProgressManagerPrivate
47 TQMap<Feed*, ProgressItemHandler*> handlers;
51static KStaticDeleter<ProgressManager> progressmanagersd;
57 m_self = progressmanagersd.setObject(m_self,
new ProgressManager);
61ProgressManager::ProgressManager() : d(new ProgressManagerPrivate)
66ProgressManager::~ProgressManager()
74 if (feedList == d->feedList)
79 for (TQMap<Feed*, ProgressItemHandler*>::ConstIterator it = d->handlers.begin(); it != d->handlers.end(); ++it)
83 disconnect(d->feedList, TQ_SIGNAL(signalNodeAdded(
TreeNode*)),
this, TQ_SLOT(slotNodeAdded(
TreeNode*)));
84 disconnect(d->feedList, TQ_SIGNAL(signalNodeRemoved(
TreeNode*)),
this, TQ_SLOT(slotNodeRemoved(
TreeNode*)));
87 d->feedList = feedList;
91 TQValueList<TreeNode*> list = feedList->asFlatList();
93 for (TQValueList<TreeNode*>::ConstIterator it = list.begin(); it != list.end(); ++it)
95 connect(feedList, TQ_SIGNAL(signalNodeAdded(
TreeNode*)),
this, TQ_SLOT(slotNodeAdded(
TreeNode*)));
96 connect(feedList, TQ_SIGNAL(signalNodeRemoved(
TreeNode*)),
this, TQ_SLOT(slotNodeRemoved(
TreeNode*)));
100void ProgressManager::slotNodeAdded(
TreeNode* node)
102 Feed* feed =
dynamic_cast<Feed*
>(node);
105 if (!d->handlers.contains(feed))
107 connect(feed, TQ_SIGNAL(signalDestroyed(
TreeNode*)),
this, TQ_SLOT(slotNodeDestroyed(
TreeNode*)));
111void ProgressManager::slotNodeRemoved(TreeNode* node)
113 Feed* feed =
dynamic_cast<Feed*
>(node);
116 disconnect(feed, TQ_SIGNAL(signalDestroyed(TreeNode*)),
this, TQ_SLOT(slotNodeDestroyed(TreeNode*)));
117 delete d->handlers[feed];
118 d->handlers.remove(feed);
122void ProgressManager::slotNodeDestroyed(TreeNode* node)
124 Feed* feed =
dynamic_cast<Feed*
>(node);
127 delete d->handlers[feed];
128 d->handlers.remove(feed);
132class ProgressItemHandler::ProgressItemHandlerPrivate
137 KPIM::ProgressItem* progressItem;
140ProgressItemHandler::ProgressItemHandler(Feed* feed) : d(new ProgressItemHandlerPrivate)
145 connect(feed, TQ_SIGNAL(fetchStarted(Feed*)),
this, TQ_SLOT(slotFetchStarted()));
146 connect(feed, TQ_SIGNAL(fetched(Feed*)),
this, TQ_SLOT(slotFetchCompleted()));
147 connect(feed, TQ_SIGNAL(fetchError(Feed*)),
this, TQ_SLOT(slotFetchError()));
148 connect(feed, TQ_SIGNAL(fetchAborted(Feed*)),
this, TQ_SLOT(slotFetchAborted()));
151ProgressItemHandler::~ProgressItemHandler()
155 d->progressItem->setComplete();
163void ProgressItemHandler::slotFetchStarted()
167 d->progressItem->setComplete();
171 d->progressItem = KPIM::ProgressManager::createProgressItem(KPIM::ProgressManager::getUniqueID(), TQStyleSheet::escape( d->feed->title() ), TQString(),
true);
173 connect(d->progressItem, TQ_SIGNAL(progressItemCanceled(KPIM::ProgressItem*)), d->feed, TQ_SLOT(slotAbortFetch()));
177void ProgressItemHandler::slotFetchCompleted()
181 d->progressItem->setStatus(i18n(
"Fetch completed"));
182 d->progressItem->setComplete();
187void ProgressItemHandler::slotFetchError()
191 d->progressItem->setStatus(i18n(
"Fetch error"));
192 d->progressItem->setComplete();
197void ProgressItemHandler::slotFetchAborted()
201 d->progressItem->setStatus(i18n(
"Fetch aborted"));
202 d->progressItem->setComplete();
209#include "progressmanager.moc"
The model of a feed tree, represents an OPML document.
this class handles the creation and deletion of progress items for one feed.
This class manages the progress items for all feeds.
void setFeedList(FeedList *feedList)
sets the feed list to be managed
Abstract base class for all kind of elements in the feed tree, like feeds and feed groups (and search...