From kde-commits Tue Sep 26 12:32:31 2006 From: Tobias Koenig Date: Tue, 26 Sep 2006 12:32:31 +0000 To: kde-commits Subject: KDE/kdepim/akonadi/libakonadi Message-Id: <1159273951.944524.30445.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=115927399800192 SVN commit 588589 by tokoe: Add support for viewing assigned agents M +35 -1 profilemodel.cpp M +2 -0 profilemodel.h --- trunk/KDE/kdepim/akonadi/libakonadi/profilemodel.cpp #588588:588589 @@ -28,6 +28,7 @@ { public: QString identifier; + QStringList agents; }; class ProfileModel::Private @@ -44,6 +45,8 @@ void profileAdded( const QString &profile ); void profileRemoved( const QString &profile ); + void profileAgentAdded( const QString &profile, const QString &agent ); + void profileAgentRemoved( const QString &profile, const QString &agent ); void addProfile( const QString &profile ); }; @@ -52,6 +55,7 @@ { ProfileInfo info; info.identifier = profile; + info.agents = mManager.profileAgents( profile ); mInfos.append( info ); } @@ -75,6 +79,32 @@ emit mParent->layoutChanged(); } +void ProfileModel::Private::profileAgentAdded( const QString &profile, const QString &agent ) +{ + for ( int i = 0; i < mInfos.count(); ++i ) { + if ( mInfos[ i ].identifier == profile ) { + mInfos[ i ].agents.append( agent ); + + const QModelIndex index = mParent->index( i, 0 ); + emit mParent->dataChanged( index, index ); + break; + } + } +} + +void ProfileModel::Private::profileAgentRemoved( const QString &profile, const QString &agent ) +{ + for ( int i = 0; i < mInfos.count(); ++i ) { + if ( mInfos[ i ].identifier == profile ) { + mInfos[ i ].agents.removeAll( agent ); + + const QModelIndex index = mParent->index( i, 0 ); + emit mParent->dataChanged( index, index ); + break; + } + } +} + ProfileModel::ProfileModel( QObject *parent ) : QAbstractItemModel( parent ), d( new Private( this ) ) { @@ -86,6 +116,10 @@ this, SLOT( profileAdded( const QString& ) ) ); connect( &d->mManager, SIGNAL( profileRemoved( const QString& ) ), this, SLOT( profileRemoved( const QString& ) ) ); + connect( &d->mManager, SIGNAL( profileAgentAdded( const QString&, const QString& ) ), + this, SLOT( profileAgentAdded( const QString&, const QString& ) ) ); + connect( &d->mManager, SIGNAL( profileAgentRemoved( const QString&, const QString& ) ), + this, SLOT( profileAgentRemoved( const QString&, const QString& ) ) ); } ProfileModel::~ProfileModel() @@ -115,7 +149,7 @@ switch ( role ) { case Qt::DisplayRole: - return info.identifier; + return QString( "%1 (%2)" ).arg( info.identifier, info.agents.join( ", " ) ); break; case Qt::UserRole: return info.identifier; --- trunk/KDE/kdepim/akonadi/libakonadi/profilemodel.h #588588:588589 @@ -46,6 +46,8 @@ Q_PRIVATE_SLOT( d, void profileAdded( const QString& ) ) Q_PRIVATE_SLOT( d, void profileRemoved( const QString& ) ) + Q_PRIVATE_SLOT( d, void profileAgentAdded( const QString&, const QString& ) ) + Q_PRIVATE_SLOT( d, void profileAgentRemoved( const QString&, const QString& ) ) }; }