Add new array entries with all their children.

This commit is contained in:
dfighter1985 2014-09-05 15:13:58 +02:00
parent 8d3c8de517
commit 12996110fc

View file

@ -494,7 +494,8 @@ void CGeorgesFormModel::arrayResized( const QString &name, int size )
else else
n = e.Name.c_str(); n = e.Name.c_str();
item->add( CFormItem::Form, n.toUtf8().constData(), i, formName.toUtf8().constData(), 0, item->form(), false ); NLGEORGES::CFormElmStruct *s = static_cast< NLGEORGES::CFormElmStruct* >( e.Element );
addStruct( item, s, s->FormDfn, n.toUtf8().constData(), i, formName.toUtf8().constData(), 0 );
} }
if( celm->Elements.size() == 0 ) if( celm->Elements.size() == 0 )
@ -525,22 +526,22 @@ void CGeorgesFormModel::appendArray( QModelIndex idx )
item->form()->getRootNode().getNodeByName( &elm, item->formName().c_str() ); item->form()->getRootNode().getNodeByName( &elm, item->formName().c_str() );
const NLGEORGES::CFormDfn *parentDfn; const NLGEORGES::CFormDfn *parentDfn;
const NLGEORGES::CFormDfn *nodeDfn; const NLGEORGES::CFormDfn *nodeDfn;
uint indexDfn; uint indexDfn;
const NLGEORGES::CType *type; const NLGEORGES::CType *type;
NLGEORGES::UFormDfn::TEntryType entryType; NLGEORGES::UFormDfn::TEntryType entryType;
NLGEORGES::CFormElm *node; NLGEORGES::CFormElm *node;
bool created; bool created;
bool isArray; bool isArray;
if( elm == NULL ) if( elm == NULL )
{ {
NLGEORGES::UFormElm *uroot = &item->form()->getRootNode(); NLGEORGES::UFormElm *uroot = &item->form()->getRootNode();
NLGEORGES::CFormElm *croot = static_cast< NLGEORGES::CFormElm* >( uroot ); NLGEORGES::CFormElm *croot = static_cast< NLGEORGES::CFormElm* >( uroot );
croot->createNodeByName( item->formName().c_str(), &parentDfn, indexDfn, &nodeDfn, &type, &node, entryType, isArray, created ); croot->createNodeByName( item->formName().c_str(), &parentDfn, indexDfn, &nodeDfn, &type, &node, entryType, isArray, created );
if( !created ) if( !created )
return; return;
@ -566,7 +567,8 @@ void CGeorgesFormModel::appendArray( QModelIndex idx )
std::string formName; std::string formName;
node->getFormName( formName ); node->getFormName( formName );
item->add( CFormItem::Form, name.c_str(), s, formName.c_str(), 0, item->form(), false ); NLGEORGES::CFormElmStruct *st = static_cast< NLGEORGES::CFormElmStruct* >( node );
addStruct( item, st, st->FormDfn, name.c_str(), s, formName.c_str(), 0 );
} }
void CGeorgesFormModel::deleteArrayEntry( QModelIndex idx ) void CGeorgesFormModel::deleteArrayEntry( QModelIndex idx )