[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