diff --git a/eeschema/eeschema_settings.cpp b/eeschema/eeschema_settings.cpp index aab2a25505..5b7b25a32e 100644 --- a/eeschema/eeschema_settings.cpp +++ b/eeschema/eeschema_settings.cpp @@ -124,6 +124,9 @@ EESCHEMA_SETTINGS::EESCHEMA_SETTINGS() : m_params.emplace_back( new PARAM( "appearance.show_hidden_fields", &m_Appearance.show_hidden_fields, false ) ); + m_params.emplace_back( new PARAM( "appearance.show_directive_labels", + &m_Appearance.show_directive_labels, true ) ); + m_params.emplace_back( new PARAM( "appearance.show_erc_warnings", &m_Appearance.show_erc_warnings, true ) ); diff --git a/eeschema/eeschema_settings.h b/eeschema/eeschema_settings.h index d1412c1a51..22090fde31 100644 --- a/eeschema/eeschema_settings.h +++ b/eeschema/eeschema_settings.h @@ -60,6 +60,7 @@ public: wxString default_font; bool show_hidden_pins; bool show_hidden_fields; + bool show_directive_labels; bool show_erc_warnings; bool show_erc_errors; bool show_erc_exclusions; diff --git a/eeschema/menubar.cpp b/eeschema/menubar.cpp index fe00798508..38d9df2c33 100644 --- a/eeschema/menubar.cpp +++ b/eeschema/menubar.cpp @@ -187,28 +187,29 @@ void SCH_EDIT_FRAME::doReCreateMenuBar() viewMenu->Add( ACTIONS::zoomRedraw ); viewMenu->AppendSeparator(); - viewMenu->Add( ACTIONS::toggleGrid, ACTION_MENU::CHECK ); + viewMenu->Add( ACTIONS::toggleGrid, ACTION_MENU::CHECK ); viewMenu->Add( ACTIONS::gridProperties ); // Units submenu ACTION_MENU* unitsSubMenu = new ACTION_MENU( false, selTool ); unitsSubMenu->SetTitle( _( "&Units" ) ); unitsSubMenu->SetIcon( BITMAPS::unit_mm ); - unitsSubMenu->Add( ACTIONS::inchesUnits, ACTION_MENU::CHECK ); - unitsSubMenu->Add( ACTIONS::milsUnits, ACTION_MENU::CHECK ); - unitsSubMenu->Add( ACTIONS::millimetersUnits, ACTION_MENU::CHECK ); + unitsSubMenu->Add( ACTIONS::inchesUnits, ACTION_MENU::CHECK ); + unitsSubMenu->Add( ACTIONS::milsUnits, ACTION_MENU::CHECK ); + unitsSubMenu->Add( ACTIONS::millimetersUnits, ACTION_MENU::CHECK ); viewMenu->Add( unitsSubMenu ); - viewMenu->Add( ACTIONS::toggleCursorStyle, ACTION_MENU::CHECK ); + viewMenu->Add( ACTIONS::toggleCursorStyle, ACTION_MENU::CHECK ); viewMenu->AppendSeparator(); - viewMenu->Add( EE_ACTIONS::toggleHiddenPins, ACTION_MENU::CHECK ); - viewMenu->Add( EE_ACTIONS::toggleHiddenFields, ACTION_MENU::CHECK ); - viewMenu->Add( EE_ACTIONS::toggleERCErrors, ACTION_MENU::CHECK ); - viewMenu->Add( EE_ACTIONS::toggleERCWarnings, ACTION_MENU::CHECK ); - viewMenu->Add( EE_ACTIONS::toggleERCExclusions, ACTION_MENU::CHECK ); - viewMenu->Add( EE_ACTIONS::toggleOPVoltages, ACTION_MENU::CHECK ); - viewMenu->Add( EE_ACTIONS::toggleOPCurrents, ACTION_MENU::CHECK ); + viewMenu->Add( EE_ACTIONS::toggleHiddenPins, ACTION_MENU::CHECK ); + viewMenu->Add( EE_ACTIONS::toggleHiddenFields, ACTION_MENU::CHECK ); + viewMenu->Add( EE_ACTIONS::toggleDirectiveLabels, ACTION_MENU::CHECK ); + viewMenu->Add( EE_ACTIONS::toggleERCErrors, ACTION_MENU::CHECK ); + viewMenu->Add( EE_ACTIONS::toggleERCWarnings, ACTION_MENU::CHECK ); + viewMenu->Add( EE_ACTIONS::toggleERCExclusions, ACTION_MENU::CHECK ); + viewMenu->Add( EE_ACTIONS::toggleOPVoltages, ACTION_MENU::CHECK ); + viewMenu->Add( EE_ACTIONS::toggleOPCurrents, ACTION_MENU::CHECK ); #ifdef __APPLE__ viewMenu->AppendSeparator(); diff --git a/eeschema/sch_edit_frame.cpp b/eeschema/sch_edit_frame.cpp index b6c9cf80a9..685e63cca2 100644 --- a/eeschema/sch_edit_frame.cpp +++ b/eeschema/sch_edit_frame.cpp @@ -479,6 +479,13 @@ void SCH_EDIT_FRAME::setupUIConditions() return cfg && cfg->m_Appearance.show_hidden_fields; }; + auto showDirectiveLabelsCond = + [this]( const SELECTION& ) + { + EESCHEMA_SETTINGS* cfg = eeconfig(); + return cfg && cfg->m_Appearance.show_directive_labels; + }; + auto showERCErrorsCond = [this]( const SELECTION& ) { @@ -560,22 +567,23 @@ void SCH_EDIT_FRAME::setupUIConditions() return m_toolManager->GetTool()->CanGoNext(); }; - mgr->SetConditions( EE_ACTIONS::leaveSheet, ENABLE( belowRootSheetCondition ) ); - mgr->SetConditions( EE_ACTIONS::navigateUp, ENABLE( belowRootSheetCondition ) ); - mgr->SetConditions( EE_ACTIONS::navigateForward, ENABLE( navHistoryHasForward ) ); - mgr->SetConditions( EE_ACTIONS::navigateBack, ENABLE( navHistoryHasBackward ) ); - mgr->SetConditions( EE_ACTIONS::navigatePrevious, ENABLE( navSchematicHasPreviousSheet ) ); - mgr->SetConditions( EE_ACTIONS::navigateNext, ENABLE( navSchematicHasNextSheet ) ); - mgr->SetConditions( EE_ACTIONS::remapSymbols, ENABLE( remapSymbolsCondition ) ); - mgr->SetConditions( EE_ACTIONS::toggleHiddenPins, CHECK( showHiddenPinsCond ) ); - mgr->SetConditions( EE_ACTIONS::toggleHiddenFields, CHECK( showHiddenFieldsCond ) ); - mgr->SetConditions( EE_ACTIONS::toggleERCErrors, CHECK( showERCErrorsCond ) ); - mgr->SetConditions( EE_ACTIONS::toggleERCWarnings, CHECK( showERCWarningsCond ) ); - mgr->SetConditions( EE_ACTIONS::toggleERCExclusions, CHECK( showERCExclusionsCond ) ); - mgr->SetConditions( EE_ACTIONS::toggleOPVoltages, CHECK( showOPVoltagesCond ) ); - mgr->SetConditions( EE_ACTIONS::toggleOPCurrents, CHECK( showOPCurrentsCond ) ); - mgr->SetConditions( EE_ACTIONS::toggleAnnotateAuto, CHECK( showAnnotateAutomaticallyCond ) ); - mgr->SetConditions( ACTIONS::toggleBoundingBoxes, CHECK( cond.BoundingBoxes() ) ); + mgr->SetConditions( EE_ACTIONS::leaveSheet, ENABLE( belowRootSheetCondition ) ); + mgr->SetConditions( EE_ACTIONS::navigateUp, ENABLE( belowRootSheetCondition ) ); + mgr->SetConditions( EE_ACTIONS::navigateForward, ENABLE( navHistoryHasForward ) ); + mgr->SetConditions( EE_ACTIONS::navigateBack, ENABLE( navHistoryHasBackward ) ); + mgr->SetConditions( EE_ACTIONS::navigatePrevious, ENABLE( navSchematicHasPreviousSheet ) ); + mgr->SetConditions( EE_ACTIONS::navigateNext, ENABLE( navSchematicHasNextSheet ) ); + mgr->SetConditions( EE_ACTIONS::remapSymbols, ENABLE( remapSymbolsCondition ) ); + mgr->SetConditions( EE_ACTIONS::toggleHiddenPins, CHECK( showHiddenPinsCond ) ); + mgr->SetConditions( EE_ACTIONS::toggleHiddenFields, CHECK( showHiddenFieldsCond ) ); + mgr->SetConditions( EE_ACTIONS::toggleDirectiveLabels, CHECK( showDirectiveLabelsCond ) ); + mgr->SetConditions( EE_ACTIONS::toggleERCErrors, CHECK( showERCErrorsCond ) ); + mgr->SetConditions( EE_ACTIONS::toggleERCWarnings, CHECK( showERCWarningsCond ) ); + mgr->SetConditions( EE_ACTIONS::toggleERCExclusions, CHECK( showERCExclusionsCond ) ); + mgr->SetConditions( EE_ACTIONS::toggleOPVoltages, CHECK( showOPVoltagesCond ) ); + mgr->SetConditions( EE_ACTIONS::toggleOPCurrents, CHECK( showOPCurrentsCond ) ); + mgr->SetConditions( EE_ACTIONS::toggleAnnotateAuto, CHECK( showAnnotateAutomaticallyCond ) ); + mgr->SetConditions( ACTIONS::toggleBoundingBoxes, CHECK( cond.BoundingBoxes() ) ); #define CURRENT_TOOL( action ) mgr->SetConditions( action, CHECK( cond.CurrentTool( action ) ) ) diff --git a/eeschema/sch_painter.cpp b/eeschema/sch_painter.cpp index fedbeed3d9..ec336dd9ca 100644 --- a/eeschema/sch_painter.cpp +++ b/eeschema/sch_painter.cpp @@ -2720,6 +2720,9 @@ void SCH_PAINTER::draw( const SCH_HIERLABEL *aLabel, int aLayer ) void SCH_PAINTER::draw( const SCH_DIRECTIVE_LABEL *aLabel, int aLayer ) { + if( !eeconfig()->m_Appearance.show_directive_labels && !aLabel->IsSelected() ) + return; + bool drawingShadows = aLayer == LAYER_SELECTION_SHADOWS; if( !drawingShadows || eeconfig()->m_Selection.draw_selected_children ) diff --git a/eeschema/tools/ee_actions.cpp b/eeschema/tools/ee_actions.cpp index cdc0d32222..58109895ed 100644 --- a/eeschema/tools/ee_actions.cpp +++ b/eeschema/tools/ee_actions.cpp @@ -702,6 +702,10 @@ TOOL_ACTION EE_ACTIONS::toggleHiddenFields( "eeschema.EditorControl.showHiddenFi AS_GLOBAL, 0, "", _( "Show Hidden Fields" ), _( "Toggle display of hidden text fields" ) ); +TOOL_ACTION EE_ACTIONS::toggleDirectiveLabels( "eeschema.EditorControl.showDirectiveLabels", + AS_GLOBAL, 0, "", + _( "Show Directive Labels" ), _( "Toggle display of directive labels" ) ); + TOOL_ACTION EE_ACTIONS::toggleERCWarnings( "eeschema.EditorControl.showERCWarnings", AS_GLOBAL, 0, "", _( "Show ERC Warnings" ), _( "Show markers for electrical rules checker warnings" ) ); diff --git a/eeschema/tools/ee_actions.h b/eeschema/tools/ee_actions.h index df9140151d..6e8fc79d74 100644 --- a/eeschema/tools/ee_actions.h +++ b/eeschema/tools/ee_actions.h @@ -214,6 +214,7 @@ public: // Miscellaneous static TOOL_ACTION toggleHiddenPins; static TOOL_ACTION toggleHiddenFields; + static TOOL_ACTION toggleDirectiveLabels; static TOOL_ACTION toggleERCWarnings; static TOOL_ACTION toggleERCErrors; static TOOL_ACTION toggleERCExclusions; diff --git a/eeschema/tools/ee_selection_tool.cpp b/eeschema/tools/ee_selection_tool.cpp index 345bf0af36..fc7f9729b4 100644 --- a/eeschema/tools/ee_selection_tool.cpp +++ b/eeschema/tools/ee_selection_tool.cpp @@ -1815,6 +1815,12 @@ bool EE_SELECTION_TOOL::Selectable( const EDA_ITEM* aItem, const VECTOR2I* aPos, break; } + case SCH_DIRECTIVE_LABEL_T: + if( !m_frame->eeconfig()->m_Appearance.show_directive_labels ) + return false; + + break; + case LIB_SYMBOL_T: // In symbol_editor we do not want to select the symbol itself. return false; diff --git a/eeschema/tools/sch_editor_control.cpp b/eeschema/tools/sch_editor_control.cpp index a4503f3320..2cc2076f42 100644 --- a/eeschema/tools/sch_editor_control.cpp +++ b/eeschema/tools/sch_editor_control.cpp @@ -2106,6 +2106,18 @@ int SCH_EDITOR_CONTROL::ToggleHiddenFields( const TOOL_EVENT& aEvent ) } +int SCH_EDITOR_CONTROL::ToggleDirectiveLabels( const TOOL_EVENT& aEvent ) +{ + EESCHEMA_SETTINGS* cfg = m_frame->eeconfig(); + cfg->m_Appearance.show_directive_labels = !cfg->m_Appearance.show_directive_labels; + + getView()->UpdateAllItems( KIGFX::REPAINT ); + m_frame->GetCanvas()->Refresh(); + + return 0; +} + + int SCH_EDITOR_CONTROL::ToggleERCWarnings( const TOOL_EVENT& aEvent ) { EESCHEMA_SETTINGS* cfg = m_frame->eeconfig(); @@ -2357,6 +2369,7 @@ void SCH_EDITOR_CONTROL::setTransitions() Go( &SCH_EDITOR_CONTROL::ToggleHiddenPins, EE_ACTIONS::toggleHiddenPins.MakeEvent() ); Go( &SCH_EDITOR_CONTROL::ToggleHiddenFields, EE_ACTIONS::toggleHiddenFields.MakeEvent() ); + Go( &SCH_EDITOR_CONTROL::ToggleDirectiveLabels, EE_ACTIONS::toggleDirectiveLabels.MakeEvent() ); Go( &SCH_EDITOR_CONTROL::ToggleERCWarnings, EE_ACTIONS::toggleERCWarnings.MakeEvent() ); Go( &SCH_EDITOR_CONTROL::ToggleERCErrors, EE_ACTIONS::toggleERCErrors.MakeEvent() ); Go( &SCH_EDITOR_CONTROL::ToggleERCExclusions, EE_ACTIONS::toggleERCExclusions.MakeEvent() ); diff --git a/eeschema/tools/sch_editor_control.h b/eeschema/tools/sch_editor_control.h index cc5c535b34..ff2f7451bf 100644 --- a/eeschema/tools/sch_editor_control.h +++ b/eeschema/tools/sch_editor_control.h @@ -127,6 +127,7 @@ public: int ToggleHiddenPins( const TOOL_EVENT& aEvent ); int ToggleHiddenFields( const TOOL_EVENT& aEvent ); + int ToggleDirectiveLabels( const TOOL_EVENT& aEvent ); int ToggleERCWarnings( const TOOL_EVENT& aEvent ); int ToggleERCErrors( const TOOL_EVENT& aEvent ); int ToggleERCExclusions( const TOOL_EVENT& aEvent );