GAL: Add a selected item layer
The selected items should be displayed above the rest of the items but below informational overlays. Fixes: lp:1789505 * https://bugs.launchpad.net/kicad/+bug/1789505
This commit is contained in:
parent
f4eaf55497
commit
dc4125206b
|
@ -41,7 +41,7 @@
|
||||||
using namespace KIGFX;
|
using namespace KIGFX;
|
||||||
|
|
||||||
VIEW_GROUP::VIEW_GROUP( VIEW* aView ) :
|
VIEW_GROUP::VIEW_GROUP( VIEW* aView ) :
|
||||||
m_layer( LAYER_GP_OVERLAY )
|
m_layer( LAYER_SELECT_OVERLAY )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -193,9 +193,10 @@ enum GAL_LAYER_ID: int
|
||||||
LAYER_DRC, ///< drc markers
|
LAYER_DRC, ///< drc markers
|
||||||
LAYER_WORKSHEET, ///< worksheet frame
|
LAYER_WORKSHEET, ///< worksheet frame
|
||||||
LAYER_GP_OVERLAY, ///< general purpose overlay
|
LAYER_GP_OVERLAY, ///< general purpose overlay
|
||||||
|
LAYER_SELECT_OVERLAY, ///< currently selected items overlay
|
||||||
LAYER_PCB_BACKGROUND, ///< PCB background color
|
LAYER_PCB_BACKGROUND, ///< PCB background color
|
||||||
LAYER_CURSOR, ///< PCB cursor
|
LAYER_CURSOR, ///< PCB cursor
|
||||||
LAYER_AUX_ITEMS, ///< Auxillary items (guides, rule, etc)
|
LAYER_AUX_ITEMS, ///< Auxiliary items (guides, rule, etc)
|
||||||
|
|
||||||
/// This is the end of the layers used for visibility bitmasks in Pcbnew
|
/// This is the end of the layers used for visibility bitmasks in Pcbnew
|
||||||
/// There can be at most 32 layers above here.
|
/// There can be at most 32 layers above here.
|
||||||
|
@ -305,6 +306,7 @@ enum GERBVIEW_LAYER_ID: int
|
||||||
#define MIN_VISIBILITY_MASK int( ( 1 << GAL_LAYER_INDEX( LAYER_PADS_PLATEDHOLES ) ) +\
|
#define MIN_VISIBILITY_MASK int( ( 1 << GAL_LAYER_INDEX( LAYER_PADS_PLATEDHOLES ) ) +\
|
||||||
( 1 << GAL_LAYER_INDEX( LAYER_VIAS_HOLES ) ) +\
|
( 1 << GAL_LAYER_INDEX( LAYER_VIAS_HOLES ) ) +\
|
||||||
( 1 << GAL_LAYER_INDEX( LAYER_DRC ) ) +\
|
( 1 << GAL_LAYER_INDEX( LAYER_DRC ) ) +\
|
||||||
|
( 1 << GAL_LAYER_INDEX( LAYER_SELECT_OVERLAY ) ) +\
|
||||||
( 1 << GAL_LAYER_INDEX( LAYER_GP_OVERLAY ) ) )
|
( 1 << GAL_LAYER_INDEX( LAYER_GP_OVERLAY ) ) )
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -49,6 +49,7 @@ const LAYER_NUM GAL_LAYER_ORDER[] =
|
||||||
LAYER_GP_OVERLAY,
|
LAYER_GP_OVERLAY,
|
||||||
LAYER_DRC,
|
LAYER_DRC,
|
||||||
LAYER_PADS_NETNAMES, LAYER_VIAS_NETNAMES,
|
LAYER_PADS_NETNAMES, LAYER_VIAS_NETNAMES,
|
||||||
|
LAYER_SELECT_OVERLAY,
|
||||||
Dwgs_User, Cmts_User, Eco1_User, Eco2_User, Edge_Cuts,
|
Dwgs_User, Cmts_User, Eco1_User, Eco2_User, Edge_Cuts,
|
||||||
|
|
||||||
LAYER_MOD_TEXT_FR,
|
LAYER_MOD_TEXT_FR,
|
||||||
|
@ -212,8 +213,8 @@ void PCB_DRAW_PANEL_GAL::SetHighContrastLayer( PCB_LAYER_ID aLayer )
|
||||||
GetNetnameLayer( aLayer ),
|
GetNetnameLayer( aLayer ),
|
||||||
LAYER_VIA_THROUGH, LAYER_VIAS_HOLES, LAYER_VIAS_NETNAMES,
|
LAYER_VIA_THROUGH, LAYER_VIAS_HOLES, LAYER_VIAS_NETNAMES,
|
||||||
LAYER_PADS_TH, LAYER_PADS_PLATEDHOLES, LAYER_PADS_NETNAMES,
|
LAYER_PADS_TH, LAYER_PADS_PLATEDHOLES, LAYER_PADS_NETNAMES,
|
||||||
LAYER_NON_PLATEDHOLES, LAYER_GP_OVERLAY, LAYER_RATSNEST,
|
LAYER_NON_PLATEDHOLES, LAYER_SELECT_OVERLAY, LAYER_GP_OVERLAY,
|
||||||
LAYER_CURSOR
|
LAYER_RATSNEST, LAYER_CURSOR
|
||||||
};
|
};
|
||||||
|
|
||||||
for( unsigned int i = 0; i < sizeof( layers ) / sizeof( LAYER_NUM ); ++i )
|
for( unsigned int i = 0; i < sizeof( layers ) / sizeof( LAYER_NUM ); ++i )
|
||||||
|
@ -248,8 +249,8 @@ void PCB_DRAW_PANEL_GAL::SetTopLayer( PCB_LAYER_ID aLayer )
|
||||||
const LAYER_NUM layers[] = {
|
const LAYER_NUM layers[] = {
|
||||||
LAYER_VIA_THROUGH, LAYER_VIAS_HOLES, LAYER_VIAS_NETNAMES,
|
LAYER_VIA_THROUGH, LAYER_VIAS_HOLES, LAYER_VIAS_NETNAMES,
|
||||||
LAYER_PADS_TH, LAYER_PADS_PLATEDHOLES, LAYER_PADS_NETNAMES,
|
LAYER_PADS_TH, LAYER_PADS_PLATEDHOLES, LAYER_PADS_NETNAMES,
|
||||||
LAYER_NON_PLATEDHOLES, LAYER_GP_OVERLAY, LAYER_RATSNEST,
|
LAYER_NON_PLATEDHOLES, LAYER_SELECT_OVERLAY, LAYER_GP_OVERLAY,
|
||||||
LAYER_DRC
|
LAYER_RATSNEST, LAYER_DRC
|
||||||
};
|
};
|
||||||
|
|
||||||
for( unsigned int i = 0; i < sizeof( layers ) / sizeof( LAYER_NUM ); ++i )
|
for( unsigned int i = 0; i < sizeof( layers ) / sizeof( LAYER_NUM ); ++i )
|
||||||
|
@ -312,6 +313,7 @@ void PCB_DRAW_PANEL_GAL::SyncLayersVisibility( const BOARD* aBoard )
|
||||||
m_view->SetLayerVisible( LAYER_PADS_PLATEDHOLES, true );
|
m_view->SetLayerVisible( LAYER_PADS_PLATEDHOLES, true );
|
||||||
m_view->SetLayerVisible( LAYER_VIAS_HOLES, true );
|
m_view->SetLayerVisible( LAYER_VIAS_HOLES, true );
|
||||||
m_view->SetLayerVisible( LAYER_GP_OVERLAY, true );
|
m_view->SetLayerVisible( LAYER_GP_OVERLAY, true );
|
||||||
|
m_view->SetLayerVisible( LAYER_SELECT_OVERLAY, true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -454,6 +456,8 @@ void PCB_DRAW_PANEL_GAL::setDefaultLayerDeps()
|
||||||
m_view->SetRequired( LAYER_MOD_TEXT_BK, LAYER_MOD_BK );
|
m_view->SetRequired( LAYER_MOD_TEXT_BK, LAYER_MOD_BK );
|
||||||
m_view->SetRequired( LAYER_PAD_BK_NETNAMES, LAYER_PAD_BK );
|
m_view->SetRequired( LAYER_PAD_BK_NETNAMES, LAYER_PAD_BK );
|
||||||
|
|
||||||
|
m_view->SetLayerTarget( LAYER_SELECT_OVERLAY , KIGFX::TARGET_OVERLAY );
|
||||||
|
m_view->SetLayerDisplayOnly( LAYER_SELECT_OVERLAY ) ;
|
||||||
m_view->SetLayerTarget( LAYER_GP_OVERLAY , KIGFX::TARGET_OVERLAY );
|
m_view->SetLayerTarget( LAYER_GP_OVERLAY , KIGFX::TARGET_OVERLAY );
|
||||||
m_view->SetLayerDisplayOnly( LAYER_GP_OVERLAY ) ;
|
m_view->SetLayerDisplayOnly( LAYER_GP_OVERLAY ) ;
|
||||||
m_view->SetLayerTarget( LAYER_RATSNEST, KIGFX::TARGET_OVERLAY );
|
m_view->SetLayerTarget( LAYER_RATSNEST, KIGFX::TARGET_OVERLAY );
|
||||||
|
|
|
@ -376,7 +376,7 @@ public:
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_items = new KIGFX::VIEW_GROUP( m_view );
|
m_items = new KIGFX::VIEW_GROUP( m_view );
|
||||||
m_items->SetLayer( LAYER_GP_OVERLAY ) ;
|
m_items->SetLayer( LAYER_SELECT_OVERLAY ) ;
|
||||||
m_view->Add( m_items );
|
m_view->Add( m_items );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1218,7 +1218,7 @@ void PNS_KICAD_IFACE::SetView( KIGFX::VIEW* aView )
|
||||||
|
|
||||||
m_view = aView;
|
m_view = aView;
|
||||||
m_previewItems = new KIGFX::VIEW_GROUP( m_view );
|
m_previewItems = new KIGFX::VIEW_GROUP( m_view );
|
||||||
m_previewItems->SetLayer( LAYER_GP_OVERLAY ) ;
|
m_previewItems->SetLayer( LAYER_SELECT_OVERLAY ) ;
|
||||||
m_view->Add( m_previewItems );
|
m_view->Add( m_previewItems );
|
||||||
|
|
||||||
delete m_debugDecorator;
|
delete m_debugDecorator;
|
||||||
|
|
|
@ -43,7 +43,7 @@ ROUTER_PREVIEW_ITEM::ROUTER_PREVIEW_ITEM( const PNS::ITEM* aItem, KIGFX::VIEW* a
|
||||||
|
|
||||||
m_shape = NULL;
|
m_shape = NULL;
|
||||||
m_clearance = -1;
|
m_clearance = -1;
|
||||||
m_originLayer = m_layer = LAYER_GP_OVERLAY ;
|
m_originLayer = m_layer = LAYER_SELECT_OVERLAY ;
|
||||||
|
|
||||||
m_showTrackClearance = false;
|
m_showTrackClearance = false;
|
||||||
m_showViaClearance = false;
|
m_showViaClearance = false;
|
||||||
|
|
|
@ -1411,7 +1411,7 @@ BOARD_ITEM* SELECTION_TOOL::doSelectionMenu( GENERAL_COLLECTOR* aCollector,
|
||||||
SELECTION highlightGroup;
|
SELECTION highlightGroup;
|
||||||
CONTEXT_MENU menu;
|
CONTEXT_MENU menu;
|
||||||
|
|
||||||
highlightGroup.SetLayer( LAYER_GP_OVERLAY );
|
highlightGroup.SetLayer( LAYER_SELECT_OVERLAY );
|
||||||
getView()->Add( &highlightGroup );
|
getView()->Add( &highlightGroup );
|
||||||
|
|
||||||
int limit = std::min( 9, aCollector->GetCount() );
|
int limit = std::min( 9, aCollector->GetCount() );
|
||||||
|
|
Loading…
Reference in New Issue