Sym edit: add alt mode icon toggle

Moves the logic into the SCH_RENDER_SETTINGS, rather than
repeating it in EESCHEMA/SYMBOL_EDITOR_SETTINGS (they still
maintain their state there, but the painter looks at the
SCH_RENDER_SETTINGS).

Also turn them off for preview purposes.
This commit is contained in:
John Beard 2024-10-09 21:27:58 -06:00
parent 4bad76825c
commit eae84fd5f3
18 changed files with 117 additions and 3 deletions

View File

@ -44,6 +44,7 @@ void PANEL_SYM_DISPLAY_OPTIONS::loadSymEditorSettings( SYMBOL_EDITOR_SETTINGS* c
m_checkShowHiddenPins->SetValue( cfg->m_ShowHiddenPins ); m_checkShowHiddenPins->SetValue( cfg->m_ShowHiddenPins );
m_checkShowHiddenFields->SetValue( cfg->m_ShowHiddenFields ); m_checkShowHiddenFields->SetValue( cfg->m_ShowHiddenFields );
m_showPinElectricalTypes->SetValue( cfg->m_ShowPinElectricalType ); m_showPinElectricalTypes->SetValue( cfg->m_ShowPinElectricalType );
m_checkShowPinAltModeIcons->SetValue( cfg->m_ShowPinAltIcons );
} }
@ -68,6 +69,7 @@ bool PANEL_SYM_DISPLAY_OPTIONS::TransferDataFromWindow()
cfg->m_ShowHiddenPins = m_checkShowHiddenPins->GetValue(); cfg->m_ShowHiddenPins = m_checkShowHiddenPins->GetValue();
cfg->m_ShowHiddenFields = m_checkShowHiddenFields->GetValue(); cfg->m_ShowHiddenFields = m_checkShowHiddenFields->GetValue();
cfg->m_ShowPinElectricalType = m_showPinElectricalTypes->GetValue(); cfg->m_ShowPinElectricalType = m_showPinElectricalTypes->GetValue();
cfg->m_ShowPinAltIcons = m_checkShowPinAltModeIcons->GetValue();
m_galOptsPanel->TransferDataFromWindow(); m_galOptsPanel->TransferDataFromWindow();
return true; return true;

View File

@ -42,6 +42,10 @@ PANEL_SYM_DISPLAY_OPTIONS_BASE::PANEL_SYM_DISPLAY_OPTIONS_BASE( wxWindow* parent
m_showPinElectricalTypes->SetValue(true); m_showPinElectricalTypes->SetValue(true);
bAppearanceSizer->Add( m_showPinElectricalTypes, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); bAppearanceSizer->Add( m_showPinElectricalTypes, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_checkShowPinAltModeIcons = new wxCheckBox( this, wxID_ANY, _("Show pin &alternate mode indicator icons"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkShowPinAltModeIcons->SetValue(true);
bAppearanceSizer->Add( m_checkShowPinAltModeIcons, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
bRightColumn->Add( bAppearanceSizer, 0, wxEXPAND|wxTOP|wxLEFT, 5 ); bRightColumn->Add( bAppearanceSizer, 0, wxEXPAND|wxTOP|wxLEFT, 5 );

View File

@ -405,6 +405,71 @@
<property name="window_style"></property> <property name="window_style"></property>
</object> </object>
</object> </object>
<object class="sizeritem" expanded="true">
<property name="border">5</property>
<property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="true">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer">0</property>
<property name="aui_name"></property>
<property name="aui_position">0</property>
<property name="aui_row">0</property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">1</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="drag_accept_files">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Show pin &amp;alternate mode indicator icons</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_checkShowPinAltModeIcons</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
</object>
</object>
</object> </object>
</object> </object>
</object> </object>

View File

@ -38,6 +38,7 @@ class PANEL_SYM_DISPLAY_OPTIONS_BASE : public RESETTABLE_PANEL
wxCheckBox* m_checkShowHiddenPins; wxCheckBox* m_checkShowHiddenPins;
wxCheckBox* m_checkShowHiddenFields; wxCheckBox* m_checkShowHiddenFields;
wxCheckBox* m_showPinElectricalTypes; wxCheckBox* m_showPinElectricalTypes;
wxCheckBox* m_checkShowPinAltModeIcons;
public: public:

View File

@ -250,6 +250,7 @@ void SCH_EDIT_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg )
GetRenderSettings()->m_ShowPinsElectricalType = false; GetRenderSettings()->m_ShowPinsElectricalType = false;
GetRenderSettings()->m_ShowPinNumbers = false; GetRenderSettings()->m_ShowPinNumbers = false;
GetRenderSettings()->m_ShowPinAltIcons = cfg->m_Appearance.show_pin_alt_icons;
GetRenderSettings()->SetDefaultFont( cfg->m_Appearance.default_font ); GetRenderSettings()->SetDefaultFont( cfg->m_Appearance.default_font );
} }

View File

@ -193,6 +193,7 @@ void EESCHEMA_JOBS_HANDLER::InitRenderSettings( SCH_RENDER_SETTINGS* aRenderSett
aRenderSettings->LoadColors( cs ); aRenderSettings->LoadColors( cs );
aRenderSettings->m_ShowHiddenPins = false; aRenderSettings->m_ShowHiddenPins = false;
aRenderSettings->m_ShowHiddenFields = false; aRenderSettings->m_ShowHiddenFields = false;
aRenderSettings->m_ShowPinAltIcons = false;
aRenderSettings->SetDefaultPenWidth( aSch->Settings().m_DefaultLineWidth ); aRenderSettings->SetDefaultPenWidth( aSch->Settings().m_DefaultLineWidth );
aRenderSettings->m_LabelSizeRatio = aSch->Settings().m_LabelSizeRatio; aRenderSettings->m_LabelSizeRatio = aSch->Settings().m_LabelSizeRatio;

View File

@ -1550,15 +1550,16 @@ void SCH_PAINTER::draw( const SCH_PIN* aPin, int aLayer, bool aDimmed )
const bool hasAltIcon = const bool hasAltIcon =
( slot.role == PIN_TEXTS::SLOT_ROLE::NAME ) && !aPin->GetAlternates().empty() ( slot.role == PIN_TEXTS::SLOT_ROLE::NAME ) && !aPin->GetAlternates().empty()
&& eeconfig()->m_Appearance.show_pin_alt_icons && !renderTextAsBitmap; && GetSettings()->m_ShowPinAltIcons && !renderTextAsBitmap;
if( hasAltIcon ) if( hasAltIcon )
{ {
wxASSERT( locs.IconPos.size() >= 1 ); wxASSERT( locs.IconPos.size() >= 1 );
drawAltPinModesIcon( *m_gal, locs.IconPos[0], iconSize, drawAltPinModesIcon( *m_gal, locs.IconPos[0], iconSize,
// TODO: doesn't work due to the tempPin having no alt // Icon style doesn't work due to the tempPin having no alt
aPin->GetShownName() == aPin->GetBaseName(), // but maybe it's better with just one style anyway.
true,
placement.Angle == ANGLE_VERTICAL, shadowWidth, slot.colour ); placement.Angle == ANGLE_VERTICAL, shadowWidth, slot.colour );
} }
}; };

View File

@ -87,6 +87,7 @@ public:
bool m_ShowPinNumbers; // Force showing of pin numbers (normally symbol-specific) bool m_ShowPinNumbers; // Force showing of pin numbers (normally symbol-specific)
bool m_ShowPinNames; // Force showing of pin names (normally symbol-specific) bool m_ShowPinNames; // Force showing of pin names (normally symbol-specific)
bool m_ShowPinElectricalTypes; bool m_ShowPinElectricalTypes;
bool m_ShowPinAltIcons;
bool m_ShowDisabled; bool m_ShowDisabled;
bool m_ShowGraphicsDisabled; bool m_ShowGraphicsDisabled;
bool m_ShowConnectionPoints; bool m_ShowConnectionPoints;

View File

@ -127,6 +127,7 @@ void SYMBOL_EDIT_FRAME::doReCreateMenuBar()
viewMenu->Add( ACTIONS::showLibraryTree, ACTION_MENU::CHECK ); viewMenu->Add( ACTIONS::showLibraryTree, ACTION_MENU::CHECK );
viewMenu->Add( EE_ACTIONS::showHiddenPins, ACTION_MENU::CHECK ); viewMenu->Add( EE_ACTIONS::showHiddenPins, ACTION_MENU::CHECK );
viewMenu->Add( EE_ACTIONS::showHiddenFields, ACTION_MENU::CHECK ); viewMenu->Add( EE_ACTIONS::showHiddenFields, ACTION_MENU::CHECK );
viewMenu->Add( EE_ACTIONS::togglePinAltIcons,ACTION_MENU::CHECK );
//-- Place menu ----------------------------------------------- //-- Place menu -----------------------------------------------

View File

@ -327,6 +327,7 @@ void SYMBOL_EDIT_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg )
GetRenderSettings()->m_ShowPinsElectricalType = m_settings->m_ShowPinElectricalType; GetRenderSettings()->m_ShowPinsElectricalType = m_settings->m_ShowPinElectricalType;
GetRenderSettings()->m_ShowHiddenPins = m_settings->m_ShowHiddenPins; GetRenderSettings()->m_ShowHiddenPins = m_settings->m_ShowHiddenPins;
GetRenderSettings()->m_ShowHiddenFields = m_settings->m_ShowHiddenFields; GetRenderSettings()->m_ShowHiddenFields = m_settings->m_ShowHiddenFields;
GetRenderSettings()->m_ShowPinAltIcons = m_settings->m_ShowPinAltIcons;
GetRenderSettings()->SetDefaultFont( wxEmptyString ); GetRenderSettings()->SetDefaultFont( wxEmptyString );
} }
@ -342,6 +343,7 @@ void SYMBOL_EDIT_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg )
m_settings->m_ShowPinElectricalType = GetRenderSettings()->m_ShowPinsElectricalType; m_settings->m_ShowPinElectricalType = GetRenderSettings()->m_ShowPinsElectricalType;
m_settings->m_ShowHiddenPins = GetRenderSettings()->m_ShowHiddenPins; m_settings->m_ShowHiddenPins = GetRenderSettings()->m_ShowHiddenPins;
m_settings->m_ShowHiddenFields = GetRenderSettings()->m_ShowHiddenFields; m_settings->m_ShowHiddenFields = GetRenderSettings()->m_ShowHiddenFields;
m_settings->m_ShowPinAltIcons = GetRenderSettings()->m_ShowPinAltIcons;
m_settings->m_LibWidth = m_treePane->GetSize().x; m_settings->m_LibWidth = m_treePane->GetSize().x;
@ -522,6 +524,12 @@ void SYMBOL_EDIT_FRAME::setupUIConditions()
return libeditconfig()->m_ShowHiddenFields; return libeditconfig()->m_ShowHiddenFields;
}; };
auto showPinAltIconsCond =
[this]( const SELECTION& )
{
return libeditconfig()->m_ShowPinAltIcons;
};
auto showLibraryTreeCond = auto showLibraryTreeCond =
[this]( const SELECTION& ) [this]( const SELECTION& )
{ {
@ -540,6 +548,7 @@ void SYMBOL_EDIT_FRAME::setupUIConditions()
mgr->SetConditions( ACTIONS::showProperties, CHECK( propertiesCond ) ); mgr->SetConditions( ACTIONS::showProperties, CHECK( propertiesCond ) );
mgr->SetConditions( EE_ACTIONS::showHiddenPins, CHECK( hiddenPinCond ) ); mgr->SetConditions( EE_ACTIONS::showHiddenPins, CHECK( hiddenPinCond ) );
mgr->SetConditions( EE_ACTIONS::showHiddenFields, CHECK( hiddenFieldCond ) ); mgr->SetConditions( EE_ACTIONS::showHiddenFields, CHECK( hiddenFieldCond ) );
mgr->SetConditions( EE_ACTIONS::togglePinAltIcons, CHECK( showPinAltIconsCond ) );
auto demorganCond = auto demorganCond =
[this]( const SELECTION& ) [this]( const SELECTION& )
@ -1276,6 +1285,7 @@ void SYMBOL_EDIT_FRAME::CommonSettingsChanged( bool aEnvVarsChanged, bool aTextV
GetRenderSettings()->m_ShowPinsElectricalType = cfg->m_ShowPinElectricalType; GetRenderSettings()->m_ShowPinsElectricalType = cfg->m_ShowPinElectricalType;
GetRenderSettings()->m_ShowHiddenPins = cfg->m_ShowHiddenPins; GetRenderSettings()->m_ShowHiddenPins = cfg->m_ShowHiddenPins;
GetRenderSettings()->m_ShowHiddenFields = cfg->m_ShowHiddenFields; GetRenderSettings()->m_ShowHiddenFields = cfg->m_ShowHiddenFields;
GetRenderSettings()->m_ShowPinAltIcons = cfg->m_ShowPinAltIcons;
GetGalDisplayOptions().ReadWindowSettings( cfg->m_Window ); GetGalDisplayOptions().ReadWindowSettings( cfg->m_Window );

View File

@ -103,6 +103,9 @@ SYMBOL_EDITOR_SETTINGS::SYMBOL_EDITOR_SETTINGS() :
m_params.emplace_back( new PARAM<bool>( "show_pin_electrical_type", m_params.emplace_back( new PARAM<bool>( "show_pin_electrical_type",
&m_ShowPinElectricalType, true ) ); &m_ShowPinElectricalType, true ) );
m_params.emplace_back( new PARAM<bool>( "show_pin_alt_icons",
&m_ShowPinAltIcons, true ) );
m_params.emplace_back( new PARAM<bool>( "show_hidden_lib_fields", m_params.emplace_back( new PARAM<bool>( "show_hidden_lib_fields",
&m_ShowHiddenFields, true ) ); &m_ShowHiddenFields, true ) );

View File

@ -82,6 +82,7 @@ public:
bool m_ShowPinElectricalType; bool m_ShowPinElectricalType;
bool m_ShowHiddenPins; bool m_ShowHiddenPins;
bool m_ShowHiddenFields; bool m_ShowHiddenFields;
bool m_ShowPinAltIcons;
///< When true, dragging an outline edge will drag pins rooted on it ///< When true, dragging an outline edge will drag pins rooted on it
bool m_dragPinsAlongWithEdges; bool m_dragPinsAlongWithEdges;

View File

@ -173,6 +173,7 @@ void SYMBOL_EDIT_FRAME::ReCreateOptToolbar()
m_optionsToolBar->Add( EE_ACTIONS::showElectricalTypes, ACTION_TOOLBAR::TOGGLE ); m_optionsToolBar->Add( EE_ACTIONS::showElectricalTypes, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->Add( EE_ACTIONS::showHiddenPins, ACTION_TOOLBAR::TOGGLE ); m_optionsToolBar->Add( EE_ACTIONS::showHiddenPins, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->Add( EE_ACTIONS::showHiddenFields, ACTION_TOOLBAR::TOGGLE ); m_optionsToolBar->Add( EE_ACTIONS::showHiddenFields, ACTION_TOOLBAR::TOGGLE );
// m_optionsToolBar->Add( EE_ACTIONS::togglePinAltIcons, ACTION_TOOLBAR::TOGGLE );
if( ADVANCED_CFG::GetCfg().m_DrawBoundingBoxes ) if( ADVANCED_CFG::GetCfg().m_DrawBoundingBoxes )
m_optionsToolBar->Add( ACTIONS::toggleBoundingBoxes, ACTION_TOOLBAR::TOGGLE ); m_optionsToolBar->Add( ACTIONS::toggleBoundingBoxes, ACTION_TOOLBAR::TOGGLE );

View File

@ -2596,6 +2596,8 @@ int SCH_EDITOR_CONTROL::TogglePinAltIcons( const TOOL_EVENT& aEvent )
EESCHEMA_SETTINGS* cfg = m_frame->eeconfig(); EESCHEMA_SETTINGS* cfg = m_frame->eeconfig();
cfg->m_Appearance.show_pin_alt_icons = !cfg->m_Appearance.show_pin_alt_icons; cfg->m_Appearance.show_pin_alt_icons = !cfg->m_Appearance.show_pin_alt_icons;
m_frame->GetRenderSettings()->m_ShowPinAltIcons = cfg->m_Appearance.show_pin_alt_icons;
getView()->UpdateAllItems( KIGFX::REPAINT ); getView()->UpdateAllItems( KIGFX::REPAINT );
m_frame->GetCanvas()->Refresh(); m_frame->GetCanvas()->Refresh();

View File

@ -613,6 +613,22 @@ int SYMBOL_EDITOR_CONTROL::ToggleHiddenFields( const TOOL_EVENT& aEvent )
} }
int SYMBOL_EDITOR_CONTROL::TogglePinAltIcons( const TOOL_EVENT& aEvent )
{
if( !m_isSymbolEditor )
return 0;
SYMBOL_EDITOR_SETTINGS& cfg = *m_frame->libeditconfig();
cfg.m_ShowPinAltIcons = !cfg.m_ShowPinAltIcons;
m_frame->GetRenderSettings()->m_ShowPinAltIcons = cfg.m_ShowPinAltIcons;
getView()->UpdateAllItems( KIGFX::REPAINT );
m_frame->GetCanvas()->Refresh();
return 0;
}
int SYMBOL_EDITOR_CONTROL::ExportView( const TOOL_EVENT& aEvent ) int SYMBOL_EDITOR_CONTROL::ExportView( const TOOL_EVENT& aEvent )
{ {
if( !m_isSymbolEditor ) if( !m_isSymbolEditor )
@ -826,6 +842,7 @@ void SYMBOL_EDITOR_CONTROL::setTransitions()
Go( &SYMBOL_EDITOR_CONTROL::ToggleProperties, ACTIONS::showProperties.MakeEvent() ); Go( &SYMBOL_EDITOR_CONTROL::ToggleProperties, ACTIONS::showProperties.MakeEvent() );
Go( &SYMBOL_EDITOR_CONTROL::ToggleHiddenPins, EE_ACTIONS::showHiddenPins.MakeEvent() ); Go( &SYMBOL_EDITOR_CONTROL::ToggleHiddenPins, EE_ACTIONS::showHiddenPins.MakeEvent() );
Go( &SYMBOL_EDITOR_CONTROL::ToggleHiddenFields, EE_ACTIONS::showHiddenFields.MakeEvent() ); Go( &SYMBOL_EDITOR_CONTROL::ToggleHiddenFields, EE_ACTIONS::showHiddenFields.MakeEvent() );
Go( &SYMBOL_EDITOR_CONTROL::TogglePinAltIcons, EE_ACTIONS::togglePinAltIcons.MakeEvent() );
Go( &SYMBOL_EDITOR_CONTROL::ChangeUnit, EE_ACTIONS::previousUnit.MakeEvent() ); Go( &SYMBOL_EDITOR_CONTROL::ChangeUnit, EE_ACTIONS::previousUnit.MakeEvent() );
Go( &SYMBOL_EDITOR_CONTROL::ChangeUnit, EE_ACTIONS::nextUnit.MakeEvent() ); Go( &SYMBOL_EDITOR_CONTROL::ChangeUnit, EE_ACTIONS::nextUnit.MakeEvent() );

View File

@ -69,6 +69,7 @@ public:
int ToggleHiddenPins( const TOOL_EVENT& aEvent ); int ToggleHiddenPins( const TOOL_EVENT& aEvent );
int ToggleHiddenFields( const TOOL_EVENT& aEvent ); int ToggleHiddenFields( const TOOL_EVENT& aEvent );
int TogglePinAltIcons( const TOOL_EVENT& aEvent );
int ChangeUnit( const TOOL_EVENT& aEvent ); int ChangeUnit( const TOOL_EVENT& aEvent );

View File

@ -92,6 +92,7 @@ DESIGN_BLOCK_PREVIEW_WIDGET::DESIGN_BLOCK_PREVIEW_WIDGET( wxWindow* aParent, boo
settings->m_ShowPinNumbers = false; settings->m_ShowPinNumbers = false;
settings->m_ShowHiddenPins = false; settings->m_ShowHiddenPins = false;
settings->m_ShowHiddenFields = false; settings->m_ShowHiddenFields = false;
settings->m_ShowPinAltIcons = false;
m_outerSizer = new wxBoxSizer( wxVERTICAL ); m_outerSizer = new wxBoxSizer( wxVERTICAL );

View File

@ -89,6 +89,7 @@ SYMBOL_PREVIEW_WIDGET::SYMBOL_PREVIEW_WIDGET( wxWindow* aParent, KIWAY* aKiway,
settings->m_ShowPinNumbers = app_settings->m_LibViewPanel.show_pin_numbers; settings->m_ShowPinNumbers = app_settings->m_LibViewPanel.show_pin_numbers;
settings->m_ShowHiddenPins = false; settings->m_ShowHiddenPins = false;
settings->m_ShowHiddenFields = false; settings->m_ShowHiddenFields = false;
settings->m_ShowPinAltIcons = false;
m_outerSizer = new wxBoxSizer( wxVERTICAL ); m_outerSizer = new wxBoxSizer( wxVERTICAL );