Example #1
0
WSortFilterProxyModel::Item *
WSortFilterProxyModel::itemFromIndex(const WModelIndex& index) const
{
  if (index.isValid()) {
    Item *parentItem = parentItemFromIndex(index);

    WModelIndex sourceIndex
      = sourceModel()->index(parentItem->proxyRowMap_[index.row()],
			     index.column(), parentItem->sourceIndex_);
    return itemFromSourceIndex(sourceIndex);
  } else
    return itemFromSourceIndex(WModelIndex());
}
Example #2
0
bool QgsComposerProxyModel::lessThan( const QModelIndex &left, const QModelIndex &right ) const
{
  //sort by item id
  const QgsComposerItem *item1 = itemFromSourceIndex( left );
  const QgsComposerItem *item2 = itemFromSourceIndex( right );
  if ( !item1 )
    return false;

  if ( !item2 )
    return true;

  return QString::localeAwareCompare( item1->displayName(), item2->displayName() ) < 0;
}
Example #3
0
WModelIndex WSortFilterProxyModel::mapFromSource(const WModelIndex& sourceIndex)
  const
{
  if (sourceIndex.isValid()) {
    WModelIndex sourceParent = sourceIndex.parent();

    Item *item = itemFromSourceIndex(sourceParent);

    int row = item->sourceRowMap_[sourceIndex.row()];
    if (row != -1)
      return createIndex(row, sourceIndex.column(),
			 static_cast<void *>(item));
    else
      return WModelIndex();
  } else
    return WModelIndex();
}
Example #4
0
bool QgsComposerProxyModel::filterAcceptsRow( int source_row, const QModelIndex &source_parent ) const
{
  //get QgsComposerItem corresponding to row
  QModelIndex index = sourceModel()->index( source_row, 0, source_parent );
  QgsComposerItem *item = itemFromSourceIndex( index );

  if ( !item )
    return false;

  // specific exceptions
  if ( mExceptedList.contains( item ) )
    return false;

  // filter by type
  if ( mItemTypeFilter != QgsComposerItem::ComposerItem && item->type() != mItemTypeFilter )
    return false;

  return true;
}