Architecturally-simpler fix for grid context menu unit changes.
Fixes: lp:1777519 * https://bugs.launchpad.net/kicad/+bug/1777519
This commit is contained in:
parent
77217b2089
commit
79e0bb08d0
|
@ -51,13 +51,6 @@ GRID_MENU::GRID_MENU( EDA_DRAW_FRAME* aParent ) : m_parent( aParent )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
CONTEXT_MENU* GRID_MENU::Clone() const
|
|
||||||
{
|
|
||||||
// Just return a fresh menu. This keeps the units up-to-date.
|
|
||||||
return create();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
OPT_TOOL_EVENT GRID_MENU::eventHandler( const wxMenuEvent& aEvent )
|
OPT_TOOL_EVENT GRID_MENU::eventHandler( const wxMenuEvent& aEvent )
|
||||||
{
|
{
|
||||||
OPT_TOOL_EVENT event( ACTIONS::gridPreset.MakeEvent() );
|
OPT_TOOL_EVENT event( ACTIONS::gridPreset.MakeEvent() );
|
||||||
|
@ -70,9 +63,17 @@ OPT_TOOL_EVENT GRID_MENU::eventHandler( const wxMenuEvent& aEvent )
|
||||||
|
|
||||||
void GRID_MENU::update()
|
void GRID_MENU::update()
|
||||||
{
|
{
|
||||||
for( unsigned int i = 0; i < GetMenuItemCount(); ++i )
|
BASE_SCREEN* screen = m_parent->GetScreen();
|
||||||
Check( ID_POPUP_GRID_SELECT + 1 + i, false );
|
int currentId = screen->GetGridCmdId();
|
||||||
|
wxArrayString gridsList;
|
||||||
|
|
||||||
// Check the current grid size
|
screen->BuildGridsChoiceList( gridsList, g_UserUnit != INCHES );
|
||||||
Check( m_parent->GetScreen()->GetGridCmdId(), true );
|
|
||||||
|
for( unsigned int i = 0; i < GetMenuItemCount(); ++i )
|
||||||
|
{
|
||||||
|
int menuId = ID_POPUP_GRID_SELECT + 1 + i;
|
||||||
|
|
||||||
|
SetLabel( menuId, gridsList[i] ); // Refresh label in case units have changed
|
||||||
|
Check( menuId, menuId == currentId ); // Refresh checkmark
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -142,7 +142,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* Creates a deep, recursive copy of this CONTEXT_MENU.
|
* Creates a deep, recursive copy of this CONTEXT_MENU.
|
||||||
*/
|
*/
|
||||||
virtual CONTEXT_MENU* Clone() const;
|
CONTEXT_MENU* Clone() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
///> Returns an instance of this class. It has to be overridden in inheriting classes.
|
///> Returns an instance of this class. It has to be overridden in inheriting classes.
|
||||||
|
|
|
@ -34,8 +34,6 @@ class GRID_MENU : public CONTEXT_MENU
|
||||||
public:
|
public:
|
||||||
GRID_MENU( EDA_DRAW_FRAME* aParent );
|
GRID_MENU( EDA_DRAW_FRAME* aParent );
|
||||||
|
|
||||||
CONTEXT_MENU* Clone() const override;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CONTEXT_MENU* create() const override
|
CONTEXT_MENU* create() const override
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue