// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- // ---- the file-operation notifications handlers // ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- void OperationsModel::newOperationHandler( OperationId operationId, OperationId parentOperationId ) { // choosing the parent to work with Operation* theParent = isOperationValid(parentOperationId) ? parentOperationId : _rootItem; beginInsertRows( theParent->_modelIndex, theParent->childCount(), theParent->childCount()+1 ); { theParent->appendChild( operationId ); operationId->_parentItem = theParent; // doing the links between parent<-->child operationId->_modelIndex = QPersistentModelIndex( createIndex(operationId->row(),0,operationId) ); } endInsertRows(); }
int OperationsModel::rowCount( const QModelIndex& parent ) const { Operation *parentItem; if( parent.column() > 0 ) return 0; if( !parent.isValid() ) parentItem = _rootItem; else parentItem = static_cast<Operation*>( parent.internalPointer() ); return parentItem->childCount(); }