Fixed a missing group clearing and update for restored VIEW_ITEMs.Fixed a missing group clearing and update for restored VIEW_ITEMs.

This commit is contained in:
Maciej Suminski 2014-02-24 12:56:47 +01:00
parent 1c253bfba0
commit de637d2b8d
2 changed files with 10 additions and 14 deletions

View File

@ -94,13 +94,16 @@ void VIEW::Add( VIEW_ITEM* aItem )
aItem->ViewGetLayers( layers, layers_count ); aItem->ViewGetLayers( layers, layers_count );
aItem->saveLayers( layers, layers_count ); aItem->saveLayers( layers, layers_count );
for( int i = 0; i < layers_count; i++ ) for( int i = 0; i < layers_count; ++i )
{ {
VIEW_LAYER& l = m_layers[layers[i]]; VIEW_LAYER& l = m_layers[layers[i]];
l.items->Insert( aItem ); l.items->Insert( aItem );
MarkTargetDirty( l.target ); MarkTargetDirty( l.target );
} }
if( aItem->viewRequiredUpdate() != VIEW_ITEM::NONE )
MarkForUpdate( aItem );
if( m_dynamic ) if( m_dynamic )
aItem->viewAssign( this ); aItem->viewAssign( this );
} }
@ -122,8 +125,12 @@ void VIEW::Remove( VIEW_ITEM* aItem )
// Clear the GAL cache // Clear the GAL cache
int prevGroup = aItem->getGroup( layers[i] ); int prevGroup = aItem->getGroup( layers[i] );
if( prevGroup >= 0 ) if( prevGroup >= 0 )
{
m_gal->DeleteGroup( prevGroup ); m_gal->DeleteGroup( prevGroup );
aItem->setGroup( layers[i], -1 );
}
} }
} }
@ -134,14 +141,10 @@ void VIEW::SetRequired( int aLayerId, int aRequiredId, bool aRequired )
wxASSERT( (unsigned) aRequiredId < m_layers.size() ); wxASSERT( (unsigned) aRequiredId < m_layers.size() );
if( aRequired ) if( aRequired )
{
m_layers[aLayerId].requiredLayers.insert( aRequiredId ); m_layers[aLayerId].requiredLayers.insert( aRequiredId );
}
else else
{
m_layers[aLayerId].requiredLayers.erase( aRequired ); m_layers[aLayerId].requiredLayers.erase( aRequired );
} }
}
// stupid C++... python lamda would do this in one line // stupid C++... python lamda would do this in one line
@ -781,11 +784,8 @@ struct VIEW::clearLayerCache
} }
bool operator()( VIEW_ITEM* aItem ) bool operator()( VIEW_ITEM* aItem )
{
if( aItem->storesGroups() )
{ {
aItem->deleteGroups(); aItem->deleteGroups();
}
return true; return true;
} }

View File

@ -275,10 +275,6 @@ void PCB_PAINTER::draw( const TRACK* aTrack, int aLayer )
if( length < 10 * width ) if( length < 10 * width )
return; return;
NETINFO_ITEM* net = ( (BOARD*) aTrack->GetParent() )->FindNet( netNumber );
if( !net )
return;
const wxString& netName = aTrack->GetShortNetname(); const wxString& netName = aTrack->GetShortNetname();
VECTOR2D textPosition = start + line / 2.0; // center of the track VECTOR2D textPosition = start + line / 2.0; // center of the track
double textOrientation = -atan( line.y / line.x ); double textOrientation = -atan( line.y / line.x );