1 #include "SubTreeProxyModel.h"     3 #include <QAbstractItemModel>     4 #include <QIdentityProxyModel>     7 #include <QPersistentModelIndex>     8 #include <QSortFilterProxyModel>     9 #include <QStandardItem>    36   QModelIndex SubTreeProxyModel::mapFromSource(
const QModelIndex &sourceIndex)
 const {
    39             static_cast<QStandardItemModel *>(sourceModel())->invisibleRootItem()->index()) {
    40       qDebug() << 
"creating index for invisible root item "    42       return createIndex(sourceIndex.row(), 0, sourceIndex.internalId());
    46     if (sourceIndex == m_root) {
    47       return createIndex(sourceIndex.row(), 0, sourceIndex.internalId());
    51     QModelIndex ancestorIndex = sourceIndex.parent();
    52     while (ancestorIndex.isValid() && ancestorIndex != m_root) {
    53       ancestorIndex = ancestorIndex.parent();
    55     if (ancestorIndex.isValid()) {
    56       return createIndex(sourceIndex.row(), 0, sourceIndex.internalId());
    66   QModelIndex SubTreeProxyModel::mapToSource(
const QModelIndex &proxyIndex)
 const {
    67     return QIdentityProxyModel::mapToSource(proxyIndex);
    71   void SubTreeProxyModel::setSourceModel(QAbstractItemModel *newSourceModel) {
    72     QPersistentModelIndex persistentIndex(newSourceModel->index(0,0,QModelIndex()));
    74     if (persistentIndex.isValid()) {
    75       m_root = persistentIndex;
    78       m_root = QPersistentModelIndex(QModelIndex());
    81     QIdentityProxyModel::setSourceModel(newSourceModel);
    86     QAbstractItemModel::removeRows(1,2,item->index());
    88     if (m_root.isValid()) {
 
SubTreeProxyModel(QObject *parent=0)
Constructs a SubTreeProxyModel. 
 
Unless noted otherwise, the portions of Isis written by the USGS are public domain. 
 
Namespace for ISIS/Bullet specific routines.