X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmSeqEntry.cxx;h=615863efca6b641a4438396a97bb3b5d27d349a4;hb=0b31e4c3ee25732c2fc63acf647213f4e3a7745e;hp=ace2fa4611b30bd0f2fcd34a3b757ca7bbf7db8a;hpb=5b89bede4607999aeb8d5b45311e7ee82f9471ef;p=gdcm.git diff --git a/src/gdcmSeqEntry.cxx b/src/gdcmSeqEntry.cxx index ace2fa46..615863ef 100644 --- a/src/gdcmSeqEntry.cxx +++ b/src/gdcmSeqEntry.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmSeqEntry.cxx,v $ Language: C++ - Date: $Date: 2005/02/02 16:18:49 $ - Version: $Revision: 1.53 $ + Date: $Date: 2005/10/25 14:52:35 $ + Version: $Revision: 1.60 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -46,7 +46,7 @@ SeqEntry::SeqEntry( DictEntry *e ) } /** - * \brief Constructor from a given SeqEntry + * \brief Constructor from a given DocEntry * @param e Pointer to existing Doc entry * @param depth depth level of the current Seq entry */ @@ -116,6 +116,7 @@ void SeqEntry::AddSQItem(SQItem *sqItem, int itemNumber) // Or we can add (or remove) anywhere, and SQItemNumber will be broken sqItem->SetSQItemNumber(itemNumber); Items.push_back(sqItem); + sqItem->Register(); } /** @@ -125,11 +126,11 @@ void SeqEntry::ClearSQItem() { for(ListSQItem::iterator cc = Items.begin(); cc != Items.end(); ++cc) { - delete *cc; + (*cc)->Unregister(); } if (SeqTerm) { - delete SeqTerm; + SeqTerm->Unregister(); } } @@ -195,6 +196,22 @@ unsigned int SeqEntry::GetNumberOfSQItems() return Items.size(); } +/** + * \brief Sets the Sequence Delimitation Item + * \param e Delimitation item + */ +void SeqEntry::SetDelimitationItem(DocEntry *e) +{ + if( SeqTerm != e ) + { + if( SeqTerm ) + SeqTerm->Unregister(); + SeqTerm = e; + if( SeqTerm ) + SeqTerm->Register(); + } +} + //----------------------------------------------------------------------------- // Protected @@ -227,10 +244,12 @@ void SeqEntry::Print( std::ostream &os, std::string const & ) // at end, print the sequence terminator item, if any if (DelimitorMode) { - for ( int i = 0; i < SQDepthLevel; i++ ) - { + int i; + for ( i = 0; i < SQDepthLevel; i++ ) + os << " | " ; + os << " --- " << std::endl; + for ( i = 0; i < SQDepthLevel; i++ ) os << " | " ; - } if (SeqTerm != NULL) { SeqTerm->SetPrintLevel(PrintLevel); @@ -240,7 +259,7 @@ void SeqEntry::Print( std::ostream &os, std::string const & ) else { // fuse - gdcmVerboseMacro(" -------- should have a sequence terminator item"); + gdcmWarningMacro(" -------- should have a sequence terminator item"); } } }