KDescendantsProxyModel Class Reference

Proxy Model for restructuring a Tree into a list. More...

#include <kdescendantsproxymodel_p.h>

Inherits QAbstractProxyModel.

List of all members.

Public Member Functions

 KDescendantsProxyModel (QObject *parent=0)
virtual ~KDescendantsProxyModel ()
QString ancestorSeparator () const
virtual int columnCount (const QModelIndex &index=QModelIndex()) const
QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const
int descendantCount (const QModelIndex &index) const
bool displayAncestorData () const
virtual Qt::ItemFlags flags (const QModelIndex &index) const
virtual bool hasChildren (const QModelIndex &parent=QModelIndex()) const
virtual QModelIndex index (int, int, const QModelIndex &parent=QModelIndex()) const
QModelIndex mapFromSource (const QModelIndex &sourceIndex) const
QModelIndex mapToSource (const QModelIndex &proxyIndex) const
virtual QModelIndexList match (const QModelIndex &start, int role, const QVariant &value, int hits=1, Qt::MatchFlags flags=Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const
virtual QMimeData * mimeData (const QModelIndexList &indexes) const
virtual QStringList mimeTypes () const
virtual QModelIndex parent (const QModelIndex &) const
virtual int rowCount (const QModelIndex &parent=QModelIndex()) const
void setAncestorSeparator (const QString &separator)
void setDisplayAncestorData (bool display)
void setRootIndex (const QModelIndex &index)
virtual void setSourceModel (QAbstractItemModel *model)
virtual Qt::DropActions supportedDropActions () const

Detailed Description

Proxy Model for restructuring a Tree into a list.

A KDescendantsProxyModel may be used to alter how the items in the tree are presented.

Given a model which is represented as a tree:

entitytreemodel.png

A plain EntityTreeModel in a view

The KDescendantsProxyModel restructures the sourceModel to represent it as a flat list.

// ... Create an entityTreeModel
KDescendantsProxyModel *descProxy = new KDescendantsProxyModel(this);
descProxy->setSourceModel(entityTree);
view->setModel(descProxy);
descendantentitiesproxymodel.png

A KDescendantsProxyModel.

KDescendantEntitiesProxyModel can also display the ancestors of the index in the source model as part of its display.

// ... Create an entityTreeModel
KDescendantsProxyModel *descProxy = new KDescendantesProxyModel(this);
descProxy->setSourceModel(entityTree);

// #### This is new
descProxy->setDisplayAncestorData(true, QString(" / "));

view->setModel(descProxy);
descendantentitiesproxymodel-withansecnames.png

A KDescendantsProxyModel with ancestor names.

Since:
4.4
Author:
Stephen Kelly <steveire@gmail.com>

Definition at line 67 of file kdescendantsproxymodel_p.h.


Constructor & Destructor Documentation

KDescendantsProxyModel::KDescendantsProxyModel ( QObject *  parent = 0  )  [explicit]

Creates a new descendant entities proxy model.

Parameters:
parent The parent object.

Definition at line 173 of file kdescendantsproxymodel.cpp.

KDescendantsProxyModel::~KDescendantsProxyModel (  )  [virtual]

Destroys the descendant entities proxy model.

Definition at line 194 of file kdescendantsproxymodel.cpp.


Member Function Documentation

QString KDescendantsProxyModel::ancestorSeparator (  )  const

Separator used between data of ancestors.

Definition at line 769 of file kdescendantsproxymodel.cpp.

int KDescendantsProxyModel::descendantCount ( const QModelIndex &  index  )  const

Returns the number of descendant entries for the given model index.

bool KDescendantsProxyModel::displayAncestorData (  )  const

Whether ancestor data will be displayed.

Definition at line 757 of file kdescendantsproxymodel.cpp.

QModelIndexList KDescendantsProxyModel::match ( const QModelIndex &  start,
int  role,
const QVariant &  value,
int  hits = 1,
Qt::MatchFlags  flags = Qt::MatchFlags( Qt::MatchStartsWith | Qt::MatchWrap ) 
) const [virtual]

Reimplemented to match all descendants.

Definition at line 820 of file kdescendantsproxymodel.cpp.

void KDescendantsProxyModel::setAncestorSeparator ( const QString &  separator  ) 

Sets the ancestor separator used between data of ancestors.

Definition at line 763 of file kdescendantsproxymodel.cpp.

void KDescendantsProxyModel::setDisplayAncestorData ( bool  display  ) 

Set whether to show ancestor data in the model.

If display is true, then a source model which is displayed as

  -> "Item 0-0" (this is row-depth)
  -> -> "Item 0-1"
  -> -> "Item 1-1"
  -> -> -> "Item 0-2"
  -> -> -> "Item 1-2"
  -> "Item 1-0"

will be displayed as

  -> *Item 0-0"
  -> "Item 0-0 / Item 0-1"
  -> "Item 0-0 / Item 1-1"
  -> "Item 0-0 / Item 1-1 / Item 0-2"
  -> "Item 0-0 / Item 1-1 / Item 1-2"
  -> "Item 1-0"

If display is false, the proxy will show

  -> *Item 0-0"
  -> "Item 0-1"
  -> "Item 1-1"
  -> "Item 0-2"
  -> "Item 1-2"
  -> "Item 1-0"

Default is false.

Definition at line 751 of file kdescendantsproxymodel.cpp.

void KDescendantsProxyModel::setRootIndex ( const QModelIndex &  index  ) 

Sets the root index to index.

This is the root of the proxy model.

Parameters:
index The root index in the *source* model which will be shown in this model. If the index is invalid, the model is empty.
Note:
You must set the model before setting the root index.

Definition at line 182 of file kdescendantsproxymodel.cpp.

void KDescendantsProxyModel::setSourceModel ( QAbstractItemModel *  model  )  [virtual]

Sets the source model of the proxy.

Definition at line 228 of file kdescendantsproxymodel.cpp.


The documentation for this class was generated from the following files:
KDE Home | KDE Accessibility Home | Description of Access Keys