Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.1:Update
kdepimlibs4
4_7_BRANCH.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 4_7_BRANCH.diff of Package kdepimlibs4
--- a/BRANCH_STATUS +++ b/BRANCH_STATUS @@ -0,0 +1,2 @@ +current HEAD: 231a3ccc536c23bd6c1e3dc8198842c457a6c17a +git diff v4.7.2..origin/KDE/4.7 diff --git a/akonadi/agentbase.cpp b/akonadi/agentbase.cpp index ec28648..4f72ed5 100644 --- a/akonadi/agentbase.cpp +++ b/akonadi/agentbase.cpp @@ -42,6 +42,8 @@ #include <klocale.h> #include <kstandarddirs.h> +#include <Solid/PowerManagement> + #include <QtCore/QDir> #include <QtCore/QSettings> #include <QtCore/QTimer> @@ -259,6 +261,8 @@ void AgentBasePrivate::init() connect( q, SIGNAL( warning( const QString& ) ), q, SLOT( slotWarning( const QString& ) ) ); connect( q, SIGNAL( error( const QString& ) ), q, SLOT( slotError( const QString& ) ) ); + connect( Solid::PowerManagement::notifier(), SIGNAL(resumingFromSuspend()), q, SLOT(slotResumedFromSuspend()) ); + // Use reference counting to allow agents to finish internal jobs when the // agent is stopped. KGlobal::ref(); @@ -492,6 +496,12 @@ void AgentBasePrivate::slotNetworkStatusChange( Solid::Networking::Status stat ) q->setOnline( stat == Solid::Networking::Unknown || stat == Solid::Networking::Connected ); } +void AgentBasePrivate::slotResumedFromSuspend() +{ + if ( mNeedsNetwork ) + slotNetworkStatusChange( Solid::Networking::status() ); +} + AgentBase::AgentBase( const QString & id ) : d_ptr( new AgentBasePrivate( this ) ) { diff --git a/akonadi/agentbase.h b/akonadi/agentbase.h index de1d838..e895516 100644 --- a/akonadi/agentbase.h +++ b/akonadi/agentbase.h @@ -630,6 +630,7 @@ class AKONADI_EXPORT AgentBase : public QObject, protected QDBusContext Q_PRIVATE_SLOT( d_func(), void slotWarning( const QString& ) ) Q_PRIVATE_SLOT( d_func(), void slotError( const QString& ) ) Q_PRIVATE_SLOT( d_func(), void slotNetworkStatusChange( Solid::Networking::Status ) ) + Q_PRIVATE_SLOT( d_func(), void slotResumedFromSuspend() ) //@endcond }; diff --git a/akonadi/agentbase_p.h b/akonadi/agentbase_p.h index 2d8c733..34e3288 100644 --- a/akonadi/agentbase_p.h +++ b/akonadi/agentbase_p.h @@ -49,6 +49,7 @@ class AgentBasePrivate : public QObject void slotWarning( const QString& message ); void slotError( const QString& message ); void slotNetworkStatusChange( Solid::Networking::Status ); + void slotResumedFromSuspend(); virtual void changeProcessed(); diff --git a/akonadi/collectionstatisticsdelegate.cpp b/akonadi/collectionstatisticsdelegate.cpp index e87b2b6..48a5d46 100644 --- a/akonadi/collectionstatisticsdelegate.cpp +++ b/akonadi/collectionstatisticsdelegate.cpp @@ -298,8 +298,7 @@ void CollectionStatisticsDelegate::paint( QPainter *painter, // is collapsed if ( ( index.column() == 1 || index.column() == 2 ) ) { - PainterStateSaver stateSaver( painter ); - + QFont savedFont = painter->font(); QString sumText; if ( index.column() == 1 && ( ( !expanded && unreadRecursiveCount > 0 ) || ( expanded && unreadCount > 0 ) ) ) { QFont font = painter->font(); @@ -315,7 +314,7 @@ void CollectionStatisticsDelegate::paint( QPainter *painter, } painter->drawText( textRect, Qt::AlignRight | Qt::AlignVCenter, sumText ); - + painter->setFont( savedFont ); return; } diff --git a/akonadi/contact/contactviewer.cpp b/akonadi/contact/contactviewer.cpp index 58e1598..137e9d2 100644 --- a/akonadi/contact/contactviewer.cpp +++ b/akonadi/contact/contactviewer.cpp @@ -34,6 +34,7 @@ #include <akonadi/itemfetchscope.h> #include <kabc/addressee.h> #include <kcolorscheme.h> +#include <kconfiggroup.h> #include <kglobal.h> #include <kicon.h> #include <klocale.h> @@ -93,20 +94,22 @@ class ContactViewer::Private KIcon( QLatin1String( "document-open-remote" ) ).pixmap( QSize( 16, 16 ) ) ); #ifdef HAVE_PRISON - { - KABC::VCardConverter converter; - KABC::Addressee addr(mCurrentContact); - addr.setPhoto(KABC::Picture()); - addr.setLogo(KABC::Picture()); - const QString data = QString::fromUtf8( converter.createVCard( addr ) ); - mQRCode->setData( data ); - mDataMatrix->setData( data ); - mBrowser->document()->addResource( QTextDocument::ImageResource, - QUrl( QLatin1String( "qrcode" ) ), - mQRCode->toImage( QSizeF(50,50) ) ); - mBrowser->document()->addResource( QTextDocument::ImageResource, + KConfig config( QLatin1String( "akonadi_contactrc" ) ); + KConfigGroup group( &config, QLatin1String( "View" ) ); + if ( group.readEntry( "QRCodes", true ) ) { + KABC::VCardConverter converter; + KABC::Addressee addr(mCurrentContact); + addr.setPhoto(KABC::Picture()); + addr.setLogo(KABC::Picture()); + const QString data = QString::fromUtf8( converter.createVCard( addr ) ); + mQRCode->setData( data ); + mDataMatrix->setData( data ); + mBrowser->document()->addResource( QTextDocument::ImageResource, + QUrl( QLatin1String( "qrcode" ) ), + mQRCode->toImage( QSizeF(50,50) ) ); + mBrowser->document()->addResource( QTextDocument::ImageResource, QUrl( QLatin1String( "datamatrix" ) ), - mDataMatrix->toImage( QSizeF(50,50) ) ); + mDataMatrix->toImage( QSizeF(50,50) ) ); } #endif // HAVE_PRISON diff --git a/akonadi/contact/standardcontactformatter.cpp b/akonadi/contact/standardcontactformatter.cpp index b649488..65111de 100644 --- a/akonadi/contact/standardcontactformatter.cpp +++ b/akonadi/contact/standardcontactformatter.cpp @@ -24,6 +24,7 @@ #include <akonadi/item.h> #include <kabc/addressee.h> #include <kcolorscheme.h> +#include <kconfiggroup.h> #include <kglobal.h> #include <klocale.h> #include <kstringhandler.h> @@ -263,14 +264,18 @@ QString StandardContactFormatter::toHtml( HtmlForm form ) const strAddr.append( QString::fromLatin1( "</table>" ) ); #ifdef HAVE_PRISON - strAddr.append( QString::fromLatin1( - "<p align=\"center\">" - "<img src=\"%1\" vspace=\"1\">" - "<img src=\"%2\" vspace=\"1\">" - "</p>" - ) + KConfig config( QLatin1String( "akonadi_contactrc" ) ); + KConfigGroup group( &config, QLatin1String( "View" ) ); + if ( group.readEntry( "QRCodes", true ) ) { + strAddr.append( QString::fromLatin1( + "<p align=\"center\">" + "<img src=\"%1\" vspace=\"1\">" + "<img src=\"%2\" vspace=\"1\">" + "</p>" + ) .arg( QLatin1String( "datamatrix" ) ) .arg( QLatin1String( "qrcode" ) ) ); + } #endif // HAVE_PRISON strAddr.append( QString::fromLatin1( "</div>\n" ) ); diff --git a/akonadi/entitytreemodel_p.cpp b/akonadi/entitytreemodel_p.cpp index 1fbdf73..fe10617 100644 --- a/akonadi/entitytreemodel_p.cpp +++ b/akonadi/entitytreemodel_p.cpp @@ -261,6 +261,8 @@ void EntityTreeModelPrivate::agentInstanceAdvancedStatusChanged( const QString&, const Collection::Id collectionId = status.value( QLatin1String( "collectionId" ) ).toLongLong(); const uint percent = status.value( QLatin1String( "percent" ) ).toUInt(); + if ( m_collectionSyncProgress.value( collectionId ) == percent ) + return; m_collectionSyncProgress.insert( collectionId, percent ); const QModelIndex collectionIndex = indexForCollection( Collection( collectionId ) ); @@ -268,6 +270,8 @@ void EntityTreeModelPrivate::agentInstanceAdvancedStatusChanged( const QString&, return; Q_Q( EntityTreeModel ); + // This is really slow (80 levels of method calls in proxy models...), and called + // very often during an imap sync... q->dataChanged( collectionIndex, collectionIndex ); } diff --git a/akonadi/favoritecollectionsmodel.cpp b/akonadi/favoritecollectionsmodel.cpp index 92f9449..7ad6364 100644 --- a/akonadi/favoritecollectionsmodel.cpp +++ b/akonadi/favoritecollectionsmodel.cpp @@ -74,15 +74,18 @@ class FavoriteCollectionsModel::Private updateSelection(); } + void updateSelectionId( const Collection::Id &collectionId ) + { + const QModelIndex index = EntityTreeModel::modelIndexForCollection( q->sourceModel(), Collection( collectionId ) ); + + if ( index.isValid() ) + q->selectionModel()->select( index, QItemSelectionModel::Select ); + } + void updateSelection() { foreach ( const Collection::Id &collectionId, collectionIds ) { - const QModelIndex index = EntityTreeModel::modelIndexForCollection( q->sourceModel(), Collection( collectionId ) ); - - if ( !index.isValid() ) - continue; - - q->selectionModel()->select( index, QItemSelectionModel::Select ); + updateSelectionId( collectionId ); } } @@ -125,11 +128,9 @@ FavoriteCollectionsModel::FavoriteCollectionsModel( QAbstractItemModel *source, setSourceModel( source ); setFilterBehavior( ExactSelection ); - connect( source, SIGNAL( modelReset() ), this, SLOT( clearAndUpdateSelection() ) ); - connect( source, SIGNAL( rowsInserted( const QModelIndex&, int, int ) ), this, SLOT( updateSelection() ) ); - d->loadConfig(); - d->clearAndUpdateSelection(); + connect( source, SIGNAL(modelReset()), this, SLOT(clearAndUpdateSelection()) ); + connect( source, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(updateSelection()) ); } FavoriteCollectionsModel::~FavoriteCollectionsModel() @@ -151,7 +152,7 @@ void FavoriteCollectionsModel::setCollections( const Collection::List &collectio void FavoriteCollectionsModel::addCollection( const Collection &collection ) { d->collectionIds << collection.id(); - d->updateSelection(); + d->updateSelectionId(collection.id()); d->saveConfig(); } diff --git a/akonadi/transactionsequence.cpp b/akonadi/transactionsequence.cpp index e7c8d53..00aed07 100644 --- a/akonadi/transactionsequence.cpp +++ b/akonadi/transactionsequence.cpp @@ -87,8 +87,10 @@ bool TransactionSequence::addSubjob(KJob * job) // TODO KDE5: remove property hack once SpecialCollectionsRequestJob has been fixed if ( d->mState == TransactionSequencePrivate::Idle && !property( "transactionsDisabled" ).toBool() ) { - d->mState = TransactionSequencePrivate::Running; + d->mState = TransactionSequencePrivate::Running; // needs to be set before creating the transaction job to avoid infinite recursion new TransactionBeginJob( this ); + } else { + d->mState = TransactionSequencePrivate::Running; } return Job::addSubjob( job ); } @@ -107,6 +109,10 @@ void TransactionSequence::slotResult(KJob * job) Job::removeSubjob( job ); if ( !hasSubjobs() && d->mState == TransactionSequencePrivate::WaitingForSubjobs ) { + if ( property( "transactionsDisabled" ).toBool() ) { + emitResult(); + return; + } d->mState = TransactionSequencePrivate::Committing; TransactionCommitJob *job = new TransactionCommitJob( this ); connect( job, SIGNAL( result( KJob* ) ), SLOT( commitResult( KJob* ) ) ); @@ -124,6 +130,10 @@ void TransactionSequence::slotResult(KJob * job) clearSubjobs(); if ( d->mState == TransactionSequencePrivate::Running || d->mState == TransactionSequencePrivate::WaitingForSubjobs ) { + if ( property( "transactionsDisabled" ).toBool() ) { + emitResult(); + return; + } d->mState = TransactionSequencePrivate::RollingBack; TransactionRollbackJob *job = new TransactionRollbackJob( this ); connect( job, SIGNAL( result( KJob* ) ), SLOT( rollbackResult( KJob* ) ) ); @@ -149,6 +159,10 @@ void TransactionSequence::commit() } if ( subjobs().isEmpty() ) { + if ( property( "transactionsDisabled" ).toBool() ) { + emitResult(); + return; + } if ( !error() ) { d->mState = TransactionSequencePrivate::Committing; TransactionCommitJob *job = new TransactionCommitJob( this ); diff --git a/akonadi/typepluginloader.cpp b/akonadi/typepluginloader.cpp index 8dcb337..a80ca98 100644 --- a/akonadi/typepluginloader.cpp +++ b/akonadi/typepluginloader.cpp @@ -240,12 +240,15 @@ class PluginRegistry QRegExp rx( QLatin1String( "(.+)@(.+)" ) ); Q_FOREACH ( const QString & name, names ) if ( rx.exactMatch( name ) ) { - const QString mimeType = rx.cap(1); - const QByteArray classType = rx.cap(2).toLatin1(); - QMap<QString,MimeTypeEntry>::iterator it = map.find( mimeType ); - if ( it == map.end() ) - it = map.insert( mimeType, MimeTypeEntry( mimeType ) ); - it->add( classType, PluginEntry( name ) ); + KMimeType::Ptr mime = KMimeType::mimeType( rx.cap(1), KMimeType::ResolveAliases ); + if ( mime ) { + const QString mimeType = mime->name(); + const QByteArray classType = rx.cap(2).toLatin1(); + QMap<QString,MimeTypeEntry>::iterator it = map.find( mimeType ); + if ( it == map.end() ) + it = map.insert( mimeType, MimeTypeEntry( mimeType ) ); + it->add( classType, PluginEntry( name ) ); + } } else { kDebug() << "ItemSerializerPluginLoader: " << "name" << name << "doesn't look like mimetype@classtype" << endl; diff --git a/kabc/plugins/ldapkio/ldapkio.desktop b/kabc/plugins/ldapkio/ldapkio.desktop index 2d68ceb..7a4bfc2 100644 --- a/kabc/plugins/ldapkio/ldapkio.desktop +++ b/kabc/plugins/ldapkio/ldapkio.desktop @@ -72,7 +72,7 @@ Comment[it]=Fornisce accesso a contatti memorizzati su un server LDAP Comment[ja]=LDAP ディレクトリサーバに保存されている連絡先へのアクセスを提供します。 Comment[kk]=LDAP каталог серверінде сақталған контакттарға қатынау мүмкіндігін береді. Comment[km]=ផ្ដល់ការចូលដំណើរការទៅទំនាក់ទំនងដែលបានផ្ទុកនៅលើម៉ាស៊ីនបម្រើថត LDAP -Comment[lt]=Suteikia prieigą prie kontaktų, saugomų LDAP serveryje +Comment[lt]=Suteikia prieigą prie kontaktų, saugomų LDAP aplankų serveryje Comment[lv]=Nodrošina piekļuvi kontaktiem, kas glabājas LDAP direktorija serverī Comment[nb]=Gir tilgang til kontakter lagret på en LDAP-katalogtjener Comment[nds]=Stellt Togriep op Kontakten praat, de op en LDAP-Vertelenserver wohrt warrt diff --git a/mailtransport/sendmailconfigwidget.cpp b/mailtransport/sendmailconfigwidget.cpp index 241f4f3..07f9beb 100644 --- a/mailtransport/sendmailconfigwidget.cpp +++ b/mailtransport/sendmailconfigwidget.cpp @@ -58,6 +58,7 @@ void SendmailConfigWidget::init() d->ui.setupUi( this ); d->ui.kcfg_host->setMode( KFile::File|KFile::ExistingOnly|KFile::LocalOnly ); + d->ui.kcfg_host->setFocus(); d->manager->addWidget( this ); // otherwise it doesn't find out about these widgets d->manager->updateWidgets(); /space/work/OBS/kdf/kdepimlibs4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor