PropInspectProxyModel::PropInspectProxyModel( const DCID& dcid,
const CID& cid,
, m_dcid( dcid )
, m_cid( cid )
, m_nNumProps( 10 )//TODO: make this a parameter
{
// Set this property to true to have the proxy model re-filter whenever
// the contents of the source model change.
setDynamicSortFilter( true );
//TODO: why doesn't setting the headers here work? No headers appear at all!
setHeaderData
( 0, Qt
::Horizontal,
QVariant( "Property" ), Qt
::DisplayRole );
setHeaderData
( 1, Qt
::Horizontal,
QVariant( "Value" ), Qt
::DisplayRole );
m_dcidCol = global.worldModelHelper->findFirstDCIDCol( m_dcid );
m_nMaxColIdx = m_dcidCol + m_nNumProps;
}
QModelIndex PropInspectProxyModel
::mapToSource( const QModelIndex
& proxyIndex
) const {
return sourceModel()->index( proxyIndex.column(), proxyIndex.row() );
}
bool PropInspectProxyModel::filterAcceptsRow( int source_row,
const QModelIndex& source_parent ) const
{
if ( pStdItem != NULL )
{
CID cid;
ConcertItemAdditionC* pItem = dynamic_cast<ConcertItemAdditionC*>( pStdItem );
if ( pItem != NULL )
{
cid = pItem->getCID();
// Filter on CID
if ( cid == m_cid )
return true;
}
}
return false;
}
bool PropInspectProxyModel::filterAcceptsColumn( int source_column,
const QModelIndex& source_parent ) const
{
if ( (source_column >= m_dcidCol) && (source_column <= m_nMaxColIdx) )
return true;
return false;
}
PropInspectProxyModel::PropInspectProxyModel( const DCID& dcid,
const CID& cid,
QObject* pObject )
: QSortFilterProxyModel( pObject )
, m_dcid( dcid )
, m_cid( cid )
, m_nNumProps( 10 )//TODO: make this a parameter
{
// Set this property to true to have the proxy model re-filter whenever
// the contents of the source model change.
setDynamicSortFilter( true );
//TODO: why doesn't setting the headers here work? No headers appear at all!
setHeaderData( 0, Qt::Horizontal, QVariant( "Property" ), Qt::DisplayRole );
setHeaderData( 1, Qt::Horizontal, QVariant( "Value" ), Qt::DisplayRole );
m_dcidCol = global.worldModelHelper->findFirstDCIDCol( m_dcid );
m_nMaxColIdx = m_dcidCol + m_nNumProps;
}
QModelIndex PropInspectProxyModel::mapToSource( const QModelIndex& proxyIndex ) const
{
return sourceModel()->index( proxyIndex.column(), proxyIndex.row() );
}
bool PropInspectProxyModel::filterAcceptsRow( int source_row,
const QModelIndex& source_parent ) const
{
QStandardItemModel* pModel = qobject_cast<QStandardItemModel*>(sourceModel());
QStandardItem* pStdItem = pModel->item( source_row );
if ( pStdItem != NULL )
{
CID cid;
ConcertItemAdditionC* pItem = dynamic_cast<ConcertItemAdditionC*>( pStdItem );
if ( pItem != NULL )
{
cid = pItem->getCID();
// Filter on CID
if ( cid == m_cid )
return true;
}
}
return false;
}
bool PropInspectProxyModel::filterAcceptsColumn( int source_column,
const QModelIndex& source_parent ) const
{
if ( (source_column >= m_dcidCol) && (source_column <= m_nMaxColIdx) )
return true;
return false;
}
To copy to clipboard, switch view to plain text mode
Bookmarks