From 9aba378fac84d4392f1973174e44a52adbfa01eb Mon Sep 17 00:00:00 2001 From: charras Date: Wed, 15 Apr 2009 06:32:15 +0000 Subject: [PATCH] fixed in pcbnew: module copy: bad 3d shape list copy. --- pcbnew/class_module.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pcbnew/class_module.cpp b/pcbnew/class_module.cpp index f79e79d176..8caff94268 100644 --- a/pcbnew/class_module.cpp +++ b/pcbnew/class_module.cpp @@ -70,7 +70,7 @@ MODULE::MODULE( BOARD* parent ) : m_Value = new TEXTE_MODULE( this, TEXT_is_VALUE ); // m_Value->SetBack( this ); - m_3D_Drawings.PushBack( new S3D_MASTER( this ) ); + m_3D_Drawings.PushBack( new S3D_MASTER( this ) ); // Reserve one void 3D entry } @@ -138,9 +138,15 @@ void MODULE::Copy( MODULE* aModule ) for( S3D_MASTER* item = aModule->m_3D_Drawings; item; item = item->Next() ) { - S3D_MASTER* t3d = new S3D_MASTER( this ); - t3d->Copy( item ); - m_3D_Drawings.PushBack( t3d ); + S3D_MASTER* t3d = m_3D_Drawings; + if ( t3d && t3d->m_Shape3DName.IsEmpty() ) + t3d->Copy( item ); + else + { + t3d = new S3D_MASTER( this ); + t3d->Copy( item ); + m_3D_Drawings.PushBack( t3d ); + } } /* Copie des elements complementaires */