Hello community,
here is the log from the commit of package kdepimlibs4 for openSUSE:Factory checked in at 2013-08-16 13:38:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdepimlibs4 (Old)
and /work/SRC/openSUSE:Factory/.kdepimlibs4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdepimlibs4"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdepimlibs4/kdepimlibs4.changes 2013-07-30 16:00:33.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdepimlibs4.new/kdepimlibs4.changes 2013-08-16 13:38:49.000000000 +0200
@@ -1,0 +2,7 @@
+Thu Aug 8 14:56:31 UTC 2013 - tittiatcoke@gmail.com
+
+- Update to 4.11.0
+ * KDE 4.11 Final release
+ * See http://www.kde.org/announcements/4.11/
+
+-------------------------------------------------------------------
Old:
----
kdepimlibs-4.10.97.tar.xz
New:
----
kdepimlibs-4.11.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdepimlibs4.spec ++++++
--- /var/tmp/diff_new_pack.bj92d5/_old 2013-08-16 13:38:50.000000000 +0200
+++ /var/tmp/diff_new_pack.bj92d5/_new 2013-08-16 13:38:50.000000000 +0200
@@ -17,7 +17,7 @@
Name: kdepimlibs4
-Version: 4.10.97
+Version: 4.11.0
Release: 0
Summary: KDE PIM Libraries
License: LGPL-2.1+
++++++ kdepimlibs-4.10.97.tar.xz -> kdepimlibs-4.11.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.10.97/CMakeLists.txt new/kdepimlibs-4.11.0/CMakeLists.txt
--- old/kdepimlibs-4.10.97/CMakeLists.txt 2013-07-24 00:20:07.000000000 +0200
+++ new/kdepimlibs-4.11.0/CMakeLists.txt 2013-08-06 23:51:42.000000000 +0200
@@ -6,8 +6,8 @@
############### The kdepimlibs version (used e.g. in KdepimLibsConfig.cmake) ###############
set(KDEPIMLIBS_VERSION_MAJOR 4)
-set(KDEPIMLIBS_VERSION_MINOR 10)
-set(KDEPIMLIBS_VERSION_PATCH 97)
+set(KDEPIMLIBS_VERSION_MINOR 11)
+set(KDEPIMLIBS_VERSION_PATCH 0)
set(KDEPIMLIBS_VERSION ${KDEPIMLIBS_VERSION_MAJOR}.${KDEPIMLIBS_VERSION_MINOR}.${KDEPIMLIBS_VERSION_PATCH})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.10.97/akonadi/calendar/calendarbase.cpp new/kdepimlibs-4.11.0/akonadi/calendar/calendarbase.cpp
--- old/kdepimlibs-4.10.97/akonadi/calendar/calendarbase.cpp 2013-07-10 01:12:36.000000000 +0200
+++ new/kdepimlibs-4.11.0/akonadi/calendar/calendarbase.cpp 2013-08-06 14:46:05.000000000 +0200
@@ -49,6 +49,7 @@
CalendarBasePrivate::CalendarBasePrivate( CalendarBase *qq ) : QObject()
, mIncidenceChanger( new IncidenceChanger() )
, mBatchInsertionCancelled( false )
+ , mListensForNewItems( false )
, q( qq )
{
connect( mIncidenceChanger,
@@ -217,7 +218,7 @@
{
Q_UNUSED( changeId );
Q_UNUSED( item );
- if ( resultCode == IncidenceChanger::ResultCodeSuccess ) {
+ if ( resultCode == IncidenceChanger::ResultCodeSuccess && !mListensForNewItems) {
Q_ASSERT( item.isValid() );
Q_ASSERT( item.hasPayloadKCalCore::Incidence::Ptr() );
internalInsert( item );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.10.97/akonadi/calendar/calendarbase_p.h new/kdepimlibs-4.11.0/akonadi/calendar/calendarbase_p.h
--- old/kdepimlibs-4.10.97/akonadi/calendar/calendarbase_p.h 2013-07-10 01:12:36.000000000 +0200
+++ new/kdepimlibs-4.11.0/akonadi/calendar/calendarbase_p.h 2013-08-06 14:46:05.000000000 +0200
@@ -68,6 +68,7 @@
QWeakPointer<CalendarBase> mWeakPointer;
Akonadi::Collection mCollectionForBatchInsertion;
bool mBatchInsertionCancelled;
+ bool mListensForNewItems; // does this model detect new item creations ?
private:
CalendarBase *const q;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.10.97/akonadi/calendar/etmcalendar.cpp new/kdepimlibs-4.11.0/akonadi/calendar/etmcalendar.cpp
--- old/kdepimlibs-4.10.97/akonadi/calendar/etmcalendar.cpp 2013-07-10 01:12:36.000000000 +0200
+++ new/kdepimlibs-4.11.0/akonadi/calendar/etmcalendar.cpp 2013-08-06 14:46:05.000000000 +0200
@@ -55,6 +55,7 @@
, mCollectionFilteringEnabled( true )
, q( qq )
{
+ mListensForNewItems = true;
}
void ETMCalendarPrivate::init()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.10.97/akonadi/entitycache_p.h new/kdepimlibs-4.11.0/akonadi/entitycache_p.h
--- old/kdepimlibs-4.10.97/akonadi/entitycache_p.h 2013-07-14 12:02:21.000000000 +0200
+++ new/kdepimlibs-4.11.0/akonadi/entitycache_p.h 2013-08-06 14:46:05.000000000 +0200
@@ -311,7 +311,7 @@
}
if ( !toRequest.isEmpty() ) {
- request( toRequest, scope );
+ request( toRequest, scope, ids );
return false;
}
@@ -355,10 +355,10 @@
a token to indicate which request has been finished in the
dataAvailable() signal.
*/
- void request( const QListEntity::Id &ids, const FetchScope &scope )
+ void request( const QListEntity::Id &ids, const FetchScope &scope, const QListEntity::Id &preserveIds = QListEntity::Id() )
{
Q_ASSERT( isNotRequested( ids ) );
- shrinkCache();
+ shrinkCache( preserveIds );
foreach( Entity::Id id, ids ) {
EntityListCacheNode<T> *node = new EntityListCacheNode<T>( id );
mCache.insert( id, node );
@@ -393,12 +393,12 @@
private:
/** Tries to reduce the cache size until at least one more object fits in. */
- void shrinkCache()
+ void shrinkCache( const QListEntity::Id &preserveIds )
{
typename
QHash< Entity::Id, EntityListCacheNode<T>* >::Iterator iter = mCache.begin();
while ( iter != mCache.end() && mCache.size() >= mCapacity ) {
- if ( iter.value()->pending ) {
+ if ( iter.value()->pending || preserveIds.contains( iter.key() ) ) {
++iter;
continue;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.10.97/akonadi/item.h new/kdepimlibs-4.11.0/akonadi/item.h
--- old/kdepimlibs-4.10.97/akonadi/item.h 2013-07-10 01:12:36.000000000 +0200
+++ new/kdepimlibs-4.11.0/akonadi/item.h 2013-08-06 14:46:05.000000000 +0200
@@ -417,6 +417,7 @@
//@cond PRIVATE
friend class ItemCreateJob;
friend class ItemModifyJob;
+ friend class ItemModifyJobPrivate;
friend class ItemSync;
friend class ProtocolHelper;
PayloadBase* payloadBase() const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.10.97/akonadi/itemmodifyjob.cpp new/kdepimlibs-4.11.0/akonadi/itemmodifyjob.cpp
--- old/kdepimlibs-4.10.97/akonadi/itemmodifyjob.cpp 2013-07-10 01:12:36.000000000 +0200
+++ new/kdepimlibs-4.11.0/akonadi/itemmodifyjob.cpp 2013-08-06 14:46:05.000000000 +0200
@@ -99,6 +99,16 @@
}
+QString ItemModifyJobPrivate::jobDebuggingString() const
+{
+ try {
+ return QString::fromUtf8( fullCommand() );
+ } catch ( const Exception &e ) {
+ return QString::fromUtf8( e.what() );
+ }
+}
+
+
ItemModifyJob::ItemModifyJob( const Item &item, QObject * parent )
: Job( new ItemModifyJobPrivate( this ), parent )
{
@@ -134,13 +144,11 @@
{
}
-void ItemModifyJob::doStart()
+QByteArray ItemModifyJobPrivate::fullCommand() const
{
- Q_D( ItemModifyJob );
-
- const Akonadi::Item item = d->mItems.first();
+ const Akonadi::Item item = mItems.first();
QList<QByteArray> changes;
- foreach ( int op, d->mOperations ) {
+ foreach ( int op, mOperations ) {
switch ( op ) {
case ItemModifyJobPrivate::RemoteId:
if ( !item.remoteId().isNull() ) {
@@ -187,23 +195,14 @@
}
// nothing to do
- if ( changes.isEmpty() && d->mParts.isEmpty() && item.attributes().isEmpty() ) {
- emitResult();
- return;
+ if ( changes.isEmpty() && mParts.isEmpty() && item.attributes().isEmpty() ) {
+ return QByteArray();
}
- d->mTag = d->newTag();
- QByteArray command = d->mTag;
- try {
- command += ProtocolHelper::entitySetToByteArray( d->mItems, "STORE" );
- } catch ( const Exception &e ) {
- setError( Job::Unknown );
- setErrorText( QString::fromUtf8( e.what() ) );
- emitResult();
- return;
- }
+ QByteArray command;
+ command += ProtocolHelper::entitySetToByteArray( mItems, "STORE" ); // can throw an exception
command += ' ';
- if ( !d->mRevCheck || item.revision() < 0 ) {
+ if ( !mRevCheck || item.revision() < 0 ) {
command += "NOREV ";
} else {
command += "REV " + QByteArray::number( item.revision() ) + ' ';
@@ -216,7 +215,32 @@
const QByteArray attrs = ProtocolHelper::attributesToByteArray( item, true );
if ( !attrs.isEmpty() )
command += ' ' + attrs;
+ return command;
+}
+
+void ItemModifyJob::doStart()
+{
+ Q_D( ItemModifyJob );
+
+ QByteArray command;
+ try {
+ command = d->fullCommand();
+ } catch ( const Exception &e ) {
+ setError( Job::Unknown );
+ setErrorText( QString::fromUtf8( e.what() ) );
+ emitResult();
+ return;
+ }
+ if ( command.isEmpty() ) {
+ emitResult();
+ return;
+ }
+
+ d->mTag = d->newTag();
+ command.prepend( d->mTag );
+
command += d->nextPartHeader();
+
d->writeData( command );
d->newTag(); // hack to circumvent automatic response handling
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.10.97/akonadi/itemmodifyjob_p.h new/kdepimlibs-4.11.0/akonadi/itemmodifyjob_p.h
--- old/kdepimlibs-4.10.97/akonadi/itemmodifyjob_p.h 2013-07-10 01:12:36.000000000 +0200
+++ new/kdepimlibs-4.11.0/akonadi/itemmodifyjob_p.h 2013-08-06 14:46:05.000000000 +0200
@@ -47,6 +47,9 @@
void doUpdateItemRevision( Entity::Id, int oldRevision, int newRevision );
+ QString jobDebuggingString() const /*Q_DECL_OVERRIDE*/;
+ QByteArray fullCommand() const;
+
Q_DECLARE_PUBLIC( ItemModifyJob )
QSet<int> mOperations;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.10.97/akonadi/monitor_p.cpp new/kdepimlibs-4.11.0/akonadi/monitor_p.cpp
--- old/kdepimlibs-4.10.97/akonadi/monitor_p.cpp 2013-07-10 01:12:36.000000000 +0200
+++ new/kdepimlibs-4.11.0/akonadi/monitor_p.cpp 2013-08-06 14:46:05.000000000 +0200
@@ -118,10 +118,13 @@
|| ( op == NotificationMessageV2::Remove && q_ptr->receivers( SIGNAL(itemRemoved(Akonadi::Item)) ) == 0
&& q_ptr->receivers( SIGNAL(itemsRemoved(Akonadi::Item::List)) ) == 0 )
|| ( op == NotificationMessageV2::Modify && q_ptr->receivers( SIGNAL(itemChanged(Akonadi::Item,QSet<QByteArray>)) ) == 0 )
- || ( op == NotificationMessageV2::ModifyFlags && q_ptr->receivers( SIGNAL(itemsFlagsChanged(Akonadi::Item::List,QSet<QByteArray>,QSet<QByteArray>)) ) == 0 )
+ || ( op == NotificationMessageV2::ModifyFlags &&
+ ( q_ptr->receivers( SIGNAL(itemsFlagsChanged(Akonadi::Item::List,QSet<QByteArray>,QSet<QByteArray>)) ) == 0
// Newly delivered ModifyFlags notifications will be converted to
// itemChanged(item, "FLAGS") for legacy clients.
- || ( op == NotificationMessageV2::ModifyFlags && ( !allowModifyFlagsConversion || q_ptr->receivers( SIGNAL(itemChanged(Akonadi::Item,QSet<QByteArray>)) ) == 0 ) )
+ && ( !allowModifyFlagsConversion || q_ptr->receivers( SIGNAL(itemChanged(Akonadi::Item,QSet<QByteArray>)) ) == 0 )
+ )
+ )
|| ( op == NotificationMessageV2::Move && q_ptr->receivers( SIGNAL(itemMoved(Akonadi::Item,Akonadi::Collection,Akonadi::Collection)) ) == 0
&& q_ptr->receivers( SIGNAL(itemsMoved(Akonadi::Item::List,Akonadi::Collection,Akonadi::Collection)) ) == 0 )
|| ( op == NotificationMessageV2::Link && q_ptr->receivers( SIGNAL(itemLinked(Akonadi::Item,Akonadi::Collection)) ) == 0
@@ -547,11 +550,15 @@
const int appended = translateAndCompress( pendingNotifications, msg );
if ( appended > 0 ) {
appendedMessages += appended;
- // translateAndCompress can remove an existing "modify" when msg is a "delete". We need to detect that, for ChangeRecorder.
- if ( pendingNotifications.count() != oldSize + 1 )
- ++erasedMessages;
- } else
+ } else {
++modifiedMessages;
+ }
+ // translateAndCompress can remove an existing "modify" when msg is a "delete".
+ // Or it can merge two ModifyFlags and return false.
+ // We need to detect such removals, for ChangeRecorder.
+ if ( pendingNotifications.count() != oldSize + appended ) {
+ ++erasedMessages; // this count isn't exact, but it doesn't matter
+ }
} else if ( needsSplit ) {
// If it's not queued at least make sure we fetch all the items from split
// notifications in one go.
@@ -572,7 +579,7 @@
}
// tell ChangeRecorder (even if 0 appended, the compression could have made changes to existing messages)
- if ( appendedMessages > 0 || modifiedMessages > 0 ) {
+ if ( appendedMessages > 0 || modifiedMessages > 0 || erasedMessages > 0 ) {
if ( erasedMessages > 0 )
notificationsErased();
else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.10.97/akonadi/tests/entitycachetest.cpp new/kdepimlibs-4.11.0/akonadi/tests/entitycachetest.cpp
--- old/kdepimlibs-4.10.97/akonadi/tests/entitycachetest.cpp 2013-07-10 01:12:36.000000000 +0200
+++ new/kdepimlibs-4.11.0/akonadi/tests/entitycachetest.cpp 2013-08-06 14:46:05.000000000 +0200
@@ -150,6 +150,25 @@
QCOMPARE( item.id(), 1ll );
QVERIFY( item.hasPayload<QByteArray>() );
}
+
+ void testListCache_ensureCached()
+ {
+ ItemFetchScope scope;
+
+ EntityListCache