Hello community, here is the log from the commit of package kdepimlibs4 for openSUSE:Factory checked in at Wed Jun 8 17:27:19 CEST 2011.
-------- --- KDE/kdepimlibs4/kdepimlibs4.changes 2011-04-28 18:14:11.000000000 +0200 +++ /mounts/work_src_done/STABLE/kdepimlibs4/kdepimlibs4.changes 2011-06-02 19:47:52.000000000 +0200 @@ -1,0 +2,8 @@ +Thu Jun 2 19:47:43 CEST 2011 - dmuel...@suse.de + +- update to 4.6.4 + * Bugfixes over KDE 4.6.3 + * see http://kde.org/announcements/changelogs/changelog4_6_3to4_6_4.php for details + + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- kdepimlibs-4.6.3.tar.bz2 New: ---- kdepimlibs-4.6.4.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kdepimlibs4.spec ++++++ --- /var/tmp/diff_new_pack.6eCtcB/_old 2011-06-08 17:26:57.000000000 +0200 +++ /var/tmp/diff_new_pack.6eCtcB/_new 2011-06-08 17:26:57.000000000 +0200 @@ -18,7 +18,7 @@ Name: kdepimlibs4 -Version: 4.6.3 +Version: 4.6.4 Release: 1 License: LGPLv2.1+ Summary: KDE PIM Libraries ++++++ kdepimlibs-4.6.3.tar.bz2 -> kdepimlibs-4.6.4.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/CMakeLists.txt new/kdepimlibs-4.6.4/CMakeLists.txt --- old/kdepimlibs-4.6.3/CMakeLists.txt 2011-04-28 15:18:42.000000000 +0200 +++ new/kdepimlibs-4.6.4/CMakeLists.txt 2011-06-02 19:24:10.000000000 +0200 @@ -7,7 +7,7 @@ ############### The kdepimlibs version (used e.g. in KdepimLibsConfig.cmake) ############### set(KDEPIMLIBS_VERSION_MAJOR 4) set(KDEPIMLIBS_VERSION_MINOR 6) -set(KDEPIMLIBS_VERSION_PATCH 3) +set(KDEPIMLIBS_VERSION_PATCH 4) 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.6.3/akonadi/collectionstatisticsdelegate.cpp new/kdepimlibs-4.6.4/akonadi/collectionstatisticsdelegate.cpp --- old/kdepimlibs-4.6.3/akonadi/collectionstatisticsdelegate.cpp 2011-02-25 18:45:07.000000000 +0100 +++ new/kdepimlibs-4.6.4/akonadi/collectionstatisticsdelegate.cpp 2011-06-02 19:23:57.000000000 +0200 @@ -65,13 +65,13 @@ .foreground( KColorScheme::LinkText ).color(); } - template<CountType countType> - qint64 getCountRecursive( const QModelIndex &index ) const + void getCountRecursive( const QModelIndex &index, qint64 &totalCount, qint64 &unreadCount ) const { Collection collection = qvariant_cast<Collection>( index.data( EntityTreeModel::CollectionRole ) ); Q_ASSERT( collection.isValid() ); CollectionStatistics statistics = collection.statistics(); - qint64 count = qMax( 0LL, countType == UnreadCount ? statistics.unreadCount() : statistics.count() ); + totalCount += qMax( 0LL, statistics.count() ); + unreadCount += qMax( 0LL, statistics.unreadCount() ); if ( index.model()->hasChildren( index ) ) { @@ -79,10 +79,9 @@ for ( int row = 0; row < rowCount; row++ ) { static const int column = 0; - count += getCountRecursive<countType>( index.model()->index( row, column, index ) ); + getCountRecursive( index.model()->index( row, column, index ), totalCount, unreadCount ); } } - return count; } }; @@ -234,7 +233,9 @@ CollectionStatistics statistics = collection.statistics(); qint64 unreadCount = qMax( 0LL, statistics.unreadCount() ); - qint64 unreadRecursiveCount = d->getCountRecursive<UnreadCount>( index.sibling( index.row(), 0 ) ); + qint64 totalRecursiveCount = 0; + qint64 unreadRecursiveCount = 0; + d->getCountRecursive( index.sibling( index.row(), 0 ), totalRecursiveCount, unreadRecursiveCount ); // Draw the unread count after the folder name (in parenthesis) if ( d->drawUnreadAfterFolder && index.column() == 0 ) { @@ -279,9 +280,9 @@ unreadRect.setLeft( folderRect.right() ); // Draw folder name and unread count - painter->drawText( folderRect, Qt::AlignLeft, folderName ); + painter->drawText( folderRect, Qt::AlignLeft | Qt::AlignVCenter, folderName ); painter->setPen( unreadColor ); - painter->drawText( unreadRect, Qt::AlignLeft, unread ); + painter->drawText( unreadRect, Qt::AlignLeft | Qt::AlignVCenter, unread ); } else if ( option.decorationPosition == QStyleOptionViewItem::Top ) { // draw over the icon painter->setPen( unreadColor ); @@ -307,13 +308,12 @@ } else { 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 ); } } - painter->drawText( textRect, Qt::AlignRight, sumText ); + painter->drawText( textRect, Qt::AlignRight | Qt::AlignVCenter, sumText ); return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/akonadi/erroroverlay.cpp new/kdepimlibs-4.6.4/akonadi/erroroverlay.cpp --- old/kdepimlibs-4.6.3/akonadi/erroroverlay.cpp 2011-02-25 23:05:49.000000000 +0100 +++ new/kdepimlibs-4.6.4/akonadi/erroroverlay.cpp 2011-06-02 19:23:57.000000000 +0200 @@ -54,10 +54,13 @@ ErrorOverlay::ErrorOverlay( QWidget *baseWidget, QWidget * parent ) : QWidget( parent ? parent : baseWidget->window() ), mBaseWidget( baseWidget ), + mBaseWidgetIsParent( false ), ui( new Ui::ErrorOverlay ) { Q_ASSERT( baseWidget ); + mBaseWidgetIsParent = isParentOf( mBaseWidget, this ); + // check existing overlays to detect cascading for ( QVector<QPair< QPointer<QWidget>, QPointer<QWidget> > >::Iterator it = sInstanceOverlay->baseWidgets.begin(); it != sInstanceOverlay->baseWidgets.end(); ) { @@ -113,7 +116,7 @@ ErrorOverlay::~ ErrorOverlay() { - if ( mBaseWidget ) + if ( mBaseWidget && !mBaseWidgetIsParent ) mBaseWidget->setEnabled( mPreviousState ); } @@ -176,13 +179,18 @@ if ( state == ServerManager::Running && mOverlayActive ) { mOverlayActive = false; hide(); - mBaseWidget->setEnabled( mPreviousState ); + if ( !mBaseWidgetIsParent ) + mBaseWidget->setEnabled( mPreviousState ); } else if ( !mOverlayActive ) { mOverlayActive = true; if ( mBaseWidget->isVisible() ) show(); - mPreviousState = mBaseWidget->isEnabled(); - mBaseWidget->setEnabled( false ); + + if ( !mBaseWidgetIsParent ) { + mPreviousState = mBaseWidget->isEnabled(); + mBaseWidget->setEnabled( false ); + } + reposition(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/akonadi/erroroverlay_p.h new/kdepimlibs-4.6.4/akonadi/erroroverlay_p.h --- old/kdepimlibs-4.6.3/akonadi/erroroverlay_p.h 2011-02-25 23:05:49.000000000 +0100 +++ new/kdepimlibs-4.6.4/akonadi/erroroverlay_p.h 2011-06-02 19:23:57.000000000 +0200 @@ -67,8 +67,8 @@ QPointer<QWidget> mBaseWidget; bool mPreviousState; bool mOverlayActive; + bool mBaseWidgetIsParent; boost::scoped_ptr<Ui::ErrorOverlay> ui; - }; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/akonadi/firstrun.cpp new/kdepimlibs-4.6.4/akonadi/firstrun.cpp --- old/kdepimlibs-4.6.3/akonadi/firstrun.cpp 2011-02-25 18:45:07.000000000 +0100 +++ new/kdepimlibs-4.6.4/akonadi/firstrun.cpp 2011-06-02 19:23:57.000000000 +0200 @@ -85,6 +85,11 @@ mPendingDefaults << dirName + fileName; } } + +#ifndef KDEPIM_NO_KRESOURCES + // always check legacy kres for migration, their migrator might have changed again + mPendingKres << QLatin1String("contact") << QLatin1String("calendar"); +#endif } #ifndef KDEPIM_NO_KRESOURCES @@ -155,6 +160,12 @@ mCurrentDefault = 0; if ( mPendingDefaults.isEmpty() ) { +#ifndef KDEPIM_NO_KRESOURCES + if ( !mPendingKres.isEmpty() ) { + migrateKresType( mPendingKres.takeFirst() ); + return; + } +#endif deleteLater(); return; } @@ -192,7 +203,7 @@ KConfigGroup cfg( mConfig, "ProcessedDefaults" ); cfg.writeEntry( agentCfg.readEntry( "Id", QString() ), QString::fromLatin1( "kres" ) ); cfg.sync(); - migrateKresType( kresType ); + setupNext(); return; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/akonadi/firstrun_p.h new/kdepimlibs-4.6.4/akonadi/firstrun_p.h --- old/kdepimlibs-4.6.3/akonadi/firstrun_p.h 2011-02-25 18:45:07.000000000 +0100 +++ new/kdepimlibs-4.6.4/akonadi/firstrun_p.h 2011-06-02 19:23:57.000000000 +0200 @@ -91,6 +91,7 @@ KConfig *mCurrentDefault; KProcess *mProcess; #ifndef KDEPIM_NO_KRESOURCES + QStringList mPendingKres; QString mResourceFamily; #endif }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/akonadi/kmime/markascommand.cpp new/kdepimlibs-4.6.4/akonadi/kmime/markascommand.cpp --- old/kdepimlibs-4.6.3/akonadi/kmime/markascommand.cpp 2011-02-25 23:05:49.000000000 +0100 +++ new/kdepimlibs-4.6.4/akonadi/kmime/markascommand.cpp 2011-06-02 19:23:57.000000000 +0200 @@ -129,6 +129,7 @@ } else { Akonadi::ItemModifyJob *modifyJob = new Akonadi::ItemModifyJob( itemsToModify, this ); modifyJob->setIgnorePayload( true ); + modifyJob->disableRevisionCheck(); connect( modifyJob, SIGNAL( result( KJob* ) ), this, SLOT( slotModifyItemDone( KJob* ) ) ); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/akonadi/kmime/standardmailactionmanager.cpp new/kdepimlibs-4.6.4/akonadi/kmime/standardmailactionmanager.cpp --- old/kdepimlibs-4.6.3/akonadi/kmime/standardmailactionmanager.cpp 2011-04-28 15:15:25.000000000 +0200 +++ new/kdepimlibs-4.6.4/akonadi/kmime/standardmailactionmanager.cpp 2011-06-02 19:23:57.000000000 +0200 @@ -27,6 +27,7 @@ #include "markascommand_p.h" #include "movetotrashcommand_p.h" #include "removeduplicatescommand_p.h" +#include "specialmailcollections.h" #include "akonadi/agentfilterproxymodel.h" #include "akonadi/agentinstance.h" @@ -309,6 +310,19 @@ const Akonadi::CollectionStatistics stats = collection.statistics(); enableMarkAllAsRead = (stats.unreadCount() > 0); enableMarkAllAsUnread = (stats.count() != stats.unreadCount()); + + const bool isSystemFolder = (collection == SpecialMailCollections::self()->defaultCollection( SpecialMailCollections::Inbox ) || + collection == SpecialMailCollections::self()->defaultCollection( SpecialMailCollections::Outbox ) || + collection == SpecialMailCollections::self()->defaultCollection( SpecialMailCollections::SentMail ) || + collection == SpecialMailCollections::self()->defaultCollection( SpecialMailCollections::Trash ) || + collection == SpecialMailCollections::self()->defaultCollection( SpecialMailCollections::Drafts ) || + collection == SpecialMailCollections::self()->defaultCollection( SpecialMailCollections::Templates )); + + if ( isSystemFolder ) { + if ( mGenericManager->action( StandardActionManager::DeleteCollections ) ) { + mGenericManager->action( StandardActionManager::DeleteCollections )->setEnabled( false ); + } + } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/akonadi/recursivecollectionfilterproxymodel.cpp new/kdepimlibs-4.6.4/akonadi/recursivecollectionfilterproxymodel.cpp --- old/kdepimlibs-4.6.3/akonadi/recursivecollectionfilterproxymodel.cpp 2011-02-25 23:05:49.000000000 +0100 +++ new/kdepimlibs-4.6.4/akonadi/recursivecollectionfilterproxymodel.cpp 2011-06-02 19:23:57.000000000 +0200 @@ -20,7 +20,7 @@ #include "recursivecollectionfilterproxymodel.h" #include "entitytreemodel.h" -#include "entityhiddenattribute.h" +#include "mimetypechecker.h" #include <kdebug.h> @@ -56,23 +56,19 @@ delete d_ptr; } -bool RecursiveCollectionFilterProxyModel::acceptRow(int sourceRow, const QModelIndex& sourceParent) const +bool RecursiveCollectionFilterProxyModel::acceptRow( int sourceRow, const QModelIndex &sourceParent ) const { - Q_D(const RecursiveCollectionFilterProxyModel); + Q_D( const RecursiveCollectionFilterProxyModel ); - QModelIndex rowIndex = sourceModel()->index(sourceRow, 0, sourceParent); - Akonadi::Collection col = rowIndex.data(Akonadi::EntityTreeModel::CollectionRole).value<Akonadi::Collection>(); - if (!col.isValid()) - return false; - - if (d->includedMimeTypes.isEmpty()) - return true; + Akonadi::MimeTypeChecker checker; + checker.setWantedMimeTypes( d->includedMimeTypes.toList() ); - QSet<QString> contentMimeTypes = col.contentMimeTypes().toSet(); - - if ( contentMimeTypes.intersect(d->includedMimeTypes).isEmpty()) + const QModelIndex rowIndex = sourceModel()->index( sourceRow, 0, sourceParent ); + const Akonadi::Collection collection = rowIndex.data( Akonadi::EntityTreeModel::CollectionRole ).value<Akonadi::Collection>(); + if ( !collection.isValid() ) return false; - return true; + + return checker.isWantedCollection( collection ); } void RecursiveCollectionFilterProxyModel::addContentMimeTypeInclusionFilter(const QString& mimeType) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/akonadi/statisticsproxymodel.cpp new/kdepimlibs-4.6.4/akonadi/statisticsproxymodel.cpp --- old/kdepimlibs-4.6.3/akonadi/statisticsproxymodel.cpp 2011-02-25 18:45:07.000000000 +0100 +++ new/kdepimlibs-4.6.4/akonadi/statisticsproxymodel.cpp 2011-06-02 19:23:57.000000000 +0200 @@ -175,8 +175,9 @@ // Ugly hack. // The proper solution is a KExtraColumnsProxyModel, but this will do for now. QModelIndex parent = topLeft.parent(); - QModelIndex extraTopLeft = mParent->index( topLeft.row(), mParent->columnCount( parent ) - 1 - 3 , parent ); - QModelIndex extraBottomRight = mParent->index( bottomRight.row(), mParent->columnCount( parent ) -1, parent ); + int parentColumnCount = mParent->columnCount( parent ); + QModelIndex extraTopLeft = mParent->index( topLeft.row(), parentColumnCount - 1 - 3 , parent ); + QModelIndex extraBottomRight = mParent->index( bottomRight.row(), parentColumnCount -1, parent ); mParent->disconnect( mParent, SIGNAL( dataChanged( const QModelIndex&, const QModelIndex& ) ), mParent, SLOT( proxyDataChanged( const QModelIndex&, const QModelIndex& ) ) ); emit mParent->dataChanged( extraTopLeft, extraBottomRight ); @@ -186,9 +187,10 @@ // so that recursive totals can be updated. while ( parent.isValid() ) { - emit mParent->dataChanged( parent.sibling( parent.row(), mParent->columnCount( parent ) - 1 - 3 ), - parent.sibling( parent.row(), mParent->columnCount( parent ) - 1 ) ); + emit mParent->dataChanged( parent.sibling( parent.row(), parentColumnCount - 1 - 3 ), + parent.sibling( parent.row(), parentColumnCount - 1 ) ); parent = parent.parent(); + parentColumnCount = mParent->columnCount( parent ); } mParent->connect( mParent, SIGNAL( dataChanged( const QModelIndex&, const QModelIndex& ) ), SLOT( proxyDataChanged( const QModelIndex&, const QModelIndex& ) ) ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/akonadi/subscriptiondialog.cpp new/kdepimlibs-4.6.4/akonadi/subscriptiondialog.cpp --- old/kdepimlibs-4.6.3/akonadi/subscriptiondialog.cpp 2011-02-25 23:05:49.000000000 +0100 +++ new/kdepimlibs-4.6.4/akonadi/subscriptiondialog.cpp 2011-06-02 19:23:57.000000000 +0200 @@ -19,9 +19,10 @@ #include "subscriptiondialog_p.h" -#include "subscriptionmodel_p.h" -#include "subscriptionjob_p.h" #include "control.h" +#include "recursivecollectionfilterproxymodel.h" +#include "subscriptionjob_p.h" +#include "subscriptionmodel_p.h" #include <kdebug.h> @@ -30,16 +31,15 @@ #include <klocale.h> #ifndef KDEPIM_MOBILE_UI +#include <klineedit.h> #include <krecursivefilterproxymodel.h> -#include <recursivecollectionfilterproxymodel.h> #include <QtGui/QHeaderView> #include <QtGui/QLabel> #include <QtGui/QTreeView> -#include <klineedit.h> #else +#include "kdescendantsproxymodel_p.h" #include <QtGui/QListView> #include <QtGui/QSortFilterProxyModel> -#include "kdescendantsproxymodel_p.h" class CheckableFilterProxyModel : public QSortFilterProxyModel { @@ -154,10 +154,18 @@ d->collectionView->setModel( filterRecursiveCollectionFilter ); mainLayout->addWidget( d->collectionView ); #else + + RecursiveCollectionFilterProxyModel *filterRecursiveCollectionFilter + = new Akonadi::RecursiveCollectionFilterProxyModel( this ); + if ( !mimetype.isEmpty() ) + filterRecursiveCollectionFilter->addContentMimeTypeInclusionFilter( mimetype ); + + filterRecursiveCollectionFilter->setSourceModel( d->model ); + KDescendantsProxyModel *flatModel = new KDescendantsProxyModel( this ); flatModel->setDisplayAncestorData( true ); flatModel->setAncestorSeparator( QLatin1String( "/" ) ); - flatModel->setSourceModel( d->model ); + flatModel->setSourceModel( filterRecursiveCollectionFilter ); CheckableFilterProxyModel *checkableModel = new CheckableFilterProxyModel( this ); checkableModel->setSourceModel( flatModel ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/akonadi/tests/testattribute.h new/kdepimlibs-4.6.4/akonadi/tests/testattribute.h --- old/kdepimlibs-4.6.3/akonadi/tests/testattribute.h 2011-02-25 18:45:07.000000000 +0100 +++ new/kdepimlibs-4.6.4/akonadi/tests/testattribute.h 2011-06-02 19:23:57.000000000 +0200 @@ -26,6 +26,7 @@ class TestAttribute : public Akonadi::Attribute { public: + TestAttribute(){}; QByteArray type() const { return "EXTRA"; } QByteArray serialized() const { return data; } void deserialize( const QByteArray &ba ) { data = ba; } Files old/kdepimlibs-4.6.3/doc/kcontrol/kresources/index.cache.bz2 and new/kdepimlibs-4.6.4/doc/kcontrol/kresources/index.cache.bz2 differ Files old/kdepimlibs-4.6.3/doc/kioslave/imap/index.cache.bz2 and new/kdepimlibs-4.6.4/doc/kioslave/imap/index.cache.bz2 differ Files old/kdepimlibs-4.6.3/doc/kioslave/ldap/index.cache.bz2 and new/kdepimlibs-4.6.4/doc/kioslave/ldap/index.cache.bz2 differ Files old/kdepimlibs-4.6.3/doc/kioslave/mbox/index.cache.bz2 and new/kdepimlibs-4.6.4/doc/kioslave/mbox/index.cache.bz2 differ Files old/kdepimlibs-4.6.3/doc/kioslave/nntp/index.cache.bz2 and new/kdepimlibs-4.6.4/doc/kioslave/nntp/index.cache.bz2 differ Files old/kdepimlibs-4.6.3/doc/kioslave/pop3/index.cache.bz2 and new/kdepimlibs-4.6.4/doc/kioslave/pop3/index.cache.bz2 differ Files old/kdepimlibs-4.6.3/doc/kioslave/sieve/index.cache.bz2 and new/kdepimlibs-4.6.4/doc/kioslave/sieve/index.cache.bz2 differ Files old/kdepimlibs-4.6.3/doc/kioslave/smtp/index.cache.bz2 and new/kdepimlibs-4.6.4/doc/kioslave/smtp/index.cache.bz2 differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/gpgme++/context.cpp new/kdepimlibs-4.6.4/gpgme++/context.cpp --- old/kdepimlibs-4.6.3/gpgme++/context.cpp 2011-02-25 18:45:07.000000000 +0100 +++ new/kdepimlibs-4.6.4/gpgme++/context.cpp 2011-06-02 19:23:57.000000000 +0200 @@ -1236,6 +1236,7 @@ break; case AssuanEngine: os << "AssuanEngine"; + break; default: case UnknownEngine: os << "UnknownEngine"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/kcalutils/incidenceformatter.cpp new/kdepimlibs-4.6.4/kcalutils/incidenceformatter.cpp --- old/kdepimlibs-4.6.3/kcalutils/incidenceformatter.cpp 2011-04-28 15:15:25.000000000 +0200 +++ new/kdepimlibs-4.6.4/kcalutils/incidenceformatter.cpp 2011-06-02 19:23:57.000000000 +0200 @@ -3953,9 +3953,9 @@ Recurrence *recur = incidence->recurrence(); QString txt, recurStr; + static QString noRecurrence = i18n( "No recurrence" ); switch ( recur->recurrenceType() ) { case Recurrence::rNone: - static QString noRecurrence = i18n( "No recurrence" ); return noRecurrence; case Recurrence::rMinutely: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/kmime/kmime_header_parsing.cpp new/kdepimlibs-4.6.4/kmime/kmime_header_parsing.cpp --- old/kdepimlibs-4.6.3/kmime/kmime_header_parsing.cpp 2011-04-28 15:15:25.000000000 +0200 +++ new/kdepimlibs-4.6.4/kmime/kmime_header_parsing.cpp 2011-06-02 19:23:57.000000000 +0200 @@ -65,6 +65,8 @@ } static QChar dotChar = QLatin1Char( '.' ); + static QChar backslashChar = QLatin1Char( '\\' ); + static QChar quoteChar = QLatin1Char( '"' ); bool needsQuotes = false; QString result; @@ -75,15 +77,15 @@ result += ch; } else { needsQuotes = true; - if ( ch == QLatin1Char( '\\' ) || ch == QLatin1Char( '"' ) ) { - result += QLatin1Char( '\\' ); + if ( ch == backslashChar || ch == quoteChar ) { + result += backslashChar; } result += ch; } } const QString dom = pretty ? QUrl_fromAce_wrapper( as.domain ) : as.domain ; if ( needsQuotes ) { - result = QLatin1Char( '"' ) + result + QLatin1Char( '"' ); + result = quoteChar + result + quoteChar; } if( dom.isEmpty() ) { return result; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/kmime/kmime_headers.cpp new/kdepimlibs-4.6.4/kmime/kmime_headers.cpp --- old/kdepimlibs-4.6.3/kmime/kmime_headers.cpp 2011-04-28 15:15:25.000000000 +0200 +++ new/kdepimlibs-4.6.4/kmime/kmime_headers.cpp 2011-06-02 19:23:57.000000000 +0200 @@ -995,6 +995,7 @@ { Q_D(Ident); d->msgIdList.clear(); + d->cachedIdentifier.clear(); } bool Ident::isEmpty() const @@ -1013,6 +1014,7 @@ // msg-id := angle-addr d->msgIdList.clear(); + d->cachedIdentifier.clear(); while ( scursor != send ) { eatCFWS( scursor, send, isCRLF ); @@ -1087,14 +1089,20 @@ if ( d_func()->msgIdList.isEmpty() ) { return QByteArray(); } - const Types::AddrSpec &addr = d_func()->msgIdList.first(); - return addr.asString().toLatin1(); // FIXME change parsing to create QByteArrays + + if ( d_func()->cachedIdentifier.isEmpty() ) { + const Types::AddrSpec &addr = d_func()->msgIdList.first(); + d_func()->cachedIdentifier = addr.asString().toLatin1(); // FIXME change parsing to create QByteArrays + } + + return d_func()->cachedIdentifier; } void SingleIdent::setIdentifier( const QByteArray &id ) { Q_D(SingleIdent); d->msgIdList.clear(); + d->cachedIdentifier.clear(); appendIdentifier( id ); } @@ -1963,6 +1971,7 @@ { scursor = origscursor; d->msgIdList.clear(); + d->cachedIdentifier.clear(); while ( scursor != send ) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/kmime/kmime_headers_p.h new/kdepimlibs-4.6.4/kmime/kmime_headers_p.h --- old/kdepimlibs-4.6.3/kmime/kmime_headers_p.h 2011-02-25 23:05:49.000000000 +0100 +++ new/kdepimlibs-4.6.4/kmime/kmime_headers_p.h 2011-06-02 19:23:57.000000000 +0200 @@ -69,6 +69,7 @@ { public: QList<Types::AddrSpec> msgIdList; + mutable QByteArray cachedIdentifier; }; kmime_mk_empty_private( SingleIdent, Ident ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/kpimtextedit/textutils.cpp new/kdepimlibs-4.6.4/kpimtextedit/textutils.cpp --- old/kdepimlibs-4.6.3/kpimtextedit/textutils.cpp 2011-02-25 23:05:49.000000000 +0100 +++ new/kdepimlibs-4.6.4/kpimtextedit/textutils.cpp 2011-06-02 19:23:57.000000000 +0200 @@ -115,6 +115,9 @@ return indent + QLatin1String( "\n" ); } + if ( maxLength < indent.length() ) + maxLength = indent.length() + 1; + maxLength -= indent.length(); // take into account indent QString result; while ( !wrappedText.isEmpty() ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/mailtransport/sentactionattribute.h new/kdepimlibs-4.6.4/mailtransport/sentactionattribute.h --- old/kdepimlibs-4.6.3/mailtransport/sentactionattribute.h 2011-02-25 23:05:49.000000000 +0100 +++ new/kdepimlibs-4.6.4/mailtransport/sentactionattribute.h 2011-06-02 19:23:57.000000000 +0200 @@ -46,7 +46,7 @@ /** * @short A sent action. */ - class Action + class MAILTRANSPORT_EXPORT Action { public: /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/mailtransport/tests/testattribute.h new/kdepimlibs-4.6.4/mailtransport/tests/testattribute.h --- old/kdepimlibs-4.6.3/mailtransport/tests/testattribute.h 2011-02-25 18:45:07.000000000 +0100 +++ new/kdepimlibs-4.6.4/mailtransport/tests/testattribute.h 2011-06-02 19:23:57.000000000 +0200 @@ -26,6 +26,7 @@ class TestAttribute : public Akonadi::Attribute { public: + TestAttribute(){}; QByteArray type() const { return "EXTRA"; } QByteArray serialized() const { return data; } void deserialize( const QByteArray &ba ) { data = ba; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/mailtransport/transport.cpp new/kdepimlibs-4.6.4/mailtransport/transport.cpp --- old/kdepimlibs-4.6.3/mailtransport/transport.cpp 2011-02-25 23:05:49.000000000 +0100 +++ new/kdepimlibs-4.6.4/mailtransport/transport.cpp 2011-06-02 19:23:57.000000000 +0200 @@ -18,6 +18,7 @@ */ #include "transport.h" +#include "transport_p.h" #include "legacydecrypt.h" #include "mailtransport_defs.h" #include "transportmanager.h" @@ -38,22 +39,6 @@ using namespace MailTransport; using namespace KWallet; -/** - * Private class that helps to provide binary compatibility between releases. - * @internal - */ -class TransportPrivate -{ - public: - TransportType transportType; - QString password; - bool passwordLoaded; - bool passwordDirty; - bool storePasswordInFile; - bool needsWalletMigration; - QString oldName; -}; - Transport::Transport( const QString &cfgGroup ) : TransportBase( cfgGroup ), d( new TransportPrivate ) { @@ -62,6 +47,7 @@ d->passwordDirty = false; d->storePasswordInFile = false; d->needsWalletMigration = false; + d->passwordNeedsUpdateFromWallet = false; readConfig(); } @@ -201,7 +187,25 @@ } // we have everything we need - if ( !storePassword() || d->passwordLoaded ) { + if ( !storePassword() ) { + return; + } + + if ( d->passwordLoaded ) { + if ( d->passwordNeedsUpdateFromWallet ) { + d->passwordNeedsUpdateFromWallet = false; + // read password if wallet is open, defer otherwise + if ( Wallet::isOpen( Wallet::NetworkWallet() ) ) { + // Don't read the password right away because this can lead + // to reentrancy problems in KDBusServiceStarter when an application + // run in Kontact creates the transports (due to a QEventLoop in the + // synchronous KWallet openWallet call). + QTimer::singleShot( 0, this, SLOT(readPassword()) ); + } else { + d->passwordLoaded = false; + } + } + return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/mailtransport/transport_p.h new/kdepimlibs-4.6.4/mailtransport/transport_p.h --- old/kdepimlibs-4.6.3/mailtransport/transport_p.h 1970-01-01 01:00:00.000000000 +0100 +++ new/kdepimlibs-4.6.4/mailtransport/transport_p.h 2011-06-02 19:23:57.000000000 +0200 @@ -0,0 +1,42 @@ +/* + Copyright (c) 2006 - 2007 Volker Krause <vkra...@kde.org> + + 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 MAILTRANSPORT_TRANSPORT_P_H +#define MAILTRANSPORT_TRANSPORT_P_H + +#include "transporttype.h" + +/** + * Private class that helps to provide binary compatibility between releases. + * @internal + */ +class TransportPrivate +{ + public: + MailTransport::TransportType transportType; + QString password; + bool passwordLoaded; + bool passwordDirty; + bool storePasswordInFile; + bool needsWalletMigration; + QString oldName; + bool passwordNeedsUpdateFromWallet; +}; + +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.6.3/mailtransport/transportmanager.cpp new/kdepimlibs-4.6.4/mailtransport/transportmanager.cpp --- old/kdepimlibs-4.6.3/mailtransport/transportmanager.cpp 2011-02-25 23:05:49.000000000 +0100 +++ new/kdepimlibs-4.6.4/mailtransport/transportmanager.cpp 2011-06-02 19:23:57.000000000 +0200 @@ -23,6 +23,7 @@ #include "sendmailjob.h" #include "smtpjob.h" #include "transport.h" +#include "transport_p.h" #include "transportjob.h" #include "transporttype.h" #include "transporttype_p.h" @@ -449,6 +450,7 @@ if ( old->currentGroup() == QLatin1String( "Transport " ) + re.cap( 1 ) ) { kDebug() << "reloading existing transport:" << s; t = old; + t->d->passwordNeedsUpdateFromWallet = true; t->readConfig(); oldTransports.removeAll( old ); break; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org