Push panel_setup_netclasses down into common.
This commit is contained in:
parent
d85a707385
commit
2819570d1e
|
@ -184,6 +184,9 @@ set( COMMON_DLG_SRCS
|
|||
dialogs/panel_hotkeys_editor.cpp
|
||||
dialogs/panel_mouse_settings.cpp
|
||||
dialogs/panel_mouse_settings_base.cpp
|
||||
dialogs/panel_setup_netclasses.cpp
|
||||
dialogs/panel_setup_netclasses_base.cpp
|
||||
dialogs/panel_setup_severities.cpp
|
||||
dialogs/panel_text_variables.cpp
|
||||
dialogs/panel_text_variables_base.cpp
|
||||
dialogs/wx_html_report_panel.cpp
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
*
|
||||
* Copyright (C) 2004-2009 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 2009 Dick Hollenbeck, dick@softplc.com
|
||||
* Copyright (C) 2009-2019 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
* Copyright (C) 2009-2020 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
|
@ -25,13 +25,13 @@
|
|||
|
||||
#include <base_units.h>
|
||||
#include <bitmaps.h>
|
||||
#include <board_design_settings.h>
|
||||
#include <netclass.h>
|
||||
#include <confirm.h>
|
||||
#include <grid_tricks.h>
|
||||
#include <panel_setup_netclasses.h>
|
||||
#include <pcb_edit_frame.h>
|
||||
#include <tool/tool_manager.h>
|
||||
#include <widgets/wx_grid.h>
|
||||
#include <kicad_string.h>
|
||||
|
||||
// Columns of netclasses grid
|
||||
enum {
|
||||
|
@ -48,16 +48,11 @@ enum {
|
|||
};
|
||||
|
||||
|
||||
PANEL_SETUP_NETCLASSES::PANEL_SETUP_NETCLASSES( PAGED_DIALOG* aParent, PCB_EDIT_FRAME* aFrame,
|
||||
PANEL_SETUP_FEATURE_CONSTRAINTS* aConstraintsPanel ) :
|
||||
PANEL_SETUP_NETCLASSES_BASE( aParent->GetTreebook() )
|
||||
PANEL_SETUP_NETCLASSES::PANEL_SETUP_NETCLASSES( PAGED_DIALOG* aParent, NETCLASSES* aNetclasses ) :
|
||||
PANEL_SETUP_NETCLASSES_BASE( aParent->GetTreebook() ),
|
||||
m_Parent( aParent ),
|
||||
m_Netclasses( aNetclasses )
|
||||
{
|
||||
m_Parent = aParent;
|
||||
m_Frame = aFrame;
|
||||
m_Pcb = m_Frame->GetBoard();
|
||||
m_BrdSettings = &m_Pcb->GetDesignSettings();
|
||||
m_ConstraintsPanel = aConstraintsPanel;
|
||||
|
||||
m_netclassesDirty = true;
|
||||
|
||||
// Figure out the smallest the netclass membership pane can ever be so that nothing is cutoff
|
||||
|
@ -152,15 +147,20 @@ static void netclassToGridRow( EDA_UNITS aUnits, wxGrid* aGrid, int aRow, const
|
|||
|
||||
bool PANEL_SETUP_NETCLASSES::TransferDataToWindow()
|
||||
{
|
||||
NETCLASSES& netclasses = m_BrdSettings->GetNetClasses();
|
||||
NETCLASSPTR netclass = netclasses.GetDefault();
|
||||
NETCLASSPTR netclass = m_Netclasses->GetDefault();
|
||||
|
||||
std::map<wxString, wxString> netToNetclassMap;
|
||||
|
||||
if( m_netclassGrid->GetNumberRows() )
|
||||
m_netclassGrid->DeleteRows( 0, m_netclassGrid->GetNumberRows() );
|
||||
m_netclassGrid->AppendRows( netclasses.GetCount() + 1 ); // + 1 for default netclass
|
||||
|
||||
m_netclassGrid->AppendRows( (int) m_Netclasses->GetCount() + 1 ); // + 1 for default netclass
|
||||
|
||||
// enter the Default NETCLASS.
|
||||
netclassToGridRow( m_Frame->GetUserUnits(), m_netclassGrid, 0, netclass );
|
||||
netclassToGridRow( m_Parent->GetUserUnits(), m_netclassGrid, 0, netclass );
|
||||
|
||||
for( const wxString& net : *netclass )
|
||||
netToNetclassMap[ net ] = netclass->GetName();
|
||||
|
||||
// make the Default NETCLASS name read-only
|
||||
wxGridCellAttr* cellAttr = m_netclassGrid->GetOrCreateCellAttr( 0, GRID_NAME );
|
||||
|
@ -170,26 +170,28 @@ bool PANEL_SETUP_NETCLASSES::TransferDataToWindow()
|
|||
// enter other netclasses
|
||||
int row = 1;
|
||||
|
||||
for( NETCLASSES::iterator i = netclasses.begin(); i != netclasses.end(); ++i, ++row )
|
||||
netclassToGridRow( m_Frame->GetUserUnits(), m_netclassGrid, row, i->second );
|
||||
for( NETCLASSES::iterator i = m_Netclasses->begin(); i != m_Netclasses->end(); ++i, ++row )
|
||||
{
|
||||
netclass = i->second;
|
||||
|
||||
// ensure that all nets have net classes assigned
|
||||
m_Pcb->BuildListOfNets();
|
||||
netclassToGridRow( m_Parent->GetUserUnits(), m_netclassGrid, row, netclass );
|
||||
|
||||
for( const wxString& net : *netclass )
|
||||
netToNetclassMap[ net ] = i->second->GetName();
|
||||
}
|
||||
|
||||
if( m_membershipGrid->GetNumberRows() )
|
||||
m_membershipGrid->DeleteRows( 0, m_membershipGrid->GetNumberRows() );
|
||||
|
||||
for( NETINFO_ITEM* net : m_Pcb->GetNetInfo() )
|
||||
{
|
||||
if( net->GetNet() > 0 && net->IsCurrent() )
|
||||
addNet( UnescapeString( net->GetNetname() ), net->GetNetClass()->GetName() );
|
||||
}
|
||||
// add all the nets discovered in the netclass membership lists
|
||||
for( const std::pair<const wxString, wxString>& ii : netToNetclassMap )
|
||||
addNet( UnescapeString( ii.first ), ii.second );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void PANEL_SETUP_NETCLASSES::addNet( wxString netName, const wxString& netclass )
|
||||
void PANEL_SETUP_NETCLASSES::addNet( const wxString& netName, const wxString& netclass )
|
||||
{
|
||||
int i = m_membershipGrid->GetNumberRows();
|
||||
|
||||
|
@ -250,38 +252,30 @@ bool PANEL_SETUP_NETCLASSES::TransferDataFromWindow()
|
|||
if( !validateData() )
|
||||
return false;
|
||||
|
||||
NETCLASSES& netclasses = m_BrdSettings->GetNetClasses();
|
||||
|
||||
// Remove all netclasses from board. We'll copy new list after
|
||||
netclasses.Clear();
|
||||
m_Netclasses->Clear();
|
||||
|
||||
// Copy the default NetClass:
|
||||
gridRowToNetclass( m_Frame->GetUserUnits(), m_netclassGrid, 0, netclasses.GetDefault());
|
||||
gridRowToNetclass( m_Parent->GetUserUnits(), m_netclassGrid, 0, m_Netclasses->GetDefault() );
|
||||
|
||||
// Copy other NetClasses :
|
||||
for( int row = 1; row < m_netclassGrid->GetNumberRows(); ++row )
|
||||
{
|
||||
NETCLASSPTR nc = std::make_shared<NETCLASS>( m_netclassGrid->GetCellValue( row, GRID_NAME ) );
|
||||
|
||||
if( netclasses.Add( nc ) )
|
||||
gridRowToNetclass( m_Frame->GetUserUnits(), m_netclassGrid, row, nc );
|
||||
if( m_Netclasses->Add( nc ) )
|
||||
gridRowToNetclass( m_Parent->GetUserUnits(), m_netclassGrid, row, nc );
|
||||
}
|
||||
|
||||
// Now read all nets and push them in the corresponding netclass net buffer
|
||||
for( int row = 0; row < m_membershipGrid->GetNumberRows(); ++row )
|
||||
{
|
||||
NETCLASSPTR nc = netclasses.Find( m_membershipGrid->GetCellValue( row, 1 ) );
|
||||
NETCLASSPTR nc = m_Netclasses->Find( m_membershipGrid->GetCellValue( row, 1 ) );
|
||||
|
||||
if( nc )
|
||||
nc->Add( m_membershipGrid->GetCellValue( row, 0 ) );
|
||||
}
|
||||
|
||||
m_Pcb->SynchronizeNetsAndNetClasses();
|
||||
m_BrdSettings->SetCurrentNetClass( NETCLASS::Default );
|
||||
|
||||
if( m_Frame->GetToolManager() )
|
||||
m_Frame->GetToolManager()->ResetTools( TOOL_BASE::MODEL_RELOAD );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -520,25 +514,12 @@ void PANEL_SETUP_NETCLASSES::OnUpdateUI( wxUpdateUIEvent& event )
|
|||
}
|
||||
|
||||
|
||||
int PANEL_SETUP_NETCLASSES::getNetclassValue( int aRow, int aCol )
|
||||
{
|
||||
return ValueFromString( m_Frame->GetUserUnits(), m_netclassGrid->GetCellValue( aRow, aCol ), true );
|
||||
}
|
||||
|
||||
|
||||
bool PANEL_SETUP_NETCLASSES::validateData()
|
||||
{
|
||||
if( !m_netclassGrid->CommitPendingChanges() || !m_membershipGrid->CommitPendingChanges() )
|
||||
return false;
|
||||
|
||||
wxString msg;
|
||||
int minViaAnnulus = m_ConstraintsPanel->m_viaMinAnnulus.GetValue();
|
||||
int minViaDia = m_ConstraintsPanel->m_viaMinSize.GetValue();
|
||||
int minThroughHole = m_ConstraintsPanel->m_throughHoleMin.GetValue();
|
||||
int minUViaDia = m_ConstraintsPanel->m_uviaMinSize.GetValue();
|
||||
int minUViaDrill = m_ConstraintsPanel->m_uviaMinDrill.GetValue();
|
||||
int minTrackWidth = m_ConstraintsPanel->m_trackMinWidth.GetValue();
|
||||
int minClearance = m_ConstraintsPanel->m_minClearance.GetValue();
|
||||
|
||||
// Test net class parameters.
|
||||
for( int row = 0; row < m_netclassGrid->GetNumberRows(); row++ )
|
||||
|
@ -549,104 +530,17 @@ bool PANEL_SETUP_NETCLASSES::validateData()
|
|||
|
||||
if( !validateNetclassName( row, netclassName, false ) )
|
||||
return false;
|
||||
|
||||
if( getNetclassValue( row, GRID_CLEARANCE ) < minClearance )
|
||||
{
|
||||
msg.Printf( _( "Clearance less than minimum clearance (%s)." ),
|
||||
StringFromValue( m_Frame->GetUserUnits(), minClearance, true, true ) );
|
||||
m_Parent->SetError( msg, this, m_netclassGrid, row, GRID_CLEARANCE );
|
||||
return false;
|
||||
}
|
||||
|
||||
if( getNetclassValue( row, GRID_TRACKSIZE ) < minTrackWidth )
|
||||
{
|
||||
msg.Printf( _( "Track width less than minimum track width (%s)." ),
|
||||
StringFromValue( m_Frame->GetUserUnits(), minTrackWidth, true, true ) );
|
||||
m_Parent->SetError( msg, this, m_netclassGrid, row, GRID_TRACKSIZE );
|
||||
return false;
|
||||
}
|
||||
|
||||
if( getNetclassValue( row, GRID_DIFF_PAIR_WIDTH ) < minTrackWidth )
|
||||
{
|
||||
msg.Printf( _( "Differential pair width less than minimum track width (%s)." ),
|
||||
StringFromValue( m_Frame->GetUserUnits(), minTrackWidth, true, true ) );
|
||||
m_Parent->SetError( msg, this, m_netclassGrid, row, GRID_DIFF_PAIR_WIDTH );
|
||||
return false;
|
||||
}
|
||||
|
||||
// Test vias
|
||||
if( getNetclassValue( row, GRID_VIASIZE ) < minViaDia )
|
||||
{
|
||||
msg.Printf( _( "Via diameter less than minimum via diameter (%s)." ),
|
||||
StringFromValue( m_Frame->GetUserUnits(), minViaDia, true, true ) );
|
||||
m_Parent->SetError( msg, this, m_netclassGrid, row, GRID_VIASIZE );
|
||||
return false;
|
||||
}
|
||||
|
||||
if( getNetclassValue( row, GRID_VIADRILL ) >= getNetclassValue( row, GRID_VIASIZE ) )
|
||||
{
|
||||
msg = _( "Via drill larger than via diameter." );
|
||||
m_Parent->SetError( msg, this, m_netclassGrid, row, GRID_VIADRILL );
|
||||
return false;
|
||||
}
|
||||
|
||||
if( ( getNetclassValue( row, GRID_VIASIZE )
|
||||
- getNetclassValue( row, GRID_VIADRILL ) ) / 2 < minViaAnnulus )
|
||||
{
|
||||
msg.Printf( _( "Via diameter and drill leave via annulus less than minimum (%s)." ),
|
||||
StringFromValue( m_Frame->GetUserUnits(), minViaAnnulus, true, true ) );
|
||||
m_Parent->SetError( msg, this, m_netclassGrid, row, GRID_VIASIZE );
|
||||
return false;
|
||||
}
|
||||
|
||||
if( getNetclassValue( row, GRID_VIADRILL ) < minThroughHole )
|
||||
{
|
||||
msg.Printf( _( "Via drill less than minimum via drill (%s)." ),
|
||||
StringFromValue( m_Frame->GetUserUnits(), minThroughHole, true, true ) );
|
||||
m_Parent->SetError( msg, this, m_netclassGrid, row, GRID_VIADRILL );
|
||||
return false;
|
||||
}
|
||||
|
||||
// Test Micro vias
|
||||
if( getNetclassValue( row, GRID_uVIASIZE ) < minUViaDia )
|
||||
{
|
||||
msg.Printf( _( "Microvia diameter less than minimum microvia diameter (%s)." ),
|
||||
StringFromValue( m_Frame->GetUserUnits(), minUViaDia, true, true ) );
|
||||
m_Parent->SetError( msg, this, m_netclassGrid, row, GRID_uVIASIZE );
|
||||
return false;
|
||||
}
|
||||
|
||||
if( getNetclassValue( row, GRID_uVIADRILL ) >= getNetclassValue( row, GRID_uVIASIZE ) )
|
||||
{
|
||||
msg = _( "Microvia drill larger than microvia diameter." );
|
||||
m_Parent->SetError( msg, this, m_netclassGrid, row, GRID_uVIADRILL );
|
||||
return false;
|
||||
}
|
||||
|
||||
if( getNetclassValue( row, GRID_uVIADRILL ) < minUViaDrill )
|
||||
{
|
||||
msg.Printf( _( "Microvia drill less than minimum microvia drill (%s)." ),
|
||||
StringFromValue( m_Frame->GetUserUnits(), minUViaDrill, true, true ) );
|
||||
m_Parent->SetError( msg, this, m_netclassGrid, row, GRID_uVIADRILL );
|
||||
return false;
|
||||
}
|
||||
|
||||
// JEY TODO: test microvias agains via min annulus?
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void PANEL_SETUP_NETCLASSES::ImportSettingsFrom( BOARD* aBoard )
|
||||
void PANEL_SETUP_NETCLASSES::ImportSettingsFrom( NETCLASSES* aNetclasses )
|
||||
{
|
||||
// Note: do not change the board, as we need to get the current nets from it for
|
||||
// netclass memberships. All the netclass definitions and dimension lists are in
|
||||
// the BOARD_DESIGN_SETTINGS.
|
||||
NETCLASSES* savedSettings = m_Netclasses;
|
||||
|
||||
BOARD_DESIGN_SETTINGS* savedSettings = m_BrdSettings;
|
||||
|
||||
m_BrdSettings = &aBoard->GetDesignSettings();
|
||||
m_Netclasses = aNetclasses;
|
||||
TransferDataToWindow();
|
||||
|
||||
rebuildNetclassDropdowns();
|
||||
|
@ -654,7 +548,7 @@ void PANEL_SETUP_NETCLASSES::ImportSettingsFrom( BOARD* aBoard )
|
|||
m_netclassGrid->ForceRefresh();
|
||||
m_membershipGrid->ForceRefresh();
|
||||
|
||||
m_BrdSettings = savedSettings;
|
||||
m_Netclasses = savedSettings;
|
||||
}
|
||||
|
||||
|
|
@ -25,34 +25,23 @@
|
|||
#ifndef PANEL_SETUP_NETCLASSES_H
|
||||
#define PANEL_SETUP_NETCLASSES_H
|
||||
|
||||
#include <class_board.h>
|
||||
#include <widgets/unit_binder.h>
|
||||
#include <widgets/paged_dialog.h>
|
||||
|
||||
#include <panel_setup_netclasses_base.h>
|
||||
#include "panel_setup_feature_constraints.h"
|
||||
|
||||
class PCB_EDIT_FRAME;
|
||||
class BOARD_DESIGN_SETTINGS;
|
||||
class NETCLASSES;
|
||||
|
||||
|
||||
class PANEL_SETUP_NETCLASSES : public PANEL_SETUP_NETCLASSES_BASE
|
||||
{
|
||||
private:
|
||||
PAGED_DIALOG* m_Parent;
|
||||
PCB_EDIT_FRAME* m_Frame;
|
||||
BOARD* m_Pcb;
|
||||
BOARD_DESIGN_SETTINGS* m_BrdSettings;
|
||||
|
||||
// We must validate against the current m_BrdSettings as they may have been
|
||||
// changed but not yet committed. Fetch them from the constraints panel.
|
||||
PANEL_SETUP_FEATURE_CONSTRAINTS* m_ConstraintsPanel;
|
||||
NETCLASSES* m_Netclasses;
|
||||
|
||||
int* m_originalColWidths;
|
||||
bool m_netclassesDirty; // Indicates the netclass drop-down
|
||||
// menus need rebuilding
|
||||
wxSize m_membershipSize; // The size needed to show the membership
|
||||
// properties
|
||||
bool m_netclassesDirty; // The netclass drop-down menus need rebuilding
|
||||
wxSize m_membershipSize; // The size needed to show the membership list
|
||||
|
||||
private:
|
||||
void OnAddNetclassClick( wxCommandEvent& event ) override;
|
||||
void OnRemoveNetclassClick( wxCommandEvent& event ) override;
|
||||
|
@ -70,9 +59,8 @@ private:
|
|||
bool validateData();
|
||||
|
||||
void rebuildNetclassDropdowns();
|
||||
int getNetclassValue( int aRow, int aCol );
|
||||
|
||||
void addNet( wxString netName, const wxString& netclass );
|
||||
void addNet( const wxString& netName, const wxString& netclass );
|
||||
void doApplyFilters( bool aShowAll );
|
||||
void doAssignments( bool aAssignAll );
|
||||
|
||||
|
@ -80,14 +68,13 @@ private:
|
|||
void AdjustMembershipGridColumns( int aWidth );
|
||||
|
||||
public:
|
||||
PANEL_SETUP_NETCLASSES( PAGED_DIALOG* aParent, PCB_EDIT_FRAME* aFrame,
|
||||
PANEL_SETUP_FEATURE_CONSTRAINTS* aConstraintsPanel );
|
||||
PANEL_SETUP_NETCLASSES( PAGED_DIALOG* aParent, NETCLASSES* aNetclasses );
|
||||
~PANEL_SETUP_NETCLASSES( ) override;
|
||||
|
||||
bool TransferDataToWindow() override;
|
||||
bool TransferDataFromWindow() override;
|
||||
|
||||
void ImportSettingsFrom( BOARD* aBoard );
|
||||
void ImportSettingsFrom( NETCLASSES* aBoard );
|
||||
};
|
||||
|
||||
#endif //PANEL_SETUP_NETCLASSES_H
|
|
@ -158,15 +158,12 @@ set( PCBNEW_DIALOGS
|
|||
dialogs/panel_setup_feature_constraints_base.cpp
|
||||
dialogs/panel_setup_layers.cpp
|
||||
dialogs/panel_setup_layers_base.cpp
|
||||
dialogs/panel_setup_netclasses.cpp
|
||||
dialogs/panel_setup_netclasses_base.cpp
|
||||
dialogs/panel_setup_rules.cpp
|
||||
dialogs/panel_setup_rules_base.cpp
|
||||
dialogs/panel_setup_text_and_graphics.cpp
|
||||
dialogs/panel_setup_text_and_graphics_base.cpp
|
||||
dialogs/panel_setup_tracks_and_vias.cpp
|
||||
dialogs/panel_setup_tracks_and_vias_base.cpp
|
||||
../common/dialogs/panel_setup_severities.cpp
|
||||
footprint_wizard.cpp
|
||||
footprint_wizard_frame.cpp
|
||||
footprint_wizard_frame_functions.cpp
|
||||
|
|
|
@ -106,8 +106,6 @@ BOARD::BOARD() :
|
|||
m_CurrentZoneContour = NULL; // This ZONE_CONTAINER handle the
|
||||
// zone contour currently in progress
|
||||
|
||||
BuildListOfNets(); // prepare pad and netlist containers.
|
||||
|
||||
for( LAYER_NUM layer = 0; layer < PCB_LAYER_ID_COUNT; ++layer )
|
||||
{
|
||||
m_Layer[layer].m_name = GetStandardLayerName( ToLAYER_ID( layer ) );
|
||||
|
@ -195,16 +193,13 @@ void BOARD::SetProject( PROJECT* aProject )
|
|||
// Set parent, which also will load the values from JSON stored in the project
|
||||
project.m_BoardSettings->SetParent( &project );
|
||||
|
||||
// The netclasses pointer will be pointing to the internal netclasses list at this point. If
|
||||
// it has anything other than the default net, this means we loaded some netclasses from a
|
||||
// board saved in legacy format where the netclass info is included. Move this info to the
|
||||
// netclasses stored in the project.
|
||||
|
||||
NETCLASSES& local = GetDesignSettings().GetNetClasses();
|
||||
|
||||
// The DesignSettings' netclasses pointer will be pointing to its internal netclasses
|
||||
// list at this point. If we loaded anything into it from a legacy board file then we
|
||||
// want to transfer it over to the project netclasses list.
|
||||
if( m_LegacyNetclassesLoaded )
|
||||
project.NetSettings().m_NetClasses = local;
|
||||
project.NetSettings().m_NetClasses = GetDesignSettings().GetNetClasses();
|
||||
|
||||
// Now update the DesignSettings' netclass pointer ot point into the project.
|
||||
GetDesignSettings().SetNetClasses( &project.NetSettings().m_NetClasses );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,16 +44,16 @@ DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP( PCB_EDIT_FRAME* aFrame ) :
|
|||
PAGED_DIALOG( aFrame, _( "Board Setup" ), _( "Import Settings from Another Board..." ) ),
|
||||
m_frame( aFrame )
|
||||
{
|
||||
BOARD_DESIGN_SETTINGS& bds = aFrame->GetDesignSettings();
|
||||
|
||||
m_layers = new PANEL_SETUP_LAYERS( this, aFrame );
|
||||
m_textAndGraphics = new PANEL_SETUP_TEXT_AND_GRAPHICS( this, aFrame );
|
||||
m_constraints = new PANEL_SETUP_FEATURE_CONSTRAINTS( this, aFrame );
|
||||
m_netclasses = new PANEL_SETUP_NETCLASSES( this, aFrame, m_constraints );
|
||||
m_netclasses = new PANEL_SETUP_NETCLASSES( this, &bds.GetNetClasses() );
|
||||
m_rules = new PANEL_SETUP_RULES( this, aFrame );
|
||||
m_tracksAndVias = new PANEL_SETUP_TRACKS_AND_VIAS( this, aFrame, m_constraints );
|
||||
m_maskAndPaste = new PANEL_SETUP_MASK_AND_PASTE( this, aFrame );
|
||||
m_physicalStackup = new PANEL_SETUP_BOARD_STACKUP( this, aFrame, m_layers );
|
||||
|
||||
BOARD_DESIGN_SETTINGS& bds = aFrame->GetDesignSettings();
|
||||
m_severities = new PANEL_SETUP_SEVERITIES( this, DRC_ITEM::GetItemsWithSeverities(),
|
||||
bds.m_DRCSeverities );
|
||||
|
||||
|
@ -180,7 +180,7 @@ void DIALOG_BOARD_SETUP::OnAuxiliaryAction( wxCommandEvent& event )
|
|||
if( importDlg.m_ConstraintsOpt->GetValue() )
|
||||
m_constraints->ImportSettingsFrom( otherBoard );
|
||||
if( importDlg.m_NetclassesOpt->GetValue() )
|
||||
m_netclasses->ImportSettingsFrom( otherBoard );
|
||||
m_netclasses->ImportSettingsFrom( &otherBoard->GetDesignSettings().GetNetClasses() );
|
||||
if( importDlg.m_TracksAndViasOpt->GetValue() )
|
||||
m_tracksAndVias->ImportSettingsFrom( otherBoard );
|
||||
if( importDlg.m_MaskAndPasteOpt->GetValue() )
|
||||
|
|
|
@ -600,7 +600,6 @@ bool PCB_EDIT_FRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, in
|
|||
|
||||
// we should not ask PLUGINs to do these items:
|
||||
loadedBoard->BuildListOfNets();
|
||||
loadedBoard->SynchronizeNetsAndNetClasses();
|
||||
ResolveDRCExclusions();
|
||||
|
||||
if( loadedBoard->IsModified() )
|
||||
|
|
|
@ -637,6 +637,9 @@ void PCB_EDIT_FRAME::ActivateGalCanvas()
|
|||
void PCB_EDIT_FRAME::ShowBoardSetupDialog( const wxString& aInitialPage, const wxString& aErrorMsg,
|
||||
int aErrorCtrlId, int aErrorLine, int aErrorCol )
|
||||
{
|
||||
// Make sure everything's up-to-date
|
||||
GetBoard()->BuildListOfNets();
|
||||
|
||||
DIALOG_BOARD_SETUP dlg( this );
|
||||
|
||||
if( !aInitialPage.IsEmpty() )
|
||||
|
@ -647,6 +650,8 @@ void PCB_EDIT_FRAME::ShowBoardSetupDialog( const wxString& aInitialPage, const w
|
|||
|
||||
if( dlg.ShowQuasiModal() == wxID_OK )
|
||||
{
|
||||
GetBoard()->SynchronizeNetsAndNetClasses();
|
||||
GetBoard()->GetDesignSettings().SetCurrentNetClass( NETCLASS::Default );
|
||||
SaveProjectSettings();
|
||||
|
||||
UpdateUserInterface();
|
||||
|
@ -657,6 +662,8 @@ void PCB_EDIT_FRAME::ShowBoardSetupDialog( const wxString& aInitialPage, const w
|
|||
|
||||
GetCanvas()->Refresh();
|
||||
|
||||
m_toolManager->ResetTools( TOOL_BASE::MODEL_RELOAD );
|
||||
|
||||
//this event causes the routing tool to reload its design rules information
|
||||
TOOL_EVENT toolEvent( TC_COMMAND, TA_MODEL_CHANGE, AS_ACTIVE );
|
||||
toolEvent.SetHasPosition( false );
|
||||
|
|
Loading…
Reference in New Issue