mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-09-14 02:03:12 +02:00
Hop-over improvements.
1) Move hop-over enablement to Schematic Setup. 2) Make hop-over size user configurable. 3) Prefer hop-overs to hop-unders.
This commit is contained in:
parent
716e446e06
commit
2cd6654e81
@ -312,8 +312,6 @@ ADVANCED_CFG::ADVANCED_CFG()
|
||||
|
||||
m_MaxPastedTextLength = 100;
|
||||
|
||||
m_hopOverArcRadius = 2.5;
|
||||
|
||||
loadFromConfigFile();
|
||||
}
|
||||
|
||||
|
@ -71,7 +71,7 @@ JOB_EXPORT_SCH_PLOT::JOB_EXPORT_SCH_PLOT( bool aOutputIsDirectory ) :
|
||||
&m_blackAndWhite, m_blackAndWhite ) );
|
||||
|
||||
m_params.emplace_back( new JOB_PARAM<bool>( "show_hop_over",
|
||||
&m_blackAndWhite, m_show_hop_over ) );
|
||||
&m_show_hop_over, m_show_hop_over ) );
|
||||
|
||||
m_params.emplace_back( new JOB_PARAM<JOB_PAGE_SIZE>( "page_size",
|
||||
&m_pageSizeSelect, m_pageSizeSelect ) );
|
||||
|
@ -432,7 +432,7 @@ void DIALOG_PLOT_SCHEMATIC::plotSchematic( bool aPlotAll )
|
||||
plotOpts.m_PDFMetadata = m_plotPDFMetadata->GetValue();
|
||||
plotOpts.m_outputDirectory = getOutputPath();
|
||||
plotOpts.m_pageSizeSelect = m_pageSizeSelect;
|
||||
plotOpts.m_plotHopOver = cfg ? cfg->m_Appearance.show_hop_over : false;
|
||||
plotOpts.m_plotHopOver = m_editFrame->Schematic().Settings().m_HopOverScale > 0.0;
|
||||
|
||||
schPlotter->Plot( GetPlotFileFormat(), plotOpts, &renderSettings, &m_MessagesBox->Reporter() );
|
||||
|
||||
|
@ -62,7 +62,6 @@ void PANEL_EESCHEMA_DISPLAY_OPTIONS::loadEEschemaSettings( EESCHEMA_SETTINGS* cf
|
||||
m_checkShowOPVoltages->SetValue( cfg->m_Appearance.show_op_voltages );
|
||||
m_checkShowPinAltModeIcons->SetValue( cfg->m_Appearance.show_op_currents );
|
||||
m_checkPageLimits->SetValue( cfg->m_Appearance.show_page_limits );
|
||||
m_cbHopOver->SetValue( cfg->m_Appearance.show_hop_over );
|
||||
|
||||
m_checkSelDrawChildItems->SetValue( cfg->m_Selection.draw_selected_children );
|
||||
m_checkSelFillShapes->SetValue( cfg->m_Selection.fill_shapes );
|
||||
@ -105,7 +104,6 @@ bool PANEL_EESCHEMA_DISPLAY_OPTIONS::TransferDataFromWindow()
|
||||
cfg->m_Appearance.show_op_currents = m_checkShowOPCurrents->GetValue();
|
||||
cfg->m_Appearance.show_pin_alt_icons = m_checkShowPinAltModeIcons->GetValue();
|
||||
cfg->m_Appearance.show_page_limits = m_checkPageLimits->GetValue();
|
||||
cfg->m_Appearance.show_hop_over = m_cbHopOver->GetValue();
|
||||
|
||||
cfg->m_Selection.draw_selected_children = m_checkSelDrawChildItems->GetValue();
|
||||
cfg->m_Selection.fill_shapes = m_checkSelFillShapes->GetValue();
|
||||
|
@ -135,11 +135,6 @@ PANEL_EESCHEMA_DISPLAY_OPTIONS_BASE::PANEL_EESCHEMA_DISPLAY_OPTIONS_BASE( wxWind
|
||||
m_checkPageLimits->SetValue(true);
|
||||
bAppearanceSizer->Add( m_checkPageLimits, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_cbHopOver = new wxCheckBox( this, wxID_ANY, _("Hop hover on wire crossing"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cbHopOver->SetToolTip( _("Show a hop hover when two wires are crossing") );
|
||||
|
||||
bAppearanceSizer->Add( m_cbHopOver, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
|
||||
bRightColumn->Add( bAppearanceSizer, 0, wxEXPAND|wxTOP|wxLEFT, 5 );
|
||||
|
||||
|
@ -1432,71 +1432,6 @@
|
||||
<property name="window_style"></property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</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">0</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">Hop hover on wire crossing</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_cbHopOver</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">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip">Show a hop hover when two wires are crossing</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 class="sizeritem" expanded="false">
|
||||
|
@ -58,7 +58,6 @@ class PANEL_EESCHEMA_DISPLAY_OPTIONS_BASE : public RESETTABLE_PANEL
|
||||
wxCheckBox* m_checkShowOPCurrents;
|
||||
wxCheckBox* m_checkShowPinAltModeIcons;
|
||||
wxCheckBox* m_checkPageLimits;
|
||||
wxCheckBox* m_cbHopOver;
|
||||
wxStaticText* m_selectionLabel;
|
||||
wxStaticLine* m_staticline2;
|
||||
wxCheckBox* m_checkSelDrawChildItems;
|
||||
|
@ -95,6 +95,7 @@ bool PANEL_SETUP_FORMATTING::TransferDataToWindow()
|
||||
m_lineWidth.SetValue( settings.m_DefaultLineWidth );
|
||||
m_pinSymbolSize.SetValue( settings.m_PinSymbolSize );
|
||||
m_choiceJunctionDotSize->SetSelection( settings.m_JunctionSizeChoice );
|
||||
m_choiceHopOverSize->SetSelection( settings.m_HopOverSizeChoice );
|
||||
m_connectionGridSize.SetValue( settings.m_ConnectionGridSize );
|
||||
|
||||
m_showIntersheetsReferences->SetValue( settings.m_IntersheetRefsShow );
|
||||
@ -162,6 +163,9 @@ bool PANEL_SETUP_FORMATTING::TransferDataFromWindow()
|
||||
if( m_choiceJunctionDotSize->GetSelection() != wxNOT_FOUND )
|
||||
settings.m_JunctionSizeChoice = m_choiceJunctionDotSize->GetSelection();
|
||||
|
||||
if( m_choiceHopOverSize->GetSelection() != wxNOT_FOUND )
|
||||
settings.m_HopOverSizeChoice = m_choiceHopOverSize->GetSelection();
|
||||
|
||||
settings.m_IntersheetRefsShow = m_showIntersheetsReferences->GetValue();
|
||||
settings.m_IntersheetRefsFormatShort = !m_radioFormatStandard->GetValue();
|
||||
settings.m_IntersheetRefsPrefix = m_prefixCtrl->GetValue();
|
||||
|
@ -1,5 +1,5 @@
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b)
|
||||
// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||
@ -155,9 +155,9 @@ PANEL_SETUP_FORMATTING_BASE::PANEL_SETUP_FORMATTING_BASE( wxWindow* parent, wxWi
|
||||
gbSizer1->SetFlexibleDirection( wxBOTH );
|
||||
gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||
|
||||
m_staticText261 = new wxStaticText( sbSizer2->GetStaticBox(), wxID_ANY, _("Junction dot size:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText261->Wrap( -1 );
|
||||
gbSizer1->Add( m_staticText261, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
m_junctionDotLabel = new wxStaticText( sbSizer2->GetStaticBox(), wxID_ANY, _("Junction dot size:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_junctionDotLabel->Wrap( -1 );
|
||||
gbSizer1->Add( m_junctionDotLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
wxString m_choiceJunctionDotSizeChoices[] = { _("None"), _("Smallest"), _("Small"), _("Default"), _("Large"), _("Largest") };
|
||||
int m_choiceJunctionDotSizeNChoices = sizeof( m_choiceJunctionDotSizeChoices ) / sizeof( wxString );
|
||||
@ -165,16 +165,26 @@ PANEL_SETUP_FORMATTING_BASE::PANEL_SETUP_FORMATTING_BASE( wxWindow* parent, wxWi
|
||||
m_choiceJunctionDotSize->SetSelection( 3 );
|
||||
gbSizer1->Add( m_choiceJunctionDotSize, wxGBPosition( 0, 1 ), wxGBSpan( 1, 2 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
|
||||
|
||||
m_hopOverLabel = new wxStaticText( sbSizer2->GetStaticBox(), wxID_ANY, _("Hop-over size:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_hopOverLabel->Wrap( -1 );
|
||||
gbSizer1->Add( m_hopOverLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
wxString m_choiceHopOverSizeChoices[] = { _("None"), _("Smallest"), _("Small"), _("Medium"), _("Large"), _("Largest") };
|
||||
int m_choiceHopOverSizeNChoices = sizeof( m_choiceHopOverSizeChoices ) / sizeof( wxString );
|
||||
m_choiceHopOverSize = new wxChoice( sbSizer2->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceHopOverSizeNChoices, m_choiceHopOverSizeChoices, 0 );
|
||||
m_choiceHopOverSize->SetSelection( 0 );
|
||||
gbSizer1->Add( m_choiceHopOverSize, wxGBPosition( 1, 1 ), wxGBSpan( 1, 2 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_connectionGridLabel = new wxStaticText( sbSizer2->GetStaticBox(), wxID_ANY, _("Connection grid:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_connectionGridLabel->Wrap( -1 );
|
||||
gbSizer1->Add( m_connectionGridLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
gbSizer1->Add( m_connectionGridLabel, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_connectionGridCtrl = new wxTextCtrl( sbSizer2->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
gbSizer1->Add( m_connectionGridCtrl, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
|
||||
gbSizer1->Add( m_connectionGridCtrl, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
|
||||
|
||||
m_connectionGridUnits = new wxStaticText( sbSizer2->GetStaticBox(), wxID_ANY, _("mils"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_connectionGridUnits->Wrap( -1 );
|
||||
gbSizer1->Add( m_connectionGridUnits, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
gbSizer1->Add( m_connectionGridUnits, wxGBPosition( 2, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
|
||||
gbSizer1->AddGrowableCol( 1 );
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b)
|
||||
// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||
@ -61,8 +61,10 @@ class PANEL_SETUP_FORMATTING_BASE : public wxPanel
|
||||
wxStaticText* m_pinSymbolSizeLabel;
|
||||
wxTextCtrl* m_pinSymbolSizeCtrl;
|
||||
wxStaticText* m_pinSymbolSizeUnits;
|
||||
wxStaticText* m_staticText261;
|
||||
wxStaticText* m_junctionDotLabel;
|
||||
wxChoice* m_choiceJunctionDotSize;
|
||||
wxStaticText* m_hopOverLabel;
|
||||
wxChoice* m_choiceHopOverSize;
|
||||
wxStaticText* m_connectionGridLabel;
|
||||
wxTextCtrl* m_connectionGridCtrl;
|
||||
wxStaticText* m_connectionGridUnits;
|
||||
|
@ -60,6 +60,7 @@ bool SCH_EDIT_FRAME::LoadProjectSettings()
|
||||
{
|
||||
SCHEMATIC_SETTINGS& settings = Schematic().Settings();
|
||||
settings.m_JunctionSize = GetSchematicJunctionSize();
|
||||
settings.m_HopOverScale = GetSchematicHopOverScale();
|
||||
|
||||
GetRenderSettings()->SetDefaultPenWidth( settings.m_DefaultLineWidth );
|
||||
GetRenderSettings()->m_LabelSizeRatio = settings.m_LabelSizeRatio;
|
||||
@ -192,6 +193,14 @@ int SCH_EDIT_FRAME::GetSchematicJunctionSize()
|
||||
}
|
||||
|
||||
|
||||
double SCH_EDIT_FRAME::GetSchematicHopOverScale()
|
||||
{
|
||||
std::vector<double>& sizeMultipliers = eeconfig()->m_Drawing.junction_size_mult_list;
|
||||
|
||||
return sizeMultipliers[Schematic().Settings().m_HopOverSizeChoice];
|
||||
}
|
||||
|
||||
|
||||
void SCH_EDIT_FRAME::saveProjectSettings()
|
||||
{
|
||||
wxFileName fn = Schematic().RootScreen()->GetFileName(); //ConfigFileName
|
||||
|
@ -244,9 +244,6 @@ EESCHEMA_SETTINGS::EESCHEMA_SETTINGS() :
|
||||
m_params.emplace_back( new PARAM<bool>( "appearance.show_page_limits",
|
||||
&m_Appearance.show_page_limits, true ) );
|
||||
|
||||
m_params.emplace_back( new PARAM<bool>( "appearance.show_hop_over",
|
||||
&m_Appearance.show_hop_over, false ) );
|
||||
|
||||
m_params.emplace_back( new PARAM<bool>( "appearance.show_sexpr_file_convert_warning",
|
||||
&m_Appearance.show_sexpr_file_convert_warning, true ) );
|
||||
|
||||
@ -385,9 +382,12 @@ EESCHEMA_SETTINGS::EESCHEMA_SETTINGS() :
|
||||
m_params.emplace_back( new PARAM_LIST<double>( "drawing.junction_size_mult_list",
|
||||
&m_Drawing.junction_size_mult_list, { 0.0, 1.7, 4.0, 6.0, 9.0, 12.0 } ) );
|
||||
|
||||
m_params.emplace_back(new PARAM <int>( "drawing.junction_size_choice",
|
||||
m_params.emplace_back( new PARAM<int>( "drawing.junction_size_choice",
|
||||
&m_Drawing.junction_size_choice, 3 ) );
|
||||
|
||||
m_params.emplace_back( new PARAM<int>( "drawing.hop_over_size_choice",
|
||||
&m_Drawing.hop_over_size_choice, 0 ) );
|
||||
|
||||
m_params.emplace_back( new PARAM<bool>( "find_replace.search_all_fields",
|
||||
&m_FindReplaceExtra.search_all_fields, false ) );
|
||||
|
||||
|
@ -87,7 +87,6 @@ public:
|
||||
bool show_pin_alt_icons;
|
||||
bool show_illegal_symbol_lib_dialog;
|
||||
bool show_page_limits;
|
||||
bool show_hop_over;
|
||||
bool show_sexpr_file_convert_warning;
|
||||
bool show_sheet_filename_case_sensitivity_dialog;
|
||||
};
|
||||
@ -179,8 +178,9 @@ public:
|
||||
bool auto_start_wires;
|
||||
std::vector<double> junction_size_mult_list;
|
||||
|
||||
// Pulldown index for user default junction dot size (e.g. smallest = 0, small = 1, etc)
|
||||
// Pulldown index for user default junction dot size (e.g. none = 0, smallest = 1, small = 2, etc)
|
||||
int junction_size_choice;
|
||||
int hop_over_size_choice;
|
||||
};
|
||||
|
||||
struct INPUT
|
||||
|
@ -1903,6 +1903,7 @@ void SCH_EDIT_FRAME::CommonSettingsChanged( int aFlags )
|
||||
SCHEMATIC_SETTINGS& settings = Schematic().Settings();
|
||||
|
||||
settings.m_JunctionSize = GetSchematicJunctionSize();
|
||||
settings.m_HopOverScale = GetSchematicHopOverScale();
|
||||
|
||||
ShowAllIntersheetRefs( settings.m_IntersheetRefsShow );
|
||||
|
||||
@ -1929,8 +1930,18 @@ void SCH_EDIT_FRAME::CommonSettingsChanged( int aFlags )
|
||||
SCH_SCREEN* screen = GetCurrentSheet().LastScreen();
|
||||
|
||||
for( SCH_ITEM* item : screen->Items() )
|
||||
{
|
||||
item->ClearCaches();
|
||||
|
||||
if( item->Type() == SCH_LINE_T )
|
||||
{
|
||||
SCH_LINE* line = static_cast<SCH_LINE*>( item );
|
||||
|
||||
if( line->IsWire() )
|
||||
UpdateHopOveredWires( line );
|
||||
}
|
||||
}
|
||||
|
||||
for( const auto& [ libItemName, libSymbol ] : screen->GetLibSymbols() )
|
||||
libSymbol->ClearCaches();
|
||||
|
||||
|
@ -767,6 +767,7 @@ public:
|
||||
const BOX2I GetDocumentExtents( bool aIncludeAllVisible = true ) const override;
|
||||
|
||||
int GetSchematicJunctionSize();
|
||||
double GetSchematicHopOverScale();
|
||||
|
||||
void FocusOnItem( EDA_ITEM* aItem ) override;
|
||||
|
||||
|
@ -1096,7 +1096,8 @@ std::vector<VECTOR3I> SCH_LINE::BuildWireWithHopShape( const SCH_SCREEN* aScreen
|
||||
}
|
||||
else
|
||||
{
|
||||
auto getDistance = []( const VECTOR2I& a, const VECTOR2I& b ) -> double
|
||||
auto getDistance =
|
||||
[]( const VECTOR2I& a, const VECTOR2I& b ) -> double
|
||||
{
|
||||
return std::sqrt( std::pow( a.x - b.x, 2 ) + std::pow( a.y - b.y, 2 ) );
|
||||
};
|
||||
@ -1137,7 +1138,7 @@ std::vector<VECTOR3I> SCH_LINE::BuildWireWithHopShape( const SCH_SCREEN* aScreen
|
||||
VECTOR2I arcMidPoint = {
|
||||
hopMid.x + static_cast<int>( arcRadius
|
||||
* cos( ( startAngleRad + endAngleRad ) / 2.0f ) ),
|
||||
hopMid.y + static_cast<int>( arcRadius
|
||||
hopMid.y - static_cast<int>( arcRadius
|
||||
* sin( ( startAngleRad + endAngleRad ) / 2.0f ) )
|
||||
};
|
||||
|
||||
|
@ -1364,11 +1364,10 @@ void SCH_PAINTER::draw( const SCH_LINE* aLine, int aLayer )
|
||||
bool highlightNetclassColors = false;
|
||||
double highlightAlpha = 0.6;
|
||||
EESCHEMA_SETTINGS* eeschemaCfg = eeconfig();
|
||||
bool showHopOver = false;
|
||||
double hopOverScale = aLine->Schematic()->Settings().m_HopOverScale;
|
||||
|
||||
if( eeschemaCfg )
|
||||
{
|
||||
showHopOver = eeschemaCfg->m_Appearance.show_hop_over;
|
||||
highlightNetclassColors = eeschemaCfg->m_Selection.highlight_netclass_colors;
|
||||
highlightAlpha = eeschemaCfg->m_Selection.highlight_netclass_colors_alpha;
|
||||
}
|
||||
@ -1485,10 +1484,10 @@ void SCH_PAINTER::draw( const SCH_LINE* aLine, int aLayer )
|
||||
|
||||
std::vector<VECTOR3I> curr_wire_shape;
|
||||
|
||||
if( aLine->IsWire() && showHopOver )
|
||||
if( aLine->IsWire() && hopOverScale > 0.0 )
|
||||
{
|
||||
double lineWidth = getLineWidth( aLine, false, drawingNetColorHighlights );
|
||||
double arcRadius = lineWidth * ADVANCED_CFG::GetCfg().m_hopOverArcRadius;
|
||||
double arcRadius = lineWidth * hopOverScale;
|
||||
curr_wire_shape = aLine->BuildWireWithHopShape( m_schematic->GetCurrentScreen(), arcRadius );
|
||||
}
|
||||
else
|
||||
|
@ -925,10 +925,12 @@ void SCH_SCREEN::Plot( PLOTTER* aPlotter, const SCH_PLOT_OPTS& aPlotOpts ) const
|
||||
SCH_LINE* aLine = static_cast<SCH_LINE*>( item );
|
||||
|
||||
if( !aLine->IsWire() || !aPlotOpts.m_plotHopOver )
|
||||
{
|
||||
item->Plot( aPlotter, !background, aPlotOpts, 0, 0, { 0, 0 }, false );
|
||||
}
|
||||
else
|
||||
{
|
||||
double arcRadius = lineWidth * ADVANCED_CFG::GetCfg().m_hopOverArcRadius;
|
||||
double arcRadius = lineWidth * aLine->Schematic()->Settings().m_HopOverScale;
|
||||
std::vector<VECTOR3I> curr_wire_shape = aLine->BuildWireWithHopShape( this, arcRadius );
|
||||
|
||||
for( size_t ii = 1; ii < curr_wire_shape.size(); ii++ )
|
||||
|
@ -45,6 +45,8 @@ SCHEMATIC_SETTINGS::SCHEMATIC_SETTINGS( JSON_SETTINGS* aParent, const std::strin
|
||||
m_PinSymbolSize( DEFAULT_TEXT_SIZE * schIUScale.IU_PER_MILS / 2 ),
|
||||
m_JunctionSizeChoice( 3 ),
|
||||
m_JunctionSize( DEFAULT_JUNCTION_DIAM * schIUScale.IU_PER_MILS ),
|
||||
m_HopOverSizeChoice( 0 ),
|
||||
m_HopOverScale( 0.0 ),
|
||||
m_ConnectionGridSize( DEFAULT_CONNECTION_GRID_MILS * schIUScale.IU_PER_MILS ),
|
||||
m_AnnotateStartNum( 0 ),
|
||||
m_IntersheetRefsShow( false ),
|
||||
@ -73,6 +75,7 @@ SCHEMATIC_SETTINGS::SCHEMATIC_SETTINGS( JSON_SETTINGS* aParent, const std::strin
|
||||
int defaultTextSize = cfg ? cfg->m_Drawing.default_text_size : DEFAULT_TEXT_SIZE;
|
||||
int defaultPinSymbolSize = cfg ? cfg->m_Drawing.pin_symbol_size : DEFAULT_TEXT_SIZE / 2;
|
||||
int defaultJunctionSizeChoice = cfg ? cfg->m_Drawing.junction_size_choice : 3;
|
||||
int defaultHopOverSizeChoice = cfg ? cfg->m_Drawing.hop_over_size_choice : 0;
|
||||
bool defaultIntersheetsRefShow = cfg ? cfg->m_Drawing.intersheets_ref_show : false;
|
||||
bool defaultIntersheetsRefOwnPage = cfg ? cfg->m_Drawing.intersheets_ref_own_page : true;
|
||||
bool defaultIntersheetsRefFormatShort = cfg ? cfg->m_Drawing.intersheets_ref_short : false;
|
||||
@ -146,6 +149,9 @@ SCHEMATIC_SETTINGS::SCHEMATIC_SETTINGS( JSON_SETTINGS* aParent, const std::strin
|
||||
m_params.emplace_back( new PARAM<int>( "drawing.junction_size_choice",
|
||||
&m_JunctionSizeChoice, defaultJunctionSizeChoice ) );
|
||||
|
||||
m_params.emplace_back( new PARAM<int>( "drawing.hop_over_size_choice",
|
||||
&m_HopOverSizeChoice, defaultHopOverSizeChoice ) );
|
||||
|
||||
m_params.emplace_back( new PARAM_LAMBDA<nlohmann::json>( "drawing.field_names",
|
||||
[&]() -> nlohmann::json
|
||||
{
|
||||
|
@ -62,6 +62,9 @@ public:
|
||||
int m_JunctionSizeChoice; // none = 0, smallest = 1, small = 2, etc.
|
||||
int m_JunctionSize; // a runtime cache of the calculated size
|
||||
|
||||
int m_HopOverSizeChoice; // none = 0, smallest = 1, etc.
|
||||
double m_HopOverScale; // a runtime cache of the calculated lineWidth multiplier
|
||||
|
||||
int m_ConnectionGridSize; // usually 50mils (IU internally; mils in the JSON file)
|
||||
|
||||
int m_AnnotateStartNum; // Starting value for annotation
|
||||
|
@ -559,7 +559,7 @@ void SCH_EDIT_FRAME::PutDataInPreviousState( PICKED_ITEMS_LIST* aList )
|
||||
SetSheetNumberAndCount();
|
||||
|
||||
// Restore hop over shapes of wires, if any
|
||||
if( eeconfig()->m_Appearance.show_hop_over )
|
||||
if( m_schematic->Settings().m_HopOverScale > 0.0 )
|
||||
{
|
||||
for( SCH_ITEM* item : GetScreen()->Items() )
|
||||
{
|
||||
|
@ -713,15 +713,6 @@ public:
|
||||
*/
|
||||
double m_MinimumMarkerSeparationDistance;
|
||||
|
||||
/**
|
||||
* Default value for the Hop-Over Arc Radius, used to calculate the arc radius by multiplying
|
||||
* the line width when drawing a hop-over in scenarios where a wire crosses another.
|
||||
*
|
||||
* Setting name: "HopOverArcRadius"
|
||||
* Default value: 2.5
|
||||
*/
|
||||
double m_hopOverArcRadius;
|
||||
|
||||
/**
|
||||
* When updating the net inspector, it either recalculates all nets or iterates through items
|
||||
* one-by-one. This value controls the threshold at which all nets are recalculated rather than
|
||||
|
Loading…
x
Reference in New Issue
Block a user