[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/pim/krss
From: Frank Osterfeld <frank.osterfeld () kdemail ! net>
Date: 2009-06-20 18:24:52
Message-ID: 1245522292.414665.4243.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 984432 by osterfeld:
use read flag "Seen" instead of unread flag "Unread" so we can easily use \
CollectionStatistics
M +8 -6 libkrss/feed.cpp
M +7 -7 libkrss/item.cpp
M +1 -1 libkrss/item.h
M +1 -0 resources/libkrssresource/importopmljob.cpp
M +3 -5 resources/libkrssresource/itemimportreader.cpp
M +6 -12 resources/libkrssresource/rssitemsync.cpp
M +4 -4 resources/libkrssresource/tests/importitemsjobtest.cpp
M +4 -4 resources/libkrssresource/tests/itemimportreadertest.cpp
M +5 -8 resources/libkrssresource/tests/rssitemsynctest.cpp
M +3 -2 resources/newsgatorresource/newsgatorjobs.cpp
M +0 -1 resources/opmlresource/opmljobs.cpp
--- trunk/playground/pim/krss/libkrss/feed.cpp #984431:984432
@@ -40,12 +40,14 @@
using namespace KRss;
void FeedPrivate::updateFromStatistics( const Akonadi::CollectionStatistics& stats ) \
{
- if ( m_unreadCount != stats.unreadCount() ) {
- m_unreadCount = stats.unreadCount();
+ const qint64 unread = stats.unreadCount();
+ const qint64 total = stats.count();
+ if ( unread != -1 && m_unreadCount != unread ) {
+ m_unreadCount = unread;
emit q->unreadCountChanged( m_feedCollection.id(), m_unreadCount );
}
- if ( m_totalCount != stats.count() ) {
- m_totalCount = stats.count();
+ if ( total != -1 && m_totalCount != total ) {
+ m_totalCount = total;
emit q->totalCountChanged( m_feedCollection.id(), m_totalCount );
}
}
@@ -156,8 +158,8 @@
this, SLOT( slotFetchFinished( const KRss::Feed::Id& ) ) );
connect( d->m_resource, SIGNAL( fetchFailed( const KRss::Feed::Id&, const \
QString& ) ),
this, SLOT( slotFetchFailed( const KRss::Feed::Id&, const QString& ) ) \
);
- connect( d->m_resource, SIGNAL( statisticsChanged( const KRss::Feed::Id&, \
Akonadi::CollectionStatistics) ),
- this , SLOT( slotStatisticsChanged( const KRss::Feed::Id&, \
Akonadi::CollectionStatistics)) ); + connect( d->m_resource, SIGNAL( \
statisticsChanged(KRss::Feed::Id, Akonadi::CollectionStatistics) ), + \
this , SLOT( slotStatisticsChanged(KRss::Feed::Id, Akonadi::CollectionStatistics)) ); \
Akonadi::CollectionStatisticsJob* job = new Akonadi::CollectionStatisticsJob( \
feedCollection );
connect( job, SIGNAL(finished(KJob*)), this, \
SLOT(slotStatisticsFetchDone(KJob*)) );
--- trunk/playground/pim/krss/libkrss/item.cpp #984431:984432
@@ -48,9 +48,9 @@
return "\\New";
}
-QByteArray Item::flagUnread()
+QByteArray Item::flagRead()
{
- return "\\Unread";
+ return "\\Seen";
}
QByteArray Item::flagImportant()
@@ -344,7 +344,7 @@
if ( d->akonadiItem.hasFlag( flagNew() ) )
stat |= Item::New;
- if ( d->akonadiItem.hasFlag( flagUnread() ) )
+ if ( !d->akonadiItem.hasFlag( flagRead() ) )
stat |= Item::Unread;
if ( d->akonadiItem.hasFlag( flagImportant() ) )
@@ -363,12 +363,12 @@
bool Item::isRead() const
{
- return !isUnread();
+ return d->akonadiItem.hasFlag( flagRead() );
}
bool Item::isUnread() const
{
- return d->akonadiItem.hasFlag( flagUnread() );
+ return !isRead();
}
bool Item::isNew() const
@@ -388,8 +388,8 @@
if ( stat.testFlag( Item::New ) )
flags.insert( flagNew() );
- if ( stat.testFlag( Item::Unread ) )
- flags.insert( flagUnread() );
+ if ( !stat.testFlag( Item::Unread ) )
+ flags.insert( flagRead() );
if ( stat.testFlag( Item::Important ) )
flags.insert( flagImportant() );
--- trunk/playground/pim/krss/libkrss/item.h #984431:984432
@@ -64,7 +64,7 @@
// flags
static QByteArray flagNew();
- static QByteArray flagUnread();
+ static QByteArray flagRead();
static QByteArray flagImportant();
static QByteArray flagDeleted();
--- trunk/playground/pim/krss/resources/libkrssresource/importopmljob.cpp \
#984431:984432 @@ -248,6 +248,7 @@
Q_FOREACH( KRss::FeedCollection feed, feeds ) {
feed.setName( generateCollectionName( feed ) );
Akonadi::CollectionCreateJob * const cjob = new \
Akonadi::CollectionCreateJob( feed ); + kDebug() << "created job for" << \
feed.title() << feed.name() << feed.description();
connect( cjob, SIGNAL( result( KJob* ) ), this, SLOT( \
slotFeedImportedAkonadi( KJob* ) ) ); cjob->start();
++m_pendingJobs;
--- trunk/playground/pim/krss/resources/libkrssresource/itemimportreader.cpp \
#984431:984432 @@ -238,12 +238,10 @@
item.setDateUpdated( KDateTime::fromString( \
reader.readElementText(), KDateTime::ISODate ) ); else if ( el.readStatus.isNextIn( \
reader ) ) { const QString statusStr = reader.readElementText();
- if ( statusStr == "new" ) {
+ if ( statusStr == "new" )
flags.insert( KRss::Item::flagNew() );
- flags.insert( KRss::Item::flagUnread() );
- }
- else if ( statusStr == "unread" )
- flags.insert( KRss::Item::flagUnread() );
+ else if ( statusStr != "unread" )
+ flags.insert( KRss::Item::flagRead() );
} else if ( el.important.isNextIn( reader ) ) {
if ( reader.readElementText() == "true" )
flags.insert( KRss::Item::flagImportant() );
--- trunk/playground/pim/krss/resources/libkrssresource/rssitemsync.cpp \
#984431:984432 @@ -58,27 +58,21 @@
if ( !newRssItem.guidIsHash() && storedHash != newHash ) {
kDebug() << "The article's content is updated:" << newItem.remoteId();
// dont overwrite the existing flags
- // and set 'New' + 'Unread'
+ // and set 'New'
newItem.setFlags( storedItem.flags() );
newItem.setFlag( KRss::Item::flagNew() );
- newItem.setFlag( KRss::Item::flagUnread() );
return true;
}
if ( m_synchronizeFlags ) {
- const bool lostUnreadFlag = storedItem.hasFlag( KRss::Item::flagUnread() ) \
&&
- !newItem.hasFlag( KRss::Item::flagUnread() );
- const bool gotUnreadFlag = !storedItem.hasFlag( KRss::Item::flagUnread() ) \
&&
- newItem.hasFlag( KRss::Item::flagUnread() );
-
- const bool lostImportantFlag = storedItem.hasFlag( \
KRss::Item::flagImportant() ) &&
- !newItem.hasFlag( KRss::Item::flagImportant() );
- const bool gotImportantFlag = !storedItem.hasFlag( \
KRss::Item::flagImportant() ) && + const bool readFlagsDiffer = \
storedItem.hasFlag( KRss::Item::flagRead() ) != + \
newItem.hasFlag( KRss::Item::flagRead() ); + const bool importantFlagsDiffer = \
storedItem.hasFlag( KRss::Item::flagImportant() ) !=
newItem.hasFlag( KRss::Item::flagImportant() );
- // either 'Unread' or 'Important' was changed in the backend
+ // either 'Seen' or 'Important' was changed in the backend
// push the item to Akonadi clearing 'New'
- if ( lostUnreadFlag || gotUnreadFlag || lostImportantFlag || \
gotImportantFlag ) { + if ( readFlagsDiffer || importantFlagsDiffer ) {
kDebug() << "The article's flags are updated:" << newItem.remoteId();
// We need to explicitely overwrite the item's flags
// otherwise Akonadi::ItemModifyJob just ignores them,
--- trunk/playground/pim/krss/resources/libkrssresource/tests/importitemsjobtest.cpp \
#984431:984432 @@ -75,7 +75,7 @@
// new + unread
QVERIFY( item.flags().count() == 2 );
QVERIFY( item.hasFlag( KRss::Item::flagNew() ) );
- QVERIFY( item.hasFlag( KRss::Item::flagUnread() ) );
+ QVERIFY( !item.hasFlag( KRss::Item::flagRead() ) );
QVERIFY( item.hasPayload<KRss::RssItem>() );
const KRss::RssItem rssItem = item.payload<KRss::RssItem>();
@@ -91,7 +91,7 @@
else if ( item.remoteId() == \
"http://labs.trolltech.com/blogs/2009/03/18/maccocoa-binary-package-available-for-testing/" \
) { // unread
QVERIFY( item.flags().count() == 1 );
- QVERIFY( item.hasFlag( KRss::Item::flagUnread() ) );
+ QVERIFY( !item.hasFlag( KRss::Item::flagRead() ) );
}
else if ( item.remoteId() == "http://wm161.net/?p=467" ) {
// deleted
@@ -116,13 +116,13 @@
// new (implies unread) + important
QVERIFY( item.flags().count() == 3 );
QVERIFY( item.hasFlag( KRss::Item::flagNew() ) );
- QVERIFY( item.hasFlag( KRss::Item::flagUnread() ) );
+ QVERIFY( !item.hasFlag( KRss::Item::flagRead() ) );
QVERIFY( item.hasFlag( KRss::Item::flagImportant() ) );
}
else if ( item.remoteId() == "http://www.purinchu.net/wp/?p=414" ) {
// unread + important
QVERIFY( item.flags().count() == 2 );
- QVERIFY( item.hasFlag( KRss::Item::flagUnread() ) );
+ QVERIFY( !item.hasFlag( KRss::Item::flagRead() ) );
QVERIFY( item.hasFlag( KRss::Item::flagImportant() ) );
}
}
--- trunk/playground/pim/krss/resources/libkrssresource/tests/itemimportreadertest.cpp \
#984431:984432 @@ -49,27 +49,27 @@
const Akonadi::Item item1 = items.value( \
"tag:blogger.com,1999:blog-6431293039768060590.post-962616740612527640" ); QVERIFY( \
item1.flags().count() == 2 ); QVERIFY( item1.hasFlag( KRss::Item::flagNew() ) );
- QVERIFY( item1.hasFlag( KRss::Item::flagUnread() ) );
+ QVERIFY( !item1.hasFlag( KRss::Item::flagRead() ) );
// new (implies unread) + important
QVERIFY( items.contains( \
"http://hemswell.lincoln.ac.uk/~padams/index.php?entry=entry090317-065020" \
) );
const Akonadi::Item item2 = items.value( \
"http://hemswell.lincoln.ac.uk/~padams/index.php?entry=entry090317-065020" ); \
QVERIFY( item2.flags().count() == 3 ); QVERIFY( item2.hasFlag( KRss::Item::flagNew() \
) );
- QVERIFY( item2.hasFlag( KRss::Item::flagUnread() ) );
+ QVERIFY( !item2.hasFlag( KRss::Item::flagRead() ) );
QVERIFY( item2.hasFlag( KRss::Item::flagImportant() ) );
// unread
QVERIFY( items.contains( \
"http://labs.trolltech.com/blogs/2009/03/18/maccocoa-binary-package-available-for-testing/" \
) );
const Akonadi::Item item3 = items.value( \
"http://labs.trolltech.com/blogs/2009/03/18/maccocoa-binary-package-available-for-testing/" \
); QVERIFY( item3.flags().count() == 1 );
- QVERIFY( item3.hasFlag( KRss::Item::flagUnread() ) );
+ QVERIFY( !item3.hasFlag( KRss::Item::flagRead() ) );
// unread + important
QVERIFY( items.contains( "http://www.purinchu.net/wp/?p=414" ) );
const Akonadi::Item item4 = items.value( "http://www.purinchu.net/wp/?p=414" );
QVERIFY( item4.flags().count() == 2 );
- QVERIFY( item4.hasFlag( KRss::Item::flagUnread() ) );
+ QVERIFY( !item4.hasFlag( KRss::Item::flagRead() ) );
QVERIFY( item4.hasFlag( KRss::Item::flagImportant() ) );
// read
--- trunk/playground/pim/krss/resources/libkrssresource/tests/rssitemsynctest.cpp \
#984431:984432 @@ -72,14 +72,13 @@
storedItem.setRemoteId( "remote-id-012345" );
storedItem.setMimeType( KRss::Item::mimeType() );
storedItem.setPayload<KRss::RssItem>( originalArticle );
- storedItem.setFlags( Akonadi::Item::Flags() << KRss::Item::flagImportant() );
+ storedItem.setFlags( Akonadi::Item::Flags() << KRss::Item::flagImportant() << \
KRss::Item::flagRead() );
Akonadi::Item newItemNotChanged;
newItemNotChanged.setRemoteId( "remote-id-012345" );
newItemNotChanged.setMimeType( "application/rss+xml" );
newItemNotChanged.setPayload<KRss::RssItem>( originalArticle );
- newItemNotChanged.setFlags( Akonadi::Item::Flags() << KRss::Item::flagNew() <<
- KRss::Item::flagUnread() );
+ newItemNotChanged.setFlags( Akonadi::Item::Flags() << KRss::Item::flagNew() );
QVERIFY( sync->updateItemExposed( storedItem, newItemNotChanged ) == false );
// verify that itemsync detects updated articles
@@ -89,11 +88,10 @@
newItemChanged.setRemoteId( "remote-id-012345" );
newItemChanged.setMimeType( "application/rss+xml" );
newItemChanged.setPayload<KRss::RssItem>( updatedArticle );
- newItemChanged.setFlags( Akonadi::Item::Flags() << KRss::Item::flagNew() <<
- KRss::Item::flagUnread() );
+ newItemChanged.setFlags( Akonadi::Item::Flags() << KRss::Item::flagNew() );
QVERIFY( sync->updateItemExposed( storedItem, newItemChanged ) == true );
QCOMPARE( newItemChanged.flags(), Akonadi::Item::Flags() << \
KRss::Item::flagImportant() <<
- KRss::Item::flagNew() << \
KRss::Item::flagUnread() ); + \
KRss::Item::flagNew() );
// verify that itemsync skips *updated* articles if their guid is hash
originalArticle.setGuidIsHash( true );
@@ -103,8 +101,7 @@
newItemChanged_Guid.setRemoteId( "remote-id-012345" );
newItemChanged_Guid.setMimeType( "application/rss+xml" );
newItemChanged_Guid.setPayload<KRss::RssItem>( updatedArticle );
- newItemChanged_Guid.setFlags( Akonadi::Item::Flags() << KRss::Item::flagNew() <<
- KRss::Item::flagUnread() );
+ newItemChanged_Guid.setFlags( Akonadi::Item::Flags() << KRss::Item::flagNew() );
QVERIFY( sync->updateItemExposed( storedItem, newItemChanged_Guid ) == false );
}
--- trunk/playground/pim/krss/resources/newsgatorresource/newsgatorjobs.cpp \
#984431:984432 @@ -751,7 +751,8 @@
// handle the item's flags
if ( rssItem.customProperty( \
"http://newsgator.com/schema/extensionsread" ) == "False" ) { item.setFlag( \
KRss::Item::flagNew() );
- item.setFlag( KRss::Item::flagUnread() );
+ } else {
+ item.setFlag( KRss::Item::flagRead() );
}
if ( rssItem.customProperties().contains( \
"http://newsgator.com/schema/extensionsflagState" ) ) { @@ -855,7 +856,7 @@
request.writeStartElement( "PostMetadata" );
request.writeStartElement( "PostMetadata" );
request.writeTextElement( "PostID", ids.at( 0 ) );
- request.writeTextElement( "State", m_item.hasFlag( KRss::Item::flagUnread() ) ? \
"0" : "1" ); + request.writeTextElement( "State", m_item.hasFlag( \
KRss::Item::flagRead() ) ? "1" : "0" );
request.writeTextElement( "FlagState", m_item.hasFlag( \
KRss::Item::flagImportant() ) ? "1" : "0" ); request.writeEndElement(); // \
PostMetadata request.writeEndElement(); // PostMetadata
--- trunk/playground/pim/krss/resources/opmlresource/opmljobs.cpp #984431:984432
@@ -683,7 +683,6 @@
item.setMimeType( KRss::Item::mimeType() );
item.setPayload<KRss::RssItem>( KRssResource::fromSyndicationItem( \
syndItem ) ); item.setFlag( KRss::Item::flagNew() );
- item.setFlag( KRss::Item::flagUnread() );
m_items.append( item );
}
emitResult();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic