akonadi
20 #include "agenttypemodel.h"
21 #include "agenttype.h"
22 #include "agentmanager.h"
24 #include <QtCore/QStringList>
27 using namespace Akonadi;
32 class AgentTypeModel::Private
44 void typeAdded(
const AgentType &agentType );
45 void typeRemoved(
const AgentType &agentType );
48 void AgentTypeModel::Private::typeAdded(
const AgentType &agentType )
50 mTypes.append( agentType );
52 emit mParent->layoutChanged();
55 void AgentTypeModel::Private::typeRemoved(
const AgentType &agentType )
57 mTypes.removeAll( agentType );
59 emit mParent->layoutChanged();
63 : QAbstractItemModel( parent ), d( new Private( this ) )
76 int AgentTypeModel::columnCount(
const QModelIndex& )
const
81 int AgentTypeModel::rowCount(
const QModelIndex& )
const
83 return d->mTypes.count();
86 QVariant AgentTypeModel::data(
const QModelIndex &index,
int role )
const
88 if ( !index.isValid() ) {
92 if ( index.row() < 0 || index.row() >= d->mTypes.count() ) {
96 const AgentType &type = d->mTypes[ index.row() ];
102 case Qt::DecorationRole:
108 var.setValue( type );
130 QModelIndex AgentTypeModel::index(
int row,
int column,
const QModelIndex& )
const
132 if ( row < 0 || row >= d->mTypes.count() ) {
133 return QModelIndex();
137 return QModelIndex();
140 return createIndex( row, column, 0 );
143 QModelIndex AgentTypeModel::parent(
const QModelIndex& )
const
145 return QModelIndex();
148 Qt::ItemFlags AgentTypeModel::flags(
const QModelIndex& index)
const
150 if ( !index.isValid() || index.row() < 0 || index.row() >= d->mTypes.count() ) {
151 return QAbstractItemModel::flags( index );
154 const AgentType &type = d->mTypes[ index.row() ];
155 if ( type.
capabilities().contains( QLatin1String(
"Unique" ) ) &&
157 return QAbstractItemModel::flags( index ) & ~( Qt::ItemIsSelectable | Qt::ItemIsEnabled );
159 return QAbstractItemModel::flags( index );
162 #include "moc_agenttypemodel.cpp"
This file is part of the KDE documentation.
Documentation copyright © 1996-2013 The KDE developers.
Generated on Sat Jul 13 2013 01:27:31 by
doxygen 1.8.3.1 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.