[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/pim/krss
From: Dmitry Ivanov <vonami () gmail ! com>
Date: 2009-05-25 10:41:31
Message-ID: 1243248091.575523.28375.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 972573 by divanov:
- merge Feed and PersistentFeed into Feed
- add SearchFeed
- move feed-related jobs to feedjobs.cpp
M +2 -2 krssreader/mainwidget.cpp
M +2 -2 krssreader/migratefeedscommand.cpp
M +4 -6 libkrss/CMakeLists.txt
AM libkrss/feed.cpp libkrss/persistentfeed.cpp#972098 [License: GPL \
(v2+)] AM libkrss/feed.h libkrss/persistentfeed.h#972098 [License: GPL \
(v2+)] AM libkrss/feed_p.h libkrss/persistentfeed_p.h#972098 [License: \
GPL (v2+)] A libkrss/feedjobs.cpp [License: GPL (v2+)]
A libkrss/feedjobs.h [License: GPL (v2+)]
M +63 -14 libkrss/feedlist.cpp
M +5 -1 libkrss/feedlist.h
M +1 -1 libkrss/feedlist_p.h
M +2 -2 libkrss/item.h
M +9 -7 libkrss/netfeed.cpp
M +7 -8 libkrss/netfeed.h
D libkrss/persistentfeed.cpp
D libkrss/persistentfeed.h
D libkrss/persistentfeed_p.h
D libkrss/persistentfeeddeletejob.cpp
D libkrss/persistentfeeddeletejob.h
D libkrss/persistentfeedmodifyjob.cpp
D libkrss/persistentfeedmodifyjob.h
A libkrss/searchfeed.cpp [License: GPL (v2+)]
A libkrss/searchfeed.h [License: GPL (v2+)]
M +10 -12 libkrss/standardactionmanager.cpp
M +2 -2 libkrss/tagprovider.h
M +1 -1 libkrss/treenodevisitor.cpp
--- trunk/playground/pim/krss/krssreader/mainwidget.cpp #972572:972573
@@ -122,7 +122,7 @@
}
void MainWidget::importItems() {
- NetFeed* nf = static_cast<NetFeed*>( qobject_cast<PersistentFeed*>( \
m_currentFeed ) ); + NetFeed* nf = static_cast<NetFeed*>( qobject_cast<Feed*>( \
m_currentFeed ) );
//TODO assuming for now that the feed is from the first resource
const Resource* const resource = ResourceManager::self()->resource( \
ResourceManager::self()->identifiers().first() ); @@ -240,7 +240,7 @@
m_currentNode = node;
- const NetFeed * const nf = static_cast<const NetFeed*>( \
qobject_cast<PersistentFeed*>( m_currentFeed ) ); + const NetFeed * const nf = \
static_cast<const NetFeed*>( qobject_cast<Feed*>( m_currentFeed ) );
m_actionCollection->action( QString::fromLatin1( "krssreader_import_items" ) \
)->setEnabled( nf );
Akonadi::ItemFetchScope fetchScope;
--- trunk/playground/pim/krss/krssreader/migratefeedscommand.cpp #972572:972573
@@ -311,8 +311,8 @@
return;
}
- const QList<NetFeed*> netFeeds = feedList->netFeeds();
- Q_FOREACH( const NetFeed* const i, netFeeds ) {
+ const QList<shared_ptr<const NetFeed> > netFeeds = feedList->constNetFeeds();
+ Q_FOREACH( const shared_ptr<const NetFeed>& i, netFeeds ) {
ImportOpmlJob::FeedInfo fi;
fi.xmlUrl = i->xmlUrl();
fi.title = i->title();
--- trunk/playground/pim/krss/libkrss/CMakeLists.txt #972572:972573
@@ -31,7 +31,7 @@
resourcemanager.cpp
resource.cpp
feed.cpp
- persistentfeed.cpp
+ searchfeed.cpp
netfeed.cpp
feedlist.cpp
dbushelper.cpp
@@ -43,11 +43,10 @@
importopmljob.cpp
itemlisting.cpp
itemlistjob.cpp
+ feedjobs.cpp
itemjobs.cpp
itemstatusmodifyjob.cpp
netfeedcreatejob.cpp
- persistentfeedmodifyjob.cpp
- persistentfeeddeletejob.cpp
rssitemserializer_xml.cpp
standardactionmanager.cpp
#subscriptionsmodel.cpp
@@ -97,7 +96,7 @@
tag.h
resourcemanager.h
feed.h
- persistentfeed.h
+ searchfeed.h
netfeed.h
feedlist.h
itemlisting.h
@@ -106,10 +105,9 @@
importopmljob.h
feedlistmodel.h
itemjobs.h
+ feedjobs.h
itemstatusmodifyjob.h
netfeedcreatejob.h
- persistentfeedmodifyjob.h
- persistentfeeddeletejob.h
standardactionmanager.h
subscriptionsmodel.h
tagjobs.h
** trunk/playground/pim/krss/libkrss/feed.cpp #property svn:mergeinfo
+
** trunk/playground/pim/krss/libkrss/feed.h #property svn:mergeinfo
+
** trunk/playground/pim/krss/libkrss/feed_p.h #property svn:mergeinfo
+
--- trunk/playground/pim/krss/libkrss/feedlist.cpp #972572:972573
@@ -19,8 +19,9 @@
#include "feedlist_p.h"
#include "resource.h"
#include "resourcemanager.h"
-#include "persistentfeed.h"
+#include "feed.h"
#include "netfeed.h"
+#include "searchfeed.h"
#include "feedcollection.h"
#include <akonadi/collectionfetchjob.h>
@@ -40,13 +41,13 @@
using namespace KRss;
using boost::shared_ptr;
+using boost::dynamic_pointer_cast;
-
// private implementation
-KRss::Feed::Id FeedListPrivate::appendPersistentFeed( const FeedCollection& \
collection ) +KRss::Feed::Id FeedListPrivate::appendFeed( const FeedCollection& \
collection ) {
m_feedsMap[ collection.resource() ].append( collection.id() );
- shared_ptr<Feed> feed( new PersistentFeed( collection, m_resources.value( \
collection.resource() ) ) ); + shared_ptr<Feed> feed( new NetFeed( collection, \
m_resources.value( collection.resource() ) ) ); m_feeds.insert( collection.id(), \
feed );
QObject::connect( feed.get(), SIGNAL( unreadCountChanged( const KRss::Feed::Id&, \
int ) ), @@ -107,7 +108,7 @@
}
Collection col = static_cast<CollectionFetchJob*>( job )->collections().first();
- const KRss::Feed::Id id = appendPersistentFeed( col );
+ const KRss::Feed::Id id = appendFeed( col );
emit q->feedAdded( id );
dump();
}
@@ -151,20 +152,68 @@
QStringList FeedList::feedUrls() const {
QStringList urls;
- Q_FOREACH( const shared_ptr<const Feed>& i, d->m_feeds.values() )
- if ( const PersistentFeed* const pf = qobject_cast<const PersistentFeed* \
const>( i.get() ) )
- urls += static_cast<const NetFeed* const>( pf )->xmlUrl(); // FIXME: \
needs to be fixed for persistent search folders + Q_FOREACH( const \
shared_ptr<const Feed>& feed, d->m_feeds.values() ) { + if ( \
!feed->isVirtual() ) { + const shared_ptr<const NetFeed> netFeed = \
dynamic_pointer_cast<const NetFeed, const Feed>( feed ); + Q_ASSERT( \
netFeed ); + urls += netFeed->xmlUrl();
+ }
+ }
return urls;
}
-QList<NetFeed*> FeedList::netFeeds() const {
- QList<NetFeed*> netFeeds;
- Q_FOREACH( const shared_ptr<Feed>& i, d->m_feeds.values() )
- if ( PersistentFeed* const pf = qobject_cast<PersistentFeed* const>( i.get() \
) )
- netFeeds += static_cast<NetFeed* const>( pf ); // FIXME: needs to be \
fixed for persistent search folders +QList<shared_ptr<NetFeed> > FeedList::netFeeds() \
const +{
+ QList<shared_ptr<NetFeed> > netFeeds;
+ Q_FOREACH( const shared_ptr<Feed>& feed, d->m_feeds.values() ) {
+ if ( !feed->isVirtual() ) {
+ const shared_ptr<NetFeed> netFeed = dynamic_pointer_cast<NetFeed, Feed>( \
feed ); + Q_ASSERT( netFeed );
+ netFeeds.append( netFeed );
+ }
+ }
return netFeeds;
}
+QList<shared_ptr<const NetFeed> > FeedList::constNetFeeds() const
+{
+ QList<shared_ptr<const NetFeed> > constNetFeeds;
+ Q_FOREACH( const shared_ptr<const Feed>& feed, d->m_feeds.values() ) {
+ if ( !feed->isVirtual() ) {
+ const shared_ptr<const NetFeed> netFeed = dynamic_pointer_cast<const \
NetFeed, const Feed>( feed ); + Q_ASSERT( netFeed );
+ constNetFeeds.append( netFeed );
+ }
+ }
+ return constNetFeeds;
+}
+
+QList<shared_ptr<SearchFeed> > FeedList::searchFeeds() const
+{
+ QList<shared_ptr<SearchFeed> > searchFeeds;
+ Q_FOREACH( const shared_ptr<Feed>& feed, d->m_feeds.values() ) {
+ if ( feed->isVirtual() ) {
+ const shared_ptr<SearchFeed> searchFeed = \
dynamic_pointer_cast<SearchFeed, Feed>( feed ); + Q_ASSERT( searchFeed );
+ searchFeeds.append( searchFeed );
+ }
+ }
+ return searchFeeds;
+}
+
+QList<shared_ptr<const SearchFeed> > FeedList::constSearchFeeds() const
+{
+ QList<shared_ptr<const SearchFeed> > constSearchFeeds;
+ Q_FOREACH( const shared_ptr<const Feed>& feed, d->m_feeds.values() ) {
+ if ( feed->isVirtual() ) {
+ const shared_ptr<const SearchFeed> searchFeed = \
dynamic_pointer_cast<const SearchFeed, const Feed>( feed ); + Q_ASSERT( \
searchFeed ); + constSearchFeeds.append( searchFeed );
+ }
+ }
+ return constSearchFeeds;
+}
+
QList<Feed::Id> FeedList::feedIds() const
{
return d->m_feeds.keys();
@@ -264,7 +313,7 @@
Q_FOREACH( const Collection &col, cols ) {
// accept only 'first generation' child collections
if ( col.parent() != Collection::root().id() ) {
- feedList->d->appendPersistentFeed( col );
+ feedList->d->appendFeed( col );
uris.append( col.url() );
}
}
--- trunk/playground/pim/krss/libkrss/feedlist.h #972572:972573
@@ -30,6 +30,7 @@
namespace KRss {
class NetFeed;
+class SearchFeed;
class RetrieveFeedListJob;
class RetrieveFeedListJobPrivate;
@@ -48,8 +49,11 @@
QList<boost::shared_ptr<Feed> > feeds() const;
QList<boost::shared_ptr<const Feed> > constFeeds() const;
+ QList<boost::shared_ptr<NetFeed> > netFeeds() const;
+ QList<boost::shared_ptr<const NetFeed> > constNetFeeds() const;
+ QList<boost::shared_ptr<SearchFeed> > searchFeeds() const;
+ QList<boost::shared_ptr<const SearchFeed> > constSearchFeeds() const;
- QList<NetFeed*> netFeeds() const;
QList<Feed::Id> feedIds() const;
QStringList feedUrls() const;
--- trunk/playground/pim/krss/libkrss/feedlist_p.h #972572:972573
@@ -42,7 +42,7 @@
{
}
- KRss::Feed::Id appendPersistentFeed( const FeedCollection& feedCollection );
+ KRss::Feed::Id appendFeed( const FeedCollection& feedCollection );
void dump();
void slotFeedAdded( const KRss::Feed::Id& id );
--- trunk/playground/pim/krss/libkrss/item.h #972572:972573
@@ -257,8 +257,8 @@
friend class ItemModifyJobPrivate;
friend class ItemDeleteJob;
friend class ItemDeleteJobPrivate;
- friend class PersistentFeed;
- friend class PersistentFeedItemListJobImpl;
+ friend class Feed;
+ friend class ItemListJobImpl;
class Private;
QSharedDataPointer<Private> d;
--- trunk/playground/pim/krss/libkrss/netfeed.cpp #972572:972573
@@ -16,37 +16,39 @@
*/
#include "netfeed.h"
+#include "feed_p.h"
#include "feedcollection.h"
using namespace KRss;
-NetFeed::NetFeed( const FeedCollection &feedCollection, Resource *resource, QObject \
*parent )
- : PersistentFeed( feedCollection, resource, parent )
+NetFeed::NetFeed( const FeedCollection &feedCollection, const Resource *resource, \
QObject *parent ) + : Feed( feedCollection, resource, parent )
{
}
-NetFeed::~NetFeed()
+bool NetFeed::isVirtual() const
{
+ return false;
}
QString NetFeed::xmlUrl() const
{
- return feedCollection().xmlUrl();
+ return d->m_feedCollection.xmlUrl();
}
void NetFeed::setXmlUrl( const QString &xmlUrl )
{
- feedCollection().setXmlUrl( xmlUrl );
+ d->m_feedCollection.setXmlUrl( xmlUrl );
}
QString NetFeed::htmlUrl() const
{
- return feedCollection().htmlUrl();
+ return d->m_feedCollection.htmlUrl();
}
void NetFeed::setHtmlUrl( const QString &htmlUrl )
{
- feedCollection().setHtmlUrl( htmlUrl );
+ d->m_feedCollection.setHtmlUrl( htmlUrl );
}
#include "netfeed.moc"
--- trunk/playground/pim/krss/libkrss/netfeed.h #972572:972573
@@ -19,29 +19,28 @@
#define KRSS_NETFEED_H
#include "krss_export.h"
-#include "persistentfeed.h"
+#include "feed.h"
namespace KRss {
-class KRSS_EXPORT NetFeed : public PersistentFeed
+class KRSS_EXPORT NetFeed : public Feed
{
Q_OBJECT
public:
-
- ~NetFeed();
-
+ bool isVirtual() const;
QString xmlUrl() const;
void setXmlUrl( const QString &xmlUrl );
QString htmlUrl() const;
void setHtmlUrl( const QString &htmlUrl );
-private:
+ //TODO: cache policies
- explicit NetFeed( const FeedCollection &feedCollection, Resource *resource, \
QObject *parent = 0 );
-
private:
+ explicit NetFeed( const FeedCollection& feedCollection, const Resource \
*resource, QObject *parent = 0 );
+private:
+ friend class FeedListPrivate;
Q_DISABLE_COPY(NetFeed)
};
--- trunk/playground/pim/krss/libkrss/standardactionmanager.cpp #972572:972573
@@ -21,12 +21,10 @@
#include "treenode.h"
#include "itemmodel.h"
#include "feed.h"
-#include "persistentfeed.h"
#include "item.h"
#include "netfeed.h"
#include "netfeedcreatejob.h"
-#include "persistentfeedmodifyjob.h"
-#include "persistentfeeddeletejob.h"
+#include "feedjobs.h"
#include "itemjobs.h"
#include "resourcemanager.h"
#include "ui/netfeedcreatedialog.h"
@@ -50,6 +48,7 @@
using namespace KRss;
using boost::shared_ptr;
+using boost::dynamic_pointer_cast;
static const struct {
const char *name;
@@ -340,8 +339,7 @@
if ( !feedNode )
return;
- // FIXME: the feedlist should contain only NetFeeds
- NetFeed *feed = static_cast<NetFeed*>( d->m_feedList->feedById( \
feedNode->feedId() ).get() ); + shared_ptr<NetFeed> feed = \
dynamic_pointer_cast<NetFeed, Feed>( d->m_feedList->feedById( feedNode->feedId() ) ); \
FeedPropertiesDialog *dialog = new FeedPropertiesDialog();
dialog->setFeedTitle( feed->title() );
@@ -355,7 +353,7 @@
dialog->hasCustomFetchInterval() ? feed->setFetchInterval( \
dialog->fetchInterval() ) : feed->setFetchInterval( 0 );
- PersistentFeedModifyJob *job = new PersistentFeedModifyJob( feed, this );
+ FeedModifyJob * const job = new FeedModifyJob( feed, this );
connect( job, SIGNAL( result( KJob* ) ), this, SLOT( slotFeedModified( KJob* \
) ) ); job->start();
}
@@ -379,10 +377,10 @@
if ( !feedNode )
return;
- PersistentFeed *feed = qobject_cast<PersistentFeed*>( d->m_feedList->feedById( \
feedNode->feedId() ).get() ); + shared_ptr<const Feed> feed = \
d->m_feedList->constFeedById( feedNode->feedId() ); Q_ASSERT( feed );
- PersistentFeedDeleteJob *job = new PersistentFeedDeleteJob( feed , this );
+ FeedDeleteJob * const job = new FeedDeleteJob( feed , this );
connect( job, SIGNAL( result( KJob* ) ), this, SLOT( slotFeedDeleted( KJob* ) ) \
); job->start();
}
@@ -464,17 +462,17 @@
dialog->setInitialSize( QSize( 400, 460 ) );
if ( dialog->exec() == KDialog::Accepted ) {
- Q_FOREACH( PersistentFeed *feed, subscriptionsModel->unsubscribed() ) {
+ Q_FOREACH( Feed *feed, subscriptionsModel->unsubscribed() ) {
kDebug() << "Unsubscribing from:" << feed->id() << ", title:" << \
feed->title(); feed->removeSubscriptionLabel( d->m_subscriptionLabel );
- PersistentFeedModifyJob *job = new PersistentFeedModifyJob( \
static_cast<const PersistentFeed *> ( feed ), this ); + FeedModifyJob *job \
= new FeedModifyJob( static_cast<const Feed *> ( feed ), this );
connect( job, SIGNAL( result( KJob* ) ), this, SLOT( slotFeedModified( \
KJob* ) ) ); job->start();
}
- Q_FOREACH( PersistentFeed *feed, subscriptionsModel->subscribed() ) {
+ Q_FOREACH( Feed *feed, subscriptionsModel->subscribed() ) {
kDebug() << "Subscribing to:" << feed->id() << ", title:" << \
feed->title(); feed->addSubscriptionLabel( d->m_subscriptionLabel );
- PersistentFeedModifyJob *job = new PersistentFeedModifyJob( \
static_cast<const PersistentFeed *> ( feed ), this ); + FeedModifyJob *job \
= new FeedModifyJob( static_cast<const Feed *> ( feed ), this );
connect( job, SIGNAL( result( KJob* ) ), this, SLOT( slotFeedModified( \
KJob* ) ) ); job->start();
}
--- trunk/playground/pim/krss/libkrss/tagprovider.h #972572:972573
@@ -71,8 +71,8 @@
// these jobs use Tag*ReferencesJob to update
// the tagprovider specific storage
// when creating/modifying/deleting feeds/articles
- friend class PersistentFeedModifyJobPrivate;
- friend class PersistentFeedDeleteJobPrivate;
+ friend class FeedModifyJobPrivate;
+ friend class FeedDeleteJobPrivate;
friend class ItemModifyJobPrivate;
friend class ItemDeleteJobPrivate;
Q_DISABLE_COPY( TagProvider )
--- trunk/playground/pim/krss/libkrss/treenodevisitor.cpp #972572:972573
@@ -124,5 +124,5 @@
void CreateItemListJobVisitor::visit( const shared_ptr<FeedNode>& feedNode )
{
- d->m_job->addSubJob( d->m_feedList->constFeedById( feedNode->feedId() \
)->createListJob() ); + d->m_job->addSubJob( d->m_feedList->feedById( \
feedNode->feedId() )->itemListJob() ); }
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic