Minor tweaks to GerbView for performance
This commit is contained in:
parent
1994cc3ae2
commit
e5df4304a6
|
@ -220,6 +220,9 @@ bool GERBVIEW_FRAME::LoadGerberFiles( const wxString& aFullFileName )
|
|||
m_mruPath = currentPath;
|
||||
}
|
||||
|
||||
// Set the busy cursor
|
||||
wxBusyCursor wait;
|
||||
|
||||
// Read gerber files: each file is loaded on a new GerbView layer
|
||||
bool success = true;
|
||||
int layer = GetActiveLayer();
|
||||
|
|
|
@ -820,12 +820,11 @@ void GERBVIEW_FRAME::SetActiveLayer( int aLayer, bool doLayerWidgetUpdate )
|
|||
m_toolManager->RunAction( GERBVIEW_ACTIONS::layerChanged ); // notify other tools
|
||||
GetGalCanvas()->SetFocus(); // otherwise hotkeys are stuck somewhere
|
||||
|
||||
// NOTE(JE) The next two calls are slow (scales with number of items)
|
||||
GetGalCanvas()->SetTopLayer( GERBER_DRAW_LAYER( aLayer ) );
|
||||
|
||||
GetGalCanvas()->SetHighContrastLayer( GERBER_DRAW_LAYER( aLayer ) );
|
||||
GetGalCanvas()->Refresh();
|
||||
|
||||
GetGalCanvas()->GetView()->RecacheAllItems();
|
||||
GetGalCanvas()->Refresh();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -704,7 +704,6 @@ EDA_ITEM* GERBVIEW_SELECTION_TOOL::disambiguationMenu( GERBER_COLLECTOR* aCollec
|
|||
|
||||
getView()->Remove( &highlightGroup );
|
||||
|
||||
|
||||
return current;
|
||||
}
|
||||
|
||||
|
@ -732,9 +731,9 @@ void GERBVIEW_SELECTION_TOOL::select( EDA_ITEM* aItem )
|
|||
return;
|
||||
}
|
||||
|
||||
selectVisually( aItem );
|
||||
m_selection.Add( aItem );
|
||||
getView()->Add( &m_selection );
|
||||
selectVisually( aItem );
|
||||
|
||||
if( m_selection.Size() == 1 )
|
||||
{
|
||||
|
@ -765,7 +764,7 @@ void GERBVIEW_SELECTION_TOOL::unselect( EDA_ITEM* aItem )
|
|||
}
|
||||
|
||||
|
||||
void GERBVIEW_SELECTION_TOOL::selectVisually( EDA_ITEM* aItem ) const
|
||||
void GERBVIEW_SELECTION_TOOL::selectVisually( EDA_ITEM* aItem )
|
||||
{
|
||||
// Move the item's layer to the front
|
||||
int layer = static_cast<GERBER_DRAW_ITEM*>( aItem )->GetLayer();
|
||||
|
@ -774,16 +773,19 @@ void GERBVIEW_SELECTION_TOOL::selectVisually( EDA_ITEM* aItem ) const
|
|||
// Hide the original item, so it is shown only on overlay
|
||||
aItem->SetSelected();
|
||||
getView()->Hide( aItem, true );
|
||||
getView()->Update( aItem, KIGFX::GEOMETRY );
|
||||
|
||||
getView()->Update( &m_selection );
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_SELECTION_TOOL::unselectVisually( EDA_ITEM* aItem ) const
|
||||
void GERBVIEW_SELECTION_TOOL::unselectVisually( EDA_ITEM* aItem )
|
||||
{
|
||||
// Restore original item visibility
|
||||
aItem->ClearSelected();
|
||||
getView()->Hide( aItem, false );
|
||||
getView()->Update( aItem, KIGFX::ALL );
|
||||
|
||||
getView()->Update( &m_selection );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -203,14 +203,14 @@ private:
|
|||
* Marks item as selected, but does not add it to the ITEMS_PICKED_LIST.
|
||||
* @param aItem is an item to be be marked.
|
||||
*/
|
||||
void selectVisually( EDA_ITEM* aItem ) const;
|
||||
void selectVisually( EDA_ITEM* aItem );
|
||||
|
||||
/**
|
||||
* Function unselectVisually()
|
||||
* Marks item as selected, but does not add it to the ITEMS_PICKED_LIST.
|
||||
* @param aItem is an item to be be marked.
|
||||
*/
|
||||
void unselectVisually( EDA_ITEM* aItem ) const;
|
||||
void unselectVisually( EDA_ITEM* aItem );
|
||||
|
||||
/**
|
||||
* Function selectionContains()
|
||||
|
|
Loading…
Reference in New Issue