X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/blast.git/blobdiff_plain/abbc64cf04a35ab3549d5c516f44c7c5921baa63..d111eaf49741a0a79d372445f97c314a637e331e:/GroupBlock.cpp?ds=sidebyside diff --git a/GroupBlock.cpp b/GroupBlock.cpp index 4ec7f6b..7995e62 100644 --- a/GroupBlock.cpp +++ b/GroupBlock.cpp @@ -34,6 +34,10 @@ bool GroupBlock::isGroupBlock() { return true; } +bool GroupBlock::isTopGroupBlock() { + return topGroup; +} + void GroupBlock::setParent(AbstractBlock *_parent) { parent = _parent; if (parent != NULL) { @@ -41,8 +45,31 @@ void GroupBlock::setParent(AbstractBlock *_parent) { } } +void GroupBlock::removeAllBlocks() { + foreach(AbstractBlock* block, blocks) { + if (block->isGroupBlock()) { + GroupBlock* group = AB_TO_GRP(block); + group->removeAllBlocks(); + } + removeBlock(block); + } +} + void GroupBlock::removeBlock(AbstractBlock* block) { - blocks.removeAll(block); + /* CAUTION: no check is done if the block has connected interface + or not. Thus, they must be deleted elsewhere. + */ + blocks.removeAll(block); + delete block; +} + +AbstractBlock *GroupBlock::getFunctionalBlockByName(QString name) { + foreach(AbstractBlock* block, blocks) { + if (block->isFunctionalBlock()) { + if (block->getName() == name) return block; + } + } + return NULL; } void GroupBlock::parametersValidation(QList *checkedBlocks, QList *blocksToConfigure) {