From 655d44615144aae8f1b7dfbb1e4650fbfa641f90 Mon Sep 17 00:00:00 2001 From: dfighter1985 Date: Wed, 20 Aug 2014 18:22:20 +0200 Subject: [PATCH] When reaching 0 array size, delete the array node. --HG-- branch : dfighter-tools --- .../plugins/georges_editor/georgesform_model.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/code/studio/src/plugins/georges_editor/georgesform_model.cpp b/code/studio/src/plugins/georges_editor/georgesform_model.cpp index 90eaaaacd..3de9b7415 100644 --- a/code/studio/src/plugins/georges_editor/georgesform_model.cpp +++ b/code/studio/src/plugins/georges_editor/georgesform_model.cpp @@ -497,6 +497,22 @@ void CGeorgesFormModel::arrayResized( const QString &name, int size ) item->add( CFormItem::Form, n.toUtf8().constData(), i, formName.toUtf8().constData(), 0, item->form() ); } + if( celm->Elements.size() == 0 ) + { + NLGEORGES::CFormElmStruct *ps = dynamic_cast< NLGEORGES::CFormElmStruct* >( celm->getParent() ); + if( ps != NULL ) + { + const NLGEORGES::CFormDfn *parentDfn; + const NLGEORGES::CFormDfn *nodeDfn; + uint indexDfn; + const NLGEORGES::CType *nodeType; + NLGEORGES::CFormElm *node; + NLGEORGES::CFormDfn::TEntryType type; + bool isArray; + + ps->deleteNodeByName( item->name().c_str(), &parentDfn, indexDfn, &nodeDfn, &nodeType, &node, type, isArray ); + } + } }