Added possibility to show/hide layers using right sidebar (PCB layer widget) in the GAL rendered view.
This commit is contained in:
parent
e262b32198
commit
a97c9a1b96
|
@ -268,7 +268,7 @@ void VIEW::SetCenter( const VECTOR2D& aCenter )
|
|||
|
||||
void VIEW::SetLayerVisible( int aLayer, bool aVisible )
|
||||
{
|
||||
// FIXME
|
||||
m_layers[aLayer].enabled = aVisible;
|
||||
}
|
||||
|
||||
|
||||
|
@ -355,15 +355,18 @@ void VIEW::redrawRect( const BOX2I& aRect )
|
|||
|
||||
BOOST_FOREACH( VIEW_LAYER* l, m_orderedLayers )
|
||||
{
|
||||
drawItem drawFunc( this, l->id );
|
||||
if( l->enabled )
|
||||
{
|
||||
drawItem drawFunc( this, l->id );
|
||||
|
||||
m_gal->SetLayerDepth( (double) l->renderingOrder );
|
||||
l->items->Query( aRect, drawFunc );
|
||||
l->isDirty = false;
|
||||
m_gal->SetLayerDepth( (double) l->renderingOrder );
|
||||
l->items->Query( aRect, drawFunc );
|
||||
l->isDirty = false;
|
||||
|
||||
totalItems += drawFunc.count;
|
||||
totalDrawTime += drawFunc.time;
|
||||
totalCached += drawFunc.countCached;
|
||||
totalItems += drawFunc.count;
|
||||
totalDrawTime += drawFunc.time;
|
||||
totalCached += drawFunc.countCached;
|
||||
}
|
||||
}
|
||||
|
||||
prof_end( &totalCycles );
|
||||
|
@ -399,7 +402,7 @@ void VIEW::Clear()
|
|||
l->items->Query( r, v );
|
||||
|
||||
l->items->RemoveAll();
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -31,6 +31,10 @@
|
|||
#include <fctsys.h>
|
||||
#include <appl_wxstruct.h>
|
||||
#include <class_drawpanel.h>
|
||||
#ifdef KICAD_GAL
|
||||
#include <class_drawpanel_gal.h>
|
||||
#include <view/view.h>
|
||||
#endif
|
||||
#include <confirm.h>
|
||||
#include <wxPcbStruct.h>
|
||||
#include <pcbstruct.h> // enum PCB_VISIBLE
|
||||
|
@ -358,6 +362,20 @@ void PCB_LAYER_WIDGET::OnLayerVisible( int aLayer, bool isVisible, bool isFinal
|
|||
|
||||
brd->SetVisibleLayers( visibleLayers );
|
||||
|
||||
#ifdef KICAD_GAL
|
||||
EDA_DRAW_PANEL_GAL *galCanvas = myframe->GetGalCanvas();
|
||||
if( galCanvas )
|
||||
{
|
||||
KiGfx::VIEW* view = galCanvas->GetView();
|
||||
view->SetLayerVisible( aLayer, isVisible );
|
||||
|
||||
if( myframe->IsGalCanvasActive() )
|
||||
{
|
||||
galCanvas->Refresh();
|
||||
}
|
||||
}
|
||||
#endif /* KICAD_GAL */
|
||||
|
||||
if( isFinal )
|
||||
myframe->GetCanvas()->Refresh();
|
||||
}
|
||||
|
@ -394,6 +412,20 @@ void PCB_LAYER_WIDGET::OnRenderEnable( int aId, bool isEnabled )
|
|||
brd->SetElementVisibility( aId, isEnabled );
|
||||
}
|
||||
|
||||
#ifdef KICAD_GAL
|
||||
EDA_DRAW_PANEL_GAL *galCanvas = myframe->GetGalCanvas();
|
||||
if( galCanvas )
|
||||
{
|
||||
KiGfx::VIEW* view = galCanvas->GetView();
|
||||
view->SetLayerVisible( ITEM_GAL_LAYER( aId ), isEnabled );
|
||||
|
||||
if( myframe->IsGalCanvasActive() )
|
||||
{
|
||||
galCanvas->Refresh();
|
||||
}
|
||||
}
|
||||
#endif /* KICAD_GAL */
|
||||
|
||||
myframe->GetCanvas()->Refresh();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue