Hello community,
here is the log from the commit of package kdepimlibs4 for openSUSE:Factory
checked in at Fri Nov 5 14:46:28 CET 2010.
--------
--- KDE/kdepimlibs4/kdepimlibs4.changes 2010-09-30 23:43:53.000000000 +0200
+++ kdepimlibs4/kdepimlibs4.changes 2010-10-28 22:13:24.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Oct 28 22:13:19 CEST 2010 - dmueller@suse.de
+
+- update to 4.5.3
+ * see http://kde.org/announcements/changelogs/changelog4_5_2to4_5_3.php for details
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
kdepimlibs-4.5.2.tar.bz2
New:
----
kdepimlibs-4.5.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdepimlibs4.spec ++++++
--- /var/tmp/diff_new_pack.QcM166/_old 2010-11-05 14:46:05.000000000 +0100
+++ /var/tmp/diff_new_pack.QcM166/_new 2010-11-05 14:46:05.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package kdepimlibs4 (Version 4.5.2)
+# spec file for package kdepimlibs4 (Version 4.5.3)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -23,7 +23,7 @@
Group: System/GUI/KDE
Summary: KDE PIM Libraries
Url: http://www.kde.org
-Version: 4.5.2
+Version: 4.5.3
Release: 1
Source0: kdepimlibs-%version.tar.bz2
Patch0: 4_5_BRANCH.diff
++++++ kdepimlibs-4.5.2.tar.bz2 -> kdepimlibs-4.5.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/CMakeLists.txt new/kdepimlibs-4.5.3/CMakeLists.txt
--- old/kdepimlibs-4.5.2/CMakeLists.txt 2010-09-30 23:19:17.000000000 +0200
+++ new/kdepimlibs-4.5.3/CMakeLists.txt 2010-10-28 19:35:23.000000000 +0200
@@ -11,7 +11,7 @@
############### The kdepimlibs version (used e.g. in KdepimLibsConfig.cmake) ###############
set(KDEPIMLIBS_VERSION_MAJOR 4)
set(KDEPIMLIBS_VERSION_MINOR 5)
-set(KDEPIMLIBS_VERSION_PATCH 2)
+set(KDEPIMLIBS_VERSION_PATCH 3)
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.5.2/akonadi/collectionstatisticsdelegate.cpp new/kdepimlibs-4.5.3/akonadi/collectionstatisticsdelegate.cpp
--- old/kdepimlibs-4.5.2/akonadi/collectionstatisticsdelegate.cpp 2010-08-04 21:13:03.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/collectionstatisticsdelegate.cpp 2010-10-28 19:35:23.000000000 +0200
@@ -74,7 +74,8 @@
if ( index.model()->hasChildren( index ) )
{
- for ( int row = 0; row < index.model()->rowCount( index ); row++ )
+ const int rowCount = index.model()->rowCount( index );
+ for ( int row = 0; row < rowCount; row++ )
{
static const int column = 0;
count += getCountRecursive<countType>( index.model()->index( row, column, index ) );
@@ -287,7 +288,7 @@
sumText = QString::number( expanded ? unreadCount : unreadRecursiveCount );
} else {
- qint64 totalCount = statistics.unreadCount();
+ qint64 totalCount = statistics.count();
qint64 totalRecursiveCount = d->getCountRecursive<TotalCount>( index.sibling( index.row(), 0 ) );
if (index.column() == 2 && ( ( !expanded && totalRecursiveCount > 0 ) || ( expanded && totalCount > 0 ) ) ) {
sumText = QString::number( expanded ? totalCount : totalRecursiveCount );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/contact/contactsfilterproxymodel.cpp new/kdepimlibs-4.5.3/akonadi/contact/contactsfilterproxymodel.cpp
--- old/kdepimlibs-4.5.2/akonadi/contact/contactsfilterproxymodel.cpp 2010-05-27 19:22:13.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/contact/contactsfilterproxymodel.cpp 2010-10-28 19:35:23.000000000 +0200
@@ -155,6 +155,13 @@
return true;
}
+ const QStringList categories = contact.categories();
+ count = categories.count();
+ for ( int i = 0; i < count; ++i ) {
+ if ( categories.at( i ).contains( filterString, Qt::CaseInsensitive ) )
+ return true;
+ }
+
if ( contact.mailer().contains( filterString, Qt::CaseInsensitive ) )
return true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/contact/editor/im/kaddressbookimprotocol.desktop new/kdepimlibs-4.5.3/akonadi/contact/editor/im/kaddressbookimprotocol.desktop
--- old/kdepimlibs-4.5.2/akonadi/contact/editor/im/kaddressbookimprotocol.desktop 2010-07-28 23:04:09.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/contact/editor/im/kaddressbookimprotocol.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -28,6 +28,7 @@
Name[sr@latin]=Brzoglasnički protokol K‑adresra
Name[sv]=Addressbokens direktmeddelandeprotokoll
Name[th]=โพรโทคอลข้อความด่วนทันใจของสมุดที่อยู่-K
+Name[tr]=KAddressbook Anlık Mesajlaşma Protokolü
Name[uk]=Протокол миттєвого обміну повідомленнями KAddressbook
Name[wa]=Protocole di messaedjreye sol moumint di KAddressbook
Name[x-test]=xxKAddressbook Instant Messaging Protocolxx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/aimprotocol.desktop new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/aimprotocol.desktop
--- old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/aimprotocol.desktop 2010-07-28 23:04:08.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/aimprotocol.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -30,6 +30,7 @@
Comment[sr@latin]=Protokol AIM
Comment[sv]=AIM-protokoll
Comment[th]=โพรโทคอล AIM
+Comment[tr]=AIM Protokolü
Comment[uk]=Протокол AIM
Comment[wa]=Protocole AIM
Comment[x-test]=xxAIM Protocolxx
@@ -62,6 +63,7 @@
Name[sr@latin]=AIM
Name[sv]=AIM
Name[th]=AIM
+Name[tr]=AIM
Name[uk]=AIM
Name[wa]=AIM
Name[x-test]=xxAIMxx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/gaduprotocol.desktop new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/gaduprotocol.desktop
--- old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/gaduprotocol.desktop 2010-07-28 23:04:08.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/gaduprotocol.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -30,6 +30,7 @@
Comment[sr@latin]=Protokol Gadu‑Gadu
Comment[sv]=Gadu-Gadu protokoll
Comment[th]=โพรโทคอล Gadu-Gadu
+Comment[tr]=Gadu-Gadu Protokolü
Comment[uk]=Протокол Gadu-Gadu
Comment[wa]=Protocole Gadu-gadu
Comment[x-test]=xxGadu-Gadu Protocolxx
@@ -62,6 +63,7 @@
Name[sr@latin]=Gadu‑Gadu
Name[sv]=Gadu-Gadu
Name[th]=Gadu-Gadu
+Name[tr]=Gadu-Gadu
Name[uk]=Gadu-Gadu
Name[wa]=Gadu-Gadu
Name[x-test]=xxGadu-Gaduxx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/groupwiseprotocol.desktop new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/groupwiseprotocol.desktop
--- old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/groupwiseprotocol.desktop 2010-08-27 10:09:27.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/groupwiseprotocol.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -29,6 +29,7 @@
Comment[sr@latin]=Novellov GroupWise Messenger
Comment[sv]=Novell GroupWise-meddelandeklient
Comment[th]=ข้อความด่วนทันใจ GroupWise ของโนเวลล์
+Comment[tr]=Novell GroupWise Messenger
Comment[uk]=Програма обміну повідомленнями Novell GroupWise
Comment[wa]=Messaedjî Novell GroupWise
Comment[x-test]=xxNovell GroupWise Messengerxx
@@ -60,6 +61,7 @@
Name[sr@latin]=GroupWise
Name[sv]=GroupWise
Name[th]=GroupWise
+Name[tr]=GroupWise
Name[uk]=GroupWise
Name[wa]=GroupWise
Name[x-test]=xxGroupWisexx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/icqprotocol.desktop new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/icqprotocol.desktop
--- old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/icqprotocol.desktop 2010-07-28 23:04:08.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/icqprotocol.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -30,6 +30,7 @@
Comment[sr@latin]=Protokol ICQ
Comment[sv]=ICQ-protokoll
Comment[th]=โพรโทคอล ICQ
+Comment[tr]=ICQ Protokolü
Comment[uk]=Протокол ICQ
Comment[wa]=Protocole ICQ
Comment[x-test]=xxICQ Protocolxx
@@ -62,6 +63,7 @@
Name[sr@latin]=ICQ
Name[sv]=ICQ
Name[th]=ICQ
+Name[tr]=ICQ
Name[uk]=ICQ
Name[wa]=ICQ
Name[x-test]=xxICQxx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/ircprotocol.desktop new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/ircprotocol.desktop
--- old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/ircprotocol.desktop 2010-08-27 10:09:27.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/ircprotocol.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -28,6 +28,7 @@
Comment[sr@ijekavianlatin]=Ćaskanje putem Interneta
Comment[sr@latin]=Ćaskanje putem Interneta
Comment[sv]=Internet Relay Chat
+Comment[tr]=Internet Relay Chat
Comment[uk]=Internet Relay Chat
Comment[wa]=Internet Relay Chat
Comment[x-test]=xxInternet Relay Chatxx
@@ -60,6 +61,7 @@
Name[sr@latin]=IRC
Name[sv]=IRC
Name[th]=IRC
+Name[tr]=IRC
Name[uk]=IRC
Name[wa]=IRC
Name[x-test]=xxIRCxx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/jabberprotocol.desktop new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/jabberprotocol.desktop
--- old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/jabberprotocol.desktop 2010-07-28 23:04:08.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/jabberprotocol.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -30,6 +30,7 @@
Comment[sr@latin]=Protokol Jabber
Comment[sv]=Jabber-protokoll
Comment[th]=โพรโทคอล Jabber
+Comment[tr]=Jabber Protokolü
Comment[uk]=Протокол Jabber
Comment[wa]=Protocole Jabber
Comment[x-test]=xxJabber Protocolxx
@@ -62,6 +63,7 @@
Name[sr@latin]=Jabber
Name[sv]=Jabber
Name[th]=Jabber
+Name[tr]=Jabber
Name[uk]=Jabber
Name[wa]=Jabber
Name[x-test]=xxJabberxx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/meanwhileprotocol.desktop new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/meanwhileprotocol.desktop
--- old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/meanwhileprotocol.desktop 2010-07-28 23:04:08.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/meanwhileprotocol.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -29,6 +29,7 @@
Comment[sr@latin]=Protokol Meanwhile
Comment[sv]=Meanwhile-protokoll
Comment[th]=โพรโทคอล Meanwhile
+Comment[tr]=Aynı Zamanlı Protokol
Comment[uk]=Протокол Meanwhile
Comment[wa]=Protocole Meanwhile
Comment[x-test]=xxMeanwhile Protocolxx
@@ -60,6 +61,7 @@
Name[sr@latin]=Meanwhile
Name[sv]=Meanwhile
Name[th]=Meanwhile
+Name[tr]=Aynı Zamanlı
Name[uk]=Meanwhile
Name[wa]=Meanwhile
Name[x-test]=xxMeanwhilexx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/msnprotocol.desktop new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/msnprotocol.desktop
--- old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/msnprotocol.desktop 2010-07-28 23:04:08.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/msnprotocol.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -28,6 +28,7 @@
Comment[sr@ijekavianlatin]=MSN Messenger
Comment[sr@latin]=MSN Messenger
Comment[sv]=MSN Messenger
+Comment[tr]=MSN Messenger
Comment[uk]=MSN Messenger
Comment[wa]=MSN Messenger
Comment[x-test]=xxMSN Messengerxx
@@ -58,6 +59,7 @@
Name[sr@ijekavianlatin]=MSN Messenger
Name[sr@latin]=MSN Messenger
Name[sv]=MSN Messenger
+Name[tr]=MSN Messenger
Name[uk]=MSN Messenger
Name[wa]=MSN Messenger
Name[x-test]=xxMSN Messengerxx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/skypeprotocol.desktop new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/skypeprotocol.desktop
--- old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/skypeprotocol.desktop 2010-07-28 23:04:08.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/skypeprotocol.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -28,6 +28,7 @@
Comment[sr@ijekavianlatin]=Skype, internet telefonija
Comment[sr@latin]=Skype, internet telefonija
Comment[sv]=Skype Internettelefoni
+Comment[tr]=Skype İnternet Telefonu
Comment[uk]=Інтернет-телефонія Skype
Comment[wa]=Telefoneye sol Daegntoele Skype
Comment[x-test]=xxSkype Internet Telephonyxx
@@ -59,6 +60,7 @@
Name[sr@latin]=Skype
Name[sv]=Skype
Name[th]=Skype
+Name[tr]=Skype
Name[uk]=Skype
Name[wa]=Skype
Name[x-test]=xxSkypexx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/smsprotocol.desktop new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/smsprotocol.desktop
--- old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/smsprotocol.desktop 2010-07-28 23:04:08.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/smsprotocol.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -29,6 +29,7 @@
Comment[sr@latin]=Protokol SMS
Comment[sv]=SMS-protokoll
Comment[th]=โพรโทคอล SMS
+Comment[tr]=SMS Protokolü
Comment[uk]=Протокол SMS
Comment[wa]=Protocole SMS
Comment[x-test]=xxSMS Protocolxx
@@ -60,6 +61,7 @@
Name[sr@latin]=SMS
Name[sv]=SMS
Name[th]=SMS
+Name[tr]=SMS
Name[uk]=SMS
Name[wa]=SMS
Name[x-test]=xxSMSxx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/yahooprotocol.desktop new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/yahooprotocol.desktop
--- old/kdepimlibs-4.5.2/akonadi/contact/editor/im/protocols/yahooprotocol.desktop 2010-07-28 23:04:08.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/contact/editor/im/protocols/yahooprotocol.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -29,6 +29,7 @@
Comment[sr@latin]=Protokol Yahooa
Comment[sv]=Yahoo-protokoll
Comment[th]=โพรโทคอล Yahoo
+Comment[tr]=Yahoo Protokolü
Comment[uk]=Протокол Yahoo
Comment[wa]=Protocole Yahoo
Comment[x-test]=xxYahoo Protocolxx
@@ -60,6 +61,7 @@
Name[sr@latin]=Yahoo
Name[sv]=Yahoo
Name[th]=Yahoo
+Name[tr]=Yahoo
Name[uk]=Yahoo
Name[wa]=Yahoo
Name[x-test]=xxYahooxx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/item_p.h new/kdepimlibs-4.5.3/akonadi/item_p.h
--- old/kdepimlibs-4.5.2/akonadi/item_p.h 2010-03-03 19:23:55.000000000 +0100
+++ new/kdepimlibs-4.5.3/akonadi/item_p.h 2010-10-28 19:35:23.000000000 +0200
@@ -94,9 +94,9 @@
QString mMimeType;
Item::Flags mAddedFlags;
Item::Flags mDeletedFlags;
- bool mFlagsOverwritten;
- bool mSizeChanged;
- bool mClearPayload;
+ bool mFlagsOverwritten : 1;
+ bool mSizeChanged : 1;
+ bool mClearPayload : 1;
};
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/itemfetchjob.cpp new/kdepimlibs-4.5.3/akonadi/itemfetchjob.cpp
--- old/kdepimlibs-4.5.2/akonadi/itemfetchjob.cpp 2010-06-24 18:26:25.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/itemfetchjob.cpp 2010-10-28 19:35:23.000000000 +0200
@@ -40,11 +40,17 @@
{
public:
ItemFetchJobPrivate( ItemFetchJob *parent )
- : JobPrivate( parent )
+ : JobPrivate( parent ),
+ mValuePool( 0 )
{
mCollection = Collection::root();
}
+ ~ItemFetchJobPrivate()
+ {
+ delete mValuePool;
+ }
+
void init()
{
Q_Q( ItemFetchJob );
@@ -78,6 +84,7 @@
ItemFetchScope mFetchScope;
Item::List mPendingItems; // items pending for emitting itemsReceived()
QTimer* mEmitTimer;
+ ProtocolHelperValuePool *mValuePool;
};
void ItemFetchJobPrivate::startFetchJob()
@@ -116,6 +123,7 @@
d->init();
d->mCollection = collection;
+ d->mValuePool = new ProtocolHelperValuePool; // only worth it for lots of results
}
ItemFetchJob::ItemFetchJob( const Item & item, QObject * parent)
@@ -171,7 +179,7 @@
ImapParser::parseParenthesizedList( data, fetchResponse, begin + 6 );
Item item;
- ProtocolHelper::parseItemFetchResult( fetchResponse, item );
+ ProtocolHelper::parseItemFetchResult( fetchResponse, item, d->mValuePool );
if ( !item.isValid() )
return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/protocolhelper.cpp new/kdepimlibs-4.5.3/akonadi/protocolhelper.cpp
--- old/kdepimlibs-4.5.2/akonadi/protocolhelper.cpp 2010-06-24 18:26:25.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/protocolhelper.cpp 2010-10-28 19:35:23.000000000 +0200
@@ -79,26 +79,49 @@
return rv;
}
+void ProtocolHelper::parseAncestorsCached( const QByteArray &data, Entity *entity, Collection::Id parentCollection,
+ ProtocolHelperValuePool *pool, int start )
+{
+ if ( !pool || parentCollection == -1 ) {
+ // if no pool or parent collection id is provided we can't cache anything, so continue as usual
+ parseAncestors( data, entity, start );
+ return;
+ }
+
+ if ( pool->ancestorCollections.contains( parentCollection ) ) {
+ // ancestor chain is cached already, so use the cached value
+ entity->setParentCollection( pool->ancestorCollections.value( parentCollection ) );
+ } else {
+ // not cached yet, parse the chain
+ parseAncestors( data, entity, start );
+ pool->ancestorCollections.insert( parentCollection, entity->parentCollection() );
+ }
+}
+
void ProtocolHelper::parseAncestors( const QByteArray &data, Entity *entity, int start )
{
Q_UNUSED( start );
- QList<QByteArray> ancestors;
+ static const Collection::Id rootCollectionId = Collection::root().id();
+ QVarLengthArray ancestors;
+ QVarLengthArray parentIds;
+
ImapParser::parseParenthesizedList( data, ancestors );
Entity* current = entity;
- foreach ( const QByteArray &uidRidPair, ancestors ) {
- QList<QByteArray> parentIds;
- ImapParser::parseParenthesizedList( uidRidPair, parentIds );
+ for ( int i = 0; i < ancestors.count(); ++i ) {
+ parentIds.clear();
+ ImapParser::parseParenthesizedList( ancestors[ i ], parentIds );
if ( parentIds.size() != 2 )
break;
- const Collection::Id uid = parentIds.at( 0 ).toLongLong();
- const QString rid = QString::fromUtf8( parentIds.at( 1 ) );
- if ( uid == Collection::root().id() ) {
+
+ const Collection::Id uid = parentIds[ 0 ].toLongLong();
+ if ( uid == rootCollectionId ) {
current->setParentCollection( Collection::root() );
break;
}
+
current->parentCollection().setId( uid );
- current->parentCollection().setRemoteId( rid );
+ current->parentCollection().setRemoteId( QString::fromUtf8( parentIds[ 1 ] ) );
current = ¤t->parentCollection();
}
}
@@ -270,7 +293,7 @@
return command;
}
-void ProtocolHelper::parseItemFetchResult( const QList<QByteArray> &lineTokens, Item &item )
+void ProtocolHelper::parseItemFetchResult( const QList<QByteArray> &lineTokens, Item &item, ProtocolHelperValuePool *valuePool )
{
// create a new item object
Item::Id uid = -1;
@@ -298,7 +321,10 @@
} else if ( key == "COLLECTIONID" ) {
cid = value.toInt();
} else if ( key == "MIMETYPE" ) {
- mimeType = QString::fromLatin1( value );
+ if ( valuePool )
+ mimeType = valuePool->mimeTypePool.sharedValue( QString::fromLatin1( value ) );
+ else
+ mimeType = QString::fromLatin1( value );
}
}
@@ -327,8 +353,16 @@
if ( key == "FLAGS" ) {
QList<QByteArray> flags;
ImapParser::parseParenthesizedList( lineTokens[i + 1], flags );
- foreach ( const QByteArray &flag, flags ) {
- item.setFlag( flag );
+ if ( !flags.isEmpty() ) {
+ Item::Flags convertedFlags;
+ convertedFlags.reserve( flags.size() );
+ foreach ( const QByteArray &flag, flags ) {
+ if ( valuePool )
+ convertedFlags.insert( valuePool->flagPool.sharedValue( flag ) );
+ else
+ convertedFlags.insert( flag );
+ }
+ item.setFlags( convertedFlags );
}
} else if ( key == "SIZE" ) {
const quint64 size = lineTokens[i + 1].toLongLong();
@@ -338,7 +372,7 @@
ImapParser::parseDateTime( lineTokens[i + 1], datetime );
item.setModificationTime( datetime );
} else if ( key == "ANCESTORS" ) {
- ProtocolHelper::parseAncestors( lineTokens[i + 1], &item );
+ ProtocolHelper::parseAncestorsCached( lineTokens[i + 1], &item, cid, valuePool );
} else {
int version = 0;
QByteArray plainKey( key );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/protocolhelper_p.h new/kdepimlibs-4.5.3/akonadi/protocolhelper_p.h
--- old/kdepimlibs-4.5.2/akonadi/protocolhelper_p.h 2010-07-07 19:08:53.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/protocolhelper_p.h 2010-10-28 19:35:23.000000000 +0200
@@ -25,6 +25,7 @@
#include
#include
#include
+#include
#include
#include
@@ -34,6 +35,16 @@
namespace Akonadi {
+struct ProtocolHelperValuePool
+{
+ typedef Internal::SharedValuePool FlagPool;
+ typedef Internal::SharedValuePool MimeTypePool;
+
+ FlagPool flagPool;
+ MimeTypePool mimeTypePool;
+ QHash ancestorCollections;
+};
+
/**
@internal
Helper methods for converting between libakonadi objects and their protocol
@@ -72,6 +83,14 @@
static void parseAncestors( const QByteArray &data, Entity *entity, int start = 0 );
/**
+ Convert a ancestor chain from its protocol representation into an Entity object.
+
+ This method allows to pass a @p valuePool which acts as cache, so ancestor paths for the
+ same @p parentCollection don't have to be parsed twice.
+ */
+ static void parseAncestorsCached( const QByteArray &data, Entity *entity, Collection::Id parentCollection, ProtocolHelperValuePool *valuePool = 0, int start = 0 );
+
+ /**
Parse a collection description.
@param data The input data.
@param collection The parsed collection.
@@ -195,7 +214,7 @@
/**
Parses a single line from an item fetch job result into an Item object.
*/
- static void parseItemFetchResult( const QList<QByteArray> &lineTokens, Item &item );
+ static void parseItemFetchResult( const QList<QByteArray> &lineTokens, Item &item, ProtocolHelperValuePool *valuePool = 0 );
};
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/sharedvaluepool_p.h new/kdepimlibs-4.5.3/akonadi/sharedvaluepool_p.h
--- old/kdepimlibs-4.5.2/akonadi/sharedvaluepool_p.h 1970-01-01 01:00:00.000000000 +0100
+++ new/kdepimlibs-4.5.3/akonadi/sharedvaluepool_p.h 2010-10-28 19:35:23.000000000 +0200
@@ -0,0 +1,78 @@
+/*
+ Copyright (c) 2010 Volker Krause
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ This library is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
+ License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
+*/
+
+#ifndef AKONADI_SHAREDVALUEPOOL_P_H
+#define AKONADI_SHAREDVALUEPOOL_P_H
+
+#include
+#include <algorithm>
+
+namespace Akonadi {
+namespace Internal {
+
+/*template <typename T> class container_traits
+{
+ private:
+ typedef char sizeOne;
+ typedef struct { char a[2]; } sizeTwo;
+ template <typename C> static sizeOne testForKeyType( typename C::key_type const* );
+ template <typename C> static sizeTwo testForKeyType( ... );
+ public:
+ enum { isAssociative = sizeof( container_traits<T>::testForKeyType<T>( 0 ) ) == 1 };
+};*/
+
+/**
+ * Pool of implicitly shared values, use for optimizing memory use
+ * when having a large amount of copies from a small set of different values.
+ */
+template
+class SharedValuePool
+{
+ public:
+ /** Returns the shared value equal to @p value .*/
+ /*template <typename C>
+ typename boost::enable_if_c::isAssociative, C>::type sharedValue( const C &value, const int* = 0 )
+ {
+ typename Container<T>::const_iterator it = m_pool.constFind( value );
+ if ( it != m_pool.constEnd() )
+ return *it;
+ m_pool.insert( value );
+ return value;
+ }
+
+ template <typename C>
+ typename boost::disable_if_c::isAssociative, C>::type sharedValue( const C &value )*/
+ T sharedValue( const T &value )
+ {
+ // for small pool sizes this is actually faster than using lower_bound and a sorted vector
+ typename Container<T>::const_iterator it = std::find( m_pool.constBegin(), m_pool.constEnd(), value );
+ if ( it != m_pool.constEnd() )
+ return *it;
+ m_pool.push_back( value );
+ return value;
+ }
+
+ private:
+ Container<T> m_pool;
+};
+
+}
+}
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/tests/CMakeLists.txt new/kdepimlibs-4.5.3/akonadi/tests/CMakeLists.txt
--- old/kdepimlibs-4.5.2/akonadi/tests/CMakeLists.txt 2010-05-05 16:51:13.000000000 +0200
+++ new/kdepimlibs-4.5.3/akonadi/tests/CMakeLists.txt 2010-10-28 19:35:23.000000000 +0200
@@ -137,6 +137,7 @@
add_akonadi_test(collectionutilstest.cpp)
add_akonadi_test(entitydisplayattributetest.cpp)
add_akonadi_test(proxymodelstest.cpp)
+add_akonadi_test(sharedvaluepooltest.cpp)
# qtestlib tests that need non-exported stuff from akonadi-kde
kde4_add_unit_test(resourceschedulertest TESTNAME akonadi-resourceschedulertest resourceschedulertest.cpp ../resourcescheduler.cpp)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/akonadi/tests/sharedvaluepooltest.cpp new/kdepimlibs-4.5.3/akonadi/tests/sharedvaluepooltest.cpp
--- old/kdepimlibs-4.5.2/akonadi/tests/sharedvaluepooltest.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/kdepimlibs-4.5.3/akonadi/tests/sharedvaluepooltest.cpp 2010-10-28 19:35:23.000000000 +0200
@@ -0,0 +1,89 @@
+/*
+ Copyright (c) 2010 Volker Krause
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ This library is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
+ License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
+*/
+
+#include "../sharedvaluepool_p.h"
+#include
+
+#include <QVector>
+#include <QSet>
+#include <set>
+#include <vector>
+
+using namespace Akonadi;
+
+class SharedValuePoolTest : public QObject
+{
+ Q_OBJECT
+ private slots:
+ void testQVector_data()
+ {
+ QTest::addColumn<int>( "size" );
+ QTest::newRow( "10" ) << 10;
+ QTest::newRow( "100" ) << 100;
+ }
+
+ void testQVector()
+ {
+ QFETCH( int, size );
+ QVector<QByteArray> data;
+ Internal::SharedValuePool pool;
+
+ for ( int i = 0; i < size; ++i ) {
+ QByteArray b( 10, (char)i );
+ data.push_back( b );
+ QCOMPARE( pool.sharedValue( b ), b );
+ QCOMPARE( pool.sharedValue( b ), b );
+ }
+
+ QBENCHMARK {
+ foreach ( const QByteArray &b, data )
+ pool.sharedValue( b );
+ }
+ }
+
+ /*void testQSet_data()
+ {
+ QTest::addColumn<int>( "size" );
+ QTest::newRow( "10" ) << 10;
+ QTest::newRow( "100" ) << 100;
+ }
+
+ void testQSet()
+ {
+ QFETCH( int, size );
+ QVector<QByteArray> data;
+ Internal::SharedValuePool pool;
+
+ for ( int i = 0; i < size; ++i ) {
+ QByteArray b( 10, (char)i );
+ data.push_back( b );
+ QCOMPARE( pool.sharedValue( b ), b );
+ QCOMPARE( pool.sharedValue( b ), b );
+ }
+
+ QBENCHMARK {
+ foreach ( const QByteArray &b, data )
+ pool.sharedValue( b );
+ }
+ }*/
+};
+
+QTEST_KDEMAIN( SharedValuePoolTest, NoGUI )
+
+#include "sharedvaluepooltest.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/kabc/plugins/dir/dir.desktop new/kdepimlibs-4.5.3/kabc/plugins/dir/dir.desktop
--- old/kdepimlibs-4.5.2/kabc/plugins/dir/dir.desktop 2010-07-28 23:04:07.000000000 +0200
+++ new/kdepimlibs-4.5.3/kabc/plugins/dir/dir.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -53,7 +53,7 @@
Comment[es]=Provee acceso a los contactos, cada uno almacenado en un archivo diferente, dentro de un directorio determinado. Soporta archivos VCard estándar y otros formatos dependiendo de la disponibilidad de los complementos.
Comment[et]=Võimaldab kasutada eraldi failidesse salvestatud kontakte määratud kataloogis. Toetab standardseid VCard-faile ja teisi vorminguid sõltuvalt pluginate olemasolust.
Comment[fi]=Tarjoaa pääsyn annetun kansion yksittäisiin tiedostoihin tallennettuihin yhteystietoihin. Tukee vakiomuotoista vCard-tiedostoa sekä muita tiedostomuotoja liitännäisistä riippuen.
-Comment[fr]=Fourni l'accès aux contacts stockés chacun dans un fichier dans le dossier indiqué. Le format VCard et d'autres formats sont pris en charge en fonction des modules externes disponibles
+Comment[fr]=Fournit l'accès aux contacts stockés chacun dans un fichier dans le dossier indiqué. Le format VCard et d'autres formats sont pris en charge en fonction des modules externes disponibles
Comment[ga]=Soláthraíonn sé seo rochtain ar theagmhálacha, gach ceann stóráilte i gcomhad aonair, i bhfillteán sonraithe. Tacaítear le comhaid v-Chárta agus le formáidí eile, ag brath ar na breiseáin atá ar fáil.
Comment[gl]=Dá acceso aos contactos, cada un gardado nun ficheiro nun cartafol dado. Admite ficheiros vCard estándar e outros formatos, en función da dispoñibilidade de extensións.
Comment[hu]=Névjegyek elérését biztosítja. Minden névjegy külön fájlban található, egy adott mappában. Támogatja a standard vCard formátumot, és bővítmények segítségével más formátumok is kezelhetők.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/kabc/plugins/file/file.desktop new/kdepimlibs-4.5.3/kabc/plugins/file/file.desktop
--- old/kdepimlibs-4.5.2/kabc/plugins/file/file.desktop 2010-07-28 23:04:07.000000000 +0200
+++ new/kdepimlibs-4.5.3/kabc/plugins/file/file.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -59,7 +59,7 @@
Comment[es]=Provee acceso a los contactos almacenados en un único archivo local. Soporta archivos VCard estándar y otros formatos dependiendo de la disponibilidad de los componentes.
Comment[et]=Võimaldab kasutada kohalikku faili salvestatud kontakte. Toetab standardseid VCard-faile ja teisi vorminguid sõltuvalt pluginate olemasolust.
Comment[fi]=Tarjoaa pääsyn yksittäiseen paikalliseen tiedostoon tallennettuihin yhteystietoihin. Tukee vakiomuotoisia vCard-tiedostoja sekä muita tiedostomuotoja liitännäisistä riippuen.
-Comment[fr]=Fourni l'accès aux contacts stockés dans un seul fichier local. Le format VCard et d'autres formats sont pris en charge en fonction des modules externes disponibles.
+Comment[fr]=Fournit l'accès aux contacts stockés dans un seul fichier local. Le format VCard et d'autres formats sont pris en charge en fonction des modules externes disponibles.
Comment[ga]=Soláthraíonn sé seo rochtain ar theagmhálacha, stóráilte i gcomhad aonair. Tacaítear le comhaid v-Chárta agus formáidí eile, ag brath ar na breiseáin atá ar fáil.
Comment[gl]=Dá acceso a contactos gardados nun único ficheiro local. Admite ficheiros vCard estándar e outros formatos en función das extensións dispoñíbeis.
Comment[hu]=Névjegyek elérését biztosítja. Minden névjegy egy közös helyi fájlban található. Támogatja a standard vCard formátumot, és bővítmények segítségével más formátumok is kezelhetők.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/kabc/plugins/ldapkio/ldapkio.desktop new/kdepimlibs-4.5.3/kabc/plugins/ldapkio/ldapkio.desktop
--- old/kdepimlibs-4.5.2/kabc/plugins/ldapkio/ldapkio.desktop 2010-07-28 23:04:07.000000000 +0200
+++ new/kdepimlibs-4.5.3/kabc/plugins/ldapkio/ldapkio.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -59,7 +59,7 @@
Comment[es]=Provee acceso a los contactos almacenados en un servidor de directorios LDAP
Comment[et]=Võimaldab kasutada LDAP kataloogiserverisse salvestatud kontakte
Comment[fi]=Tarjoaa pääsyn LDAP-hakemistopalvelimelle tallennettuihin yhteystietoihin
-Comment[fr]=Fourni l'accès aux contacts stockés dans un annuaire LDAP
+Comment[fr]=Fournit l'accès aux contacts stockés dans un annuaire LDAP
Comment[ga]=Soláthraíonn sé seo rochtain ar theagmhálacha atá stóráilte in eolaire LDAP
Comment[gl]=Dá acceso a contactos gardados nun servidor de directorio LDAP
Comment[hu]=LDAP címtárkiszolgálókon tárolt névjegyek elérését biztosítja.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/kabc/plugins/net/net.desktop new/kdepimlibs-4.5.3/kabc/plugins/net/net.desktop
--- old/kdepimlibs-4.5.2/kabc/plugins/net/net.desktop 2010-07-28 23:04:07.000000000 +0200
+++ new/kdepimlibs-4.5.3/kabc/plugins/net/net.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -59,7 +59,7 @@
Comment[es]=Provee acceso a los contactos en un archivo remoto utilizando la infraestructura de red KIO de KDE. Soporta archivos VCard estándar y otros formatos dependiendo en la disponibilidad de los complementos.
Comment[et]=Võimaldab kasutada võrgufaile KDE võrguraamistiku KIO abil. Toetab standardseid VCard-faile ja teisi vorminguid sõltuvalt pluginate olemasolust.
Comment[fi]=Tarjoaa pääsyn etätiedostoissa oleviin yhteystietoihin KDE:n verkkokehyksen KIOn välityksellä. Tukee vakiomuotoisia vCard-tiedostoja sekä muita tiedostomuotoja liitännäisistä riippuen.
-Comment[fr]=Fourni l'accès aux contacts stockés dans des fichiers distants en utilisant le mécanisme réseau KIO de KDE. Le format VCard et d'autres formats sont pris en charge en fonction des modules externes disponibles.
+Comment[fr]=Fournit l'accès aux contacts stockés dans des fichiers distants en utilisant le mécanisme réseau KIO de KDE. Le format VCard et d'autres formats sont pris en charge en fonction des modules externes disponibles.
Comment[ga]=Soláthraíonn sé seo rochtain ar theagmhálacha i gcianchomhaid tríd an gcreatlach líonra KIO atá cuid de KDE. Tacaítear le comhaid v-Chárta agus formáidí eile, ag brath ar na breiseáin atá ar fáil.
Comment[gl]=Dá acceso a contactos gardados en ficheiros remotos mediante a infraestrutura de rede KIO, de KDE. Admite ficheiros vCard estándar e outros formatos en función das extensións dispoñíbeis.
Comment[hu]=Távoli fájlokban található névjegyek elérését biztosítja a KDE KIO keretrendszeren keresztül. Támogatja a standard vCard formátumot, és bővítmények segítségével más formátumok is kezelhetők.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/kcal/local.desktop new/kdepimlibs-4.5.3/kcal/local.desktop
--- old/kdepimlibs-4.5.2/kcal/local.desktop 2010-07-28 23:04:07.000000000 +0200
+++ new/kdepimlibs-4.5.3/kcal/local.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -57,7 +57,7 @@
Comment[es]=Provee acceso a un calendario almacenado en un único archivo local
Comment[et]=Võimaldab kasutada kohalikku faili salvestatud kalendrit
Comment[fi]=Tarjoaa pääsyn yksittäiseen paikalliseen tiedostoon tallennettuun kalenteriin
-Comment[fr]=Fourni l'accès à un agenda stocké dans un fichier local
+Comment[fr]=Fournit l'accès à un agenda stocké dans un fichier local
Comment[ga]=Soláthraíonn sé seo rochtain ar fhéilire stóráilte i gcomhad logánta amháin
Comment[gl]=Dá acceso a un calendario gardado nun único ficheiro local
Comment[hu]=Helyi fájlban tárolt naptár elérését biztosítja.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/kcal/localdir.desktop new/kdepimlibs-4.5.3/kcal/localdir.desktop
--- old/kdepimlibs-4.5.2/kcal/localdir.desktop 2010-07-28 23:04:07.000000000 +0200
+++ new/kdepimlibs-4.5.3/kcal/localdir.desktop 2010-10-28 19:35:23.000000000 +0200
@@ -57,7 +57,7 @@
Comment[es]=Provee acceso a elementos de un calendario, cada uno almacenado en un archivo diferente, dentro de un directorio determinado
Comment[et]=Võimaldab kasutada eraldi failidesse salvestatud kalendrielemente määratud kataloogis
Comment[fi]=Tarjoaa pääsyn annetun kansion erillisiin tiedostoihin tallennettuihin kalenteritietueisiin
-Comment[fr]=Fourni l'accès à des entrées d'agenda, chaque élément étant représenté par un fichier dans le dossier indiqué
+Comment[fr]=Fournit l'accès à des entrées d'agenda, chaque élément étant représenté par un fichier dans le dossier indiqué
Comment[ga]=Soláthraíonn sé seo rochtain ar mhíreanna féilire, gach ceann stóráilte i gcomhad aonair, i gcomhadlann sonraithe
Comment[gl]=Dá acceso aos obxectos do calendario, cada un gardado nun ficheiro nun cartafol dado
Comment[hu]=Helyi mappában tárolt naptérbejegyzések elérését biztosítja. Minden bejegyzés külön fájlban található.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/kcal/scheduler.cpp new/kdepimlibs-4.5.3/kcal/scheduler.cpp
--- old/kdepimlibs-4.5.2/kcal/scheduler.cpp 2010-05-16 22:05:07.000000000 +0200
+++ new/kdepimlibs-4.5.3/kcal/scheduler.cpp 2010-10-28 19:35:23.000000000 +0200
@@ -256,8 +256,8 @@
if ( !visitor.assign( calInc, newInc ) ) {
kError() << "assigning different incidence types";
} else {
- calInc->setUid( oldUid );
calInc->setSchedulingID( newInc->uid() );
+ calInc->setUid( oldUid );
res = true;
}
}
@@ -345,8 +345,8 @@
kError() << "assigning different incidence types";
res = false;
} else {
- i->setUid( oldUid );
i->setSchedulingID( inc->uid() );
+ i->setUid( oldUid );
}
deleteTransaction( incidence );
return res;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/kmime/kmime_content.h new/kdepimlibs-4.5.3/kmime/kmime_content.h
--- old/kdepimlibs-4.5.2/kmime/kmime_content.h 2010-05-16 22:05:06.000000000 +0200
+++ new/kdepimlibs-4.5.3/kmime/kmime_content.h 2010-10-28 19:35:22.000000000 +0200
@@ -770,8 +770,7 @@
template <typename T> T *Content::header( bool create )
{
- T dummy;
- Headers::Base *h = headerByType( dummy.type() );
+ Headers::Base *h = headerByType( T::staticType() );
if( h ) {
// Make sure the header is actually of the right type.
Q_ASSERT( dynamic_cast( h ) );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/kmime/kmime_headers.cpp new/kdepimlibs-4.5.3/kmime/kmime_headers.cpp
--- old/kdepimlibs-4.5.2/kmime/kmime_headers.cpp 2010-06-24 18:26:24.000000000 +0200
+++ new/kdepimlibs-4.5.3/kmime/kmime_headers.cpp 2010-10-28 19:35:22.000000000 +0200
@@ -124,12 +124,14 @@
\
const char *subclass::type() const \
{ \
- return #name; \
-}
+ return staticType(); \
+} \
+const char *subclass::staticType() { return #name; }
#define kmime_mk_trivial_ctor_with_name_and_dptr( subclass, baseclass, name ) \
kmime_mk_trivial_ctor_with_dptr( subclass, baseclass ) \
-const char *subclass::type() const { return #name; }
+const char *subclass::type() const { return staticType(); } \
+const char *subclass::staticType() { return #name; }
#define kmime_mk_dptr_ctor( subclass, baseclass ) \
subclass::subclass( subclass##Private *d, KMime::Content *parent ) : baseclass( d, parent ) {}
@@ -1715,7 +1717,13 @@
QByteArray ContentType::mimeType() const
{
- return d_func()->mimeType + '/' + d_func()->mimeSubType;
+ Q_D(const ContentType);
+ QByteArray mt;
+ mt.reserve( d->mimeType.size() + d->mimeSubType.size() + 1 );
+ mt.append( d->mimeType );
+ mt.append( '/' );
+ mt.append( d->mimeSubType );
+ return mt;
}
QByteArray ContentType::mediaType() const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/kmime/kmime_headers.h new/kdepimlibs-4.5.3/kmime/kmime_headers.h
--- old/kdepimlibs-4.5.2/kmime/kmime_headers.h 2010-05-16 22:05:06.000000000 +0200
+++ new/kdepimlibs-4.5.3/kmime/kmime_headers.h 2010-10-28 19:35:22.000000000 +0200
@@ -109,7 +109,8 @@
#define kmime_mk_trivial_ctor_with_name( subclass ) \
kmime_mk_trivial_ctor( subclass ) \
- const char *type() const;
+ const char *type() const; \
+ static const char *staticType();
//@endcond
//
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/kmime/kmime_message.cpp new/kdepimlibs-4.5.3/kmime/kmime_message.cpp
--- old/kdepimlibs-4.5.2/kmime/kmime_message.cpp 2010-07-12 23:08:14.000000000 +0200
+++ new/kdepimlibs-4.5.3/kmime/kmime_message.cpp 2010-10-28 19:35:22.000000000 +0200
@@ -103,8 +103,9 @@
KMime::Content *c = this;
while ( c ) {
// not a multipart message
- if ( !c->contentType()->isMultipart() ) {
- if ( c->contentType()->mimeType() == type || type.isEmpty() ) {
+ const KMime::Headers::ContentType * const contentType = c->contentType();
+ if ( !contentType->isMultipart() ) {
+ if ( contentType->mimeType() == type || type.isEmpty() ) {
return c;
}
return 0;
@@ -116,7 +117,7 @@
}
// multipart/alternative
- if ( c->contentType()->subType() == "alternative" ) {
+ if ( contentType->subType() == "alternative" ) {
if ( type.isEmpty() ) {
return c->contents().first();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/kmime/kmime_parsers.cpp new/kdepimlibs-4.5.3/kmime/kmime_parsers.cpp
--- old/kdepimlibs-4.5.2/kmime/kmime_parsers.cpp 2010-07-07 19:08:52.000000000 +0200
+++ new/kdepimlibs-4.5.3/kmime/kmime_parsers.cpp 2010-10-28 19:35:22.000000000 +0200
@@ -22,7 +22,6 @@
*/
#include "kmime_parsers.h"
-#include
#include
using namespace KMime::Parser;
@@ -164,7 +163,7 @@
//==============================================================================
UUEncoded::UUEncoded( const QByteArray &src, const QByteArray &subject ) :
- NonMimeParser( src ), s_ubject( subject )
+ NonMimeParser( src ), s_ubject( subject ), m_beginRegExp( "begin [0-9][0-9][0-9]" ), m_numberRegExp( "[0-9]+/[0-9]+" )
{}
bool UUEncoded::parse()
@@ -178,7 +177,7 @@
QByteArray tmp, fileName;
if ( ( beginPos = QString( s_rc ).
- indexOf( QRegExp( "begin [0-9][0-9][0-9]" ), currentPos ) ) > -1 &&
+ indexOf( m_beginRegExp, currentPos ) ) > -1 &&
( beginPos == 0 || s_rc.at( beginPos - 1 ) == '\n') ) {
containsBegin = true;
uuStart = s_rc.indexOf( '\n', beginPos );
@@ -223,9 +222,8 @@
if ( ( !containsBegin || !containsEnd ) && !s_ubject.isNull() ) {
// message may be split up => parse subject
- QRegExp rx("[0-9]+/[0-9]+");
- pos = rx.indexIn( QString( s_ubject ), 0 );
- len = rx.matchedLength();
+ pos = m_numberRegExp.indexIn( QString( s_ubject ), 0 );
+ len = m_numberRegExp.matchedLength();
if ( pos != -1 ) {
tmp = s_ubject.mid( pos, len );
pos = tmp.indexOf( '/' );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.5.2/kmime/kmime_parsers.h new/kdepimlibs-4.5.3/kmime/kmime_parsers.h
--- old/kdepimlibs-4.5.2/kmime/kmime_parsers.h 2009-08-20 04:41:48.000000000 +0200
+++ new/kdepimlibs-4.5.3/kmime/kmime_parsers.h 2010-10-28 19:35:22.000000000 +0200
@@ -23,8 +23,9 @@
#ifndef __KMIME_PARSERS__
#define __KMIME_PARSERS__
-#include<QByteArray>
-#include<QList>
+#include
+#include
+#include
namespace KMime {
@@ -103,6 +104,10 @@
protected:
QByteArray s_ubject;
+
+ private:
+ QRegExp m_beginRegExp;
+ QRegExp m_numberRegExp;
};
/** Helper-class: tries to extract the data from a possibly
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org