Implement changed notifiers for textvar, netclasses and severities.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15440
This commit is contained in:
parent
be4c89011c
commit
ef92429ac2
|
@ -78,6 +78,7 @@ PANEL_SETUP_NETCLASSES::PANEL_SETUP_NETCLASSES( wxWindow* aParentWindow, EDA_DRA
|
||||||
m_isEEschema( aIsEEschema ),
|
m_isEEschema( aIsEEschema ),
|
||||||
m_netSettings( aNetSettings ),
|
m_netSettings( aNetSettings ),
|
||||||
m_netNames( aNetNames ),
|
m_netNames( aNetNames ),
|
||||||
|
m_lastCheckedTicker( 0 ),
|
||||||
m_hoveredCol( -1 ),
|
m_hoveredCol( -1 ),
|
||||||
m_lastNetclassGridWidth( -1 )
|
m_lastNetclassGridWidth( -1 )
|
||||||
{
|
{
|
||||||
|
@ -219,6 +220,21 @@ PANEL_SETUP_NETCLASSES::PANEL_SETUP_NETCLASSES( wxWindow* aParentWindow, EDA_DRA
|
||||||
m_assignmentGrid->EndBatch();
|
m_assignmentGrid->EndBatch();
|
||||||
Thaw();
|
Thaw();
|
||||||
|
|
||||||
|
Bind( wxEVT_IDLE,
|
||||||
|
[this]( wxIdleEvent& aEvent )
|
||||||
|
{
|
||||||
|
// Careful of consuming CPU in an idle event handler. Check the ticker first to
|
||||||
|
// see if there's even a possibility of the netclasses having changed.
|
||||||
|
if( m_frame->Prj().GetNetclassesTicker() > m_lastCheckedTicker )
|
||||||
|
{
|
||||||
|
wxWindow* dialog = wxGetTopLevelParent( this );
|
||||||
|
wxWindow* topLevelFocus = wxGetTopLevelParent( wxWindow::FindFocus() );
|
||||||
|
|
||||||
|
if( topLevelFocus == dialog && m_lastLoaded != m_netSettings->m_NetClasses )
|
||||||
|
checkReload();
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
m_matchingNets->SetFont( KIUI::GetInfoFont( this ) );
|
m_matchingNets->SetFont( KIUI::GetInfoFont( this ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -242,27 +258,7 @@ PANEL_SETUP_NETCLASSES::~PANEL_SETUP_NETCLASSES()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PANEL_SETUP_NETCLASSES::onUnitsChanged( wxCommandEvent& aEvent )
|
void PANEL_SETUP_NETCLASSES::loadNetclasses()
|
||||||
{
|
|
||||||
std::shared_ptr<NET_SETTINGS> tempNetSettings = std::make_shared<NET_SETTINGS>( nullptr, "" );
|
|
||||||
std::shared_ptr<NET_SETTINGS> saveNetSettings = m_netSettings;
|
|
||||||
|
|
||||||
m_netSettings = tempNetSettings;
|
|
||||||
|
|
||||||
TransferDataFromWindow();
|
|
||||||
|
|
||||||
m_schUnitsProvider->SetUserUnits( m_frame->GetUserUnits() );
|
|
||||||
m_pcbUnitsProvider->SetUserUnits( m_frame->GetUserUnits() );
|
|
||||||
|
|
||||||
TransferDataToWindow();
|
|
||||||
|
|
||||||
m_netSettings = saveNetSettings;
|
|
||||||
|
|
||||||
aEvent.Skip();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool PANEL_SETUP_NETCLASSES::TransferDataToWindow()
|
|
||||||
{
|
{
|
||||||
int row = 0;
|
int row = 0;
|
||||||
|
|
||||||
|
@ -321,7 +317,50 @@ bool PANEL_SETUP_NETCLASSES::TransferDataToWindow()
|
||||||
m_assignmentGrid->SetCellValue( row, 1, netclassName );
|
m_assignmentGrid->SetCellValue( row, 1, netclassName );
|
||||||
row++;
|
row++;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PANEL_SETUP_NETCLASSES::checkReload()
|
||||||
|
{
|
||||||
|
// MUST update the ticker before calling IsOK (or we'll end up re-entering through the idle
|
||||||
|
// event until we crash the stack).
|
||||||
|
m_lastCheckedTicker = m_frame->Prj().GetTextVarsTicker();
|
||||||
|
|
||||||
|
if( IsOK( m_parent, _( "The netclasses have been changed outside the Setup dialog.\n"
|
||||||
|
"Do you wish to reload them?" ) ) )
|
||||||
|
{
|
||||||
|
m_lastLoaded = m_netSettings->m_NetClasses;
|
||||||
|
loadNetclasses();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PANEL_SETUP_NETCLASSES::onUnitsChanged( wxCommandEvent& aEvent )
|
||||||
|
{
|
||||||
|
std::shared_ptr<NET_SETTINGS> tempNetSettings = std::make_shared<NET_SETTINGS>( nullptr, "" );
|
||||||
|
std::shared_ptr<NET_SETTINGS> saveNetSettings = m_netSettings;
|
||||||
|
|
||||||
|
m_netSettings = tempNetSettings;
|
||||||
|
|
||||||
|
TransferDataFromWindow();
|
||||||
|
|
||||||
|
m_schUnitsProvider->SetUserUnits( m_frame->GetUserUnits() );
|
||||||
|
m_pcbUnitsProvider->SetUserUnits( m_frame->GetUserUnits() );
|
||||||
|
|
||||||
|
TransferDataToWindow();
|
||||||
|
|
||||||
|
m_netSettings = saveNetSettings;
|
||||||
|
|
||||||
|
aEvent.Skip();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool PANEL_SETUP_NETCLASSES::TransferDataToWindow()
|
||||||
|
{
|
||||||
|
m_lastLoaded = m_netSettings->m_NetClasses;
|
||||||
|
m_lastCheckedTicker = m_frame->Prj().GetNetclassesTicker();
|
||||||
|
|
||||||
|
loadNetclasses();
|
||||||
AdjustAssignmentGridColumns( GetSize().x * 3 / 5 );
|
AdjustAssignmentGridColumns( GetSize().x * 3 / 5 );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include <wx/radiobut.h>
|
#include <wx/radiobut.h>
|
||||||
#include <wx/scrolwin.h>
|
#include <wx/scrolwin.h>
|
||||||
#include <wx/stattext.h>
|
#include <wx/stattext.h>
|
||||||
|
#include "confirm.h"
|
||||||
|
|
||||||
|
|
||||||
PANEL_SETUP_SEVERITIES::PANEL_SETUP_SEVERITIES( wxWindow* aParentWindow,
|
PANEL_SETUP_SEVERITIES::PANEL_SETUP_SEVERITIES( wxWindow* aParentWindow,
|
||||||
|
@ -149,12 +150,39 @@ PANEL_SETUP_SEVERITIES::PANEL_SETUP_SEVERITIES( wxWindow* aParentWindow,
|
||||||
scrollWinSizer->Add( gridSizer, 1, wxEXPAND | wxALL, 5 );
|
scrollWinSizer->Add( gridSizer, 1, wxEXPAND | wxALL, 5 );
|
||||||
panelSizer->Add( scrollWin, 1, wxEXPAND, 0 );
|
panelSizer->Add( scrollWin, 1, wxEXPAND, 0 );
|
||||||
|
|
||||||
|
Bind( wxEVT_IDLE,
|
||||||
|
[this]( wxIdleEvent& aEvent )
|
||||||
|
{
|
||||||
|
if( m_lastLoaded != m_severities )
|
||||||
|
{
|
||||||
|
wxWindow* dialog = wxGetTopLevelParent( this );
|
||||||
|
wxWindow* topLevelFocus = wxGetTopLevelParent( wxWindow::FindFocus() );
|
||||||
|
|
||||||
|
if( topLevelFocus == dialog )
|
||||||
|
checkReload();
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
SetSizer( panelSizer );
|
SetSizer( panelSizer );
|
||||||
Layout();
|
Layout();
|
||||||
panelSizer->Fit( this );
|
panelSizer->Fit( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PANEL_SETUP_SEVERITIES::checkReload()
|
||||||
|
{
|
||||||
|
// MUST update lastLoaded before calling IsOK (or we'll end up re-entering through the idle
|
||||||
|
// event until we crash the stack).
|
||||||
|
m_lastLoaded = m_severities;
|
||||||
|
|
||||||
|
if( IsOK( m_parent, _( "The violation severities have been changed outside the Setup dialog.\n"
|
||||||
|
"Do you wish to reload them?" ) ) )
|
||||||
|
{
|
||||||
|
TransferDataToWindow();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void PANEL_SETUP_SEVERITIES::ImportSettingsFrom( std::map<int, SEVERITY>& aSettings )
|
void PANEL_SETUP_SEVERITIES::ImportSettingsFrom( std::map<int, SEVERITY>& aSettings )
|
||||||
{
|
{
|
||||||
for( const RC_ITEM& item : m_items )
|
for( const RC_ITEM& item : m_items )
|
||||||
|
@ -188,6 +216,8 @@ void PANEL_SETUP_SEVERITIES::ImportSettingsFrom( std::map<int, SEVERITY>& aSetti
|
||||||
|
|
||||||
bool PANEL_SETUP_SEVERITIES::TransferDataToWindow()
|
bool PANEL_SETUP_SEVERITIES::TransferDataToWindow()
|
||||||
{
|
{
|
||||||
|
m_lastLoaded = m_severities;
|
||||||
|
|
||||||
for( const RC_ITEM& item : m_items )
|
for( const RC_ITEM& item : m_items )
|
||||||
{
|
{
|
||||||
int errorCode = item.GetErrorCode();
|
int errorCode = item.GetErrorCode();
|
||||||
|
|
|
@ -64,6 +64,21 @@ PANEL_TEXT_VARIABLES::PANEL_TEXT_VARIABLES( wxWindow* aParent, PROJECT* aProject
|
||||||
m_TextVars->Connect( wxEVT_GRID_CELL_CHANGING,
|
m_TextVars->Connect( wxEVT_GRID_CELL_CHANGING,
|
||||||
wxGridEventHandler( PANEL_TEXT_VARIABLES::OnGridCellChanging ),
|
wxGridEventHandler( PANEL_TEXT_VARIABLES::OnGridCellChanging ),
|
||||||
nullptr, this );
|
nullptr, this );
|
||||||
|
|
||||||
|
Bind( wxEVT_IDLE,
|
||||||
|
[this]( wxIdleEvent& aEvent )
|
||||||
|
{
|
||||||
|
// Careful of consuming CPU in an idle event handler. Check the ticker first to
|
||||||
|
// see if there's even a possibility of the text variables having changed.
|
||||||
|
if( m_project->GetTextVarsTicker() > m_lastCheckedTicker )
|
||||||
|
{
|
||||||
|
wxWindow* dialog = wxGetTopLevelParent( this );
|
||||||
|
wxWindow* topLevelFocus = wxGetTopLevelParent( wxWindow::FindFocus() );
|
||||||
|
|
||||||
|
if( topLevelFocus == dialog && m_lastLoaded != m_project->GetTextVars() )
|
||||||
|
checkReload();
|
||||||
|
}
|
||||||
|
} );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -78,11 +93,31 @@ PANEL_TEXT_VARIABLES::~PANEL_TEXT_VARIABLES()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PANEL_TEXT_VARIABLES::checkReload()
|
||||||
|
{
|
||||||
|
// MUST update the ticker before calling IsOK (or we'll end up re-entering through the idle
|
||||||
|
// event until we crash the stack).
|
||||||
|
m_lastCheckedTicker = m_project->GetTextVarsTicker();
|
||||||
|
|
||||||
|
if( IsOK( m_parent, _( "The text variables have been changed outside the Setup dialog.\n"
|
||||||
|
"Do you wish to reload them?" ) ) )
|
||||||
|
{
|
||||||
|
m_TextVars->ClearRows();
|
||||||
|
|
||||||
|
m_lastLoaded = m_project->GetTextVars();
|
||||||
|
|
||||||
|
for( const auto& var : m_lastLoaded )
|
||||||
|
AppendTextVar( var.first, var.second );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool PANEL_TEXT_VARIABLES::TransferDataToWindow()
|
bool PANEL_TEXT_VARIABLES::TransferDataToWindow()
|
||||||
{
|
{
|
||||||
std::map<wxString, wxString>& variables = m_project->GetTextVars();
|
m_lastLoaded = m_project->GetTextVars();
|
||||||
|
m_lastCheckedTicker = m_project->GetTextVarsTicker();
|
||||||
|
|
||||||
for( const auto& var : variables )
|
for( const auto& var : m_lastLoaded )
|
||||||
AppendTextVar( var.first, var.second );
|
AppendTextVar( var.first, var.second );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#define JOB_EXPORT_SCH_BOM_H
|
#define JOB_EXPORT_SCH_BOM_H
|
||||||
|
|
||||||
#include <kicommon.h>
|
#include <kicommon.h>
|
||||||
|
#include <vector>
|
||||||
#include <wx/string.h>
|
#include <wx/string.h>
|
||||||
#include "job.h"
|
#include "job.h"
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,8 @@
|
||||||
|
|
||||||
PROJECT::PROJECT() :
|
PROJECT::PROJECT() :
|
||||||
m_readOnly( false ),
|
m_readOnly( false ),
|
||||||
|
m_textVarsTicker( 0 ),
|
||||||
|
m_netclassesTicker( 0 ),
|
||||||
m_projectFile( nullptr ),
|
m_projectFile( nullptr ),
|
||||||
m_localSettings( nullptr )
|
m_localSettings( nullptr )
|
||||||
{
|
{
|
||||||
|
|
|
@ -96,6 +96,9 @@ void SCH_EDIT_FRAME::ShowSchematicSetupDialog( const wxString& aInitialPage )
|
||||||
|
|
||||||
Kiway().CommonSettingsChanged( false, true );
|
Kiway().CommonSettingsChanged( false, true );
|
||||||
|
|
||||||
|
Prj().IncrementTextVarsTicker();
|
||||||
|
Prj().IncrementNetclassesTicker();
|
||||||
|
|
||||||
GetRenderSettings()->SetDefaultPenWidth( Schematic().Settings().m_DefaultLineWidth );
|
GetRenderSettings()->SetDefaultPenWidth( Schematic().Settings().m_DefaultLineWidth );
|
||||||
GetRenderSettings()->m_LabelSizeRatio = Schematic().Settings().m_LabelSizeRatio;
|
GetRenderSettings()->m_LabelSizeRatio = Schematic().Settings().m_LabelSizeRatio;
|
||||||
GetRenderSettings()->m_TextOffsetRatio = Schematic().Settings().m_TextOffsetRatio;
|
GetRenderSettings()->m_TextOffsetRatio = Schematic().Settings().m_TextOffsetRatio;
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#include <panel_setup_netclasses_base.h>
|
#include <panel_setup_netclasses_base.h>
|
||||||
|
|
||||||
class NET_SETTINGS;
|
class NET_SETTINGS;
|
||||||
|
class NETCLASS;
|
||||||
|
|
||||||
|
|
||||||
class PANEL_SETUP_NETCLASSES : public PANEL_SETUP_NETCLASSES_BASE
|
class PANEL_SETUP_NETCLASSES : public PANEL_SETUP_NETCLASSES_BASE
|
||||||
|
@ -67,6 +68,9 @@ private:
|
||||||
void AdjustNetclassGridColumns( int aWidth );
|
void AdjustNetclassGridColumns( int aWidth );
|
||||||
void AdjustAssignmentGridColumns( int aWidth );
|
void AdjustAssignmentGridColumns( int aWidth );
|
||||||
|
|
||||||
|
void loadNetclasses();
|
||||||
|
void checkReload();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
EDA_DRAW_FRAME* m_frame;
|
EDA_DRAW_FRAME* m_frame;
|
||||||
bool m_isEEschema;
|
bool m_isEEschema;
|
||||||
|
@ -76,6 +80,9 @@ private:
|
||||||
std::unique_ptr<UNITS_PROVIDER> m_schUnitsProvider;
|
std::unique_ptr<UNITS_PROVIDER> m_schUnitsProvider;
|
||||||
std::unique_ptr<UNITS_PROVIDER> m_pcbUnitsProvider;
|
std::unique_ptr<UNITS_PROVIDER> m_pcbUnitsProvider;
|
||||||
|
|
||||||
|
std::map<wxString, std::shared_ptr<NETCLASS>> m_lastLoaded;
|
||||||
|
int m_lastCheckedTicker;
|
||||||
|
|
||||||
int* m_originalColWidths;
|
int* m_originalColWidths;
|
||||||
bool m_netclassesDirty; // The netclass drop-down menus need rebuilding
|
bool m_netclassesDirty; // The netclass drop-down menus need rebuilding
|
||||||
int m_hoveredCol; // Column being hovered over, for tooltips
|
int m_hoveredCol; // Column being hovered over, for tooltips
|
||||||
|
|
|
@ -64,6 +64,11 @@ public:
|
||||||
private:
|
private:
|
||||||
bool TransferDataToWindow() override;
|
bool TransferDataToWindow() override;
|
||||||
bool TransferDataFromWindow() override;
|
bool TransferDataFromWindow() override;
|
||||||
|
|
||||||
|
void checkReload();
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::map<int, SEVERITY> m_lastLoaded;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //KICAD_PANEL_SETUP_SEVERITIES_H
|
#endif //KICAD_PANEL_SETUP_SEVERITIES_H
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
|
|
||||||
#include <../common/dialogs/panel_text_variables_base.h>
|
#include <../common/dialogs/panel_text_variables_base.h>
|
||||||
#include <wx/valtext.h>
|
#include <wx/valtext.h>
|
||||||
|
#include <map>
|
||||||
|
|
||||||
class PROJECT;
|
class PROJECT;
|
||||||
|
|
||||||
|
@ -50,9 +51,14 @@ protected:
|
||||||
|
|
||||||
void AppendTextVar( const wxString& aName, const wxString& aValue );
|
void AppendTextVar( const wxString& aName, const wxString& aValue );
|
||||||
|
|
||||||
|
void checkReload();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
PROJECT* m_project;
|
PROJECT* m_project;
|
||||||
|
|
||||||
|
std::map<wxString, wxString> m_lastLoaded;
|
||||||
|
int m_lastCheckedTicker;
|
||||||
|
|
||||||
wxString m_errorMsg;
|
wxString m_errorMsg;
|
||||||
int m_errorRow;
|
int m_errorRow;
|
||||||
int m_errorCol;
|
int m_errorCol;
|
||||||
|
|
|
@ -91,6 +91,12 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual void ApplyTextVars( const std::map<wxString, wxString>& aVarsMap );
|
virtual void ApplyTextVars( const std::map<wxString, wxString>& aVarsMap );
|
||||||
|
|
||||||
|
bool GetTextVarsTicker() const { return m_textVarsTicker; }
|
||||||
|
void IncrementTextVarsTicker() { m_textVarsTicker++; }
|
||||||
|
|
||||||
|
bool GetNetclassesTicker() const { return m_netclassesTicker; }
|
||||||
|
void IncrementNetclassesTicker() { m_netclassesTicker++; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the full path and name of the project.
|
* Return the full path and name of the project.
|
||||||
*
|
*
|
||||||
|
@ -348,11 +354,13 @@ private:
|
||||||
*/
|
*/
|
||||||
const wxString libTableName( const wxString& aLibTableName ) const;
|
const wxString libTableName( const wxString& aLibTableName ) const;
|
||||||
|
|
||||||
|
private:
|
||||||
wxFileName m_project_name; ///< \<fullpath\>/\<basename\>.pro
|
wxFileName m_project_name; ///< \<fullpath\>/\<basename\>.pro
|
||||||
wxString m_pro_date_and_time;
|
wxString m_pro_date_and_time;
|
||||||
|
|
||||||
///< True if the project is read-only: no project files will be written
|
bool m_readOnly; ///< No project files will be written to disk
|
||||||
bool m_readOnly;
|
int m_textVarsTicker; ///< Update counter on text vars
|
||||||
|
int m_netclassesTicker; ///< Update counter on netclasses
|
||||||
|
|
||||||
/// Backing store for project data -- owned by SETTINGS_MANAGER
|
/// Backing store for project data -- owned by SETTINGS_MANAGER
|
||||||
PROJECT_FILE* m_projectFile;
|
PROJECT_FILE* m_projectFile;
|
||||||
|
|
|
@ -761,13 +761,6 @@ void PCB_EDIT_FRAME::setupUIConditions()
|
||||||
return GetPcbNewSettings()->m_Use45DegreeLimit;
|
return GetPcbNewSettings()->m_Use45DegreeLimit;
|
||||||
};
|
};
|
||||||
|
|
||||||
auto enableBoardSetupCondition =
|
|
||||||
[this] ( const SELECTION& )
|
|
||||||
{
|
|
||||||
DRC_TOOL* tool = m_toolManager->GetTool<DRC_TOOL>();
|
|
||||||
return !( tool && tool->IsDRCDialogShown() );
|
|
||||||
};
|
|
||||||
|
|
||||||
auto boardFlippedCond =
|
auto boardFlippedCond =
|
||||||
[this]( const SELECTION& )
|
[this]( const SELECTION& )
|
||||||
{
|
{
|
||||||
|
@ -832,7 +825,6 @@ void PCB_EDIT_FRAME::setupUIConditions()
|
||||||
mgr->SetConditions( PCB_ACTIONS::ratsnestLineMode, CHECK( curvedRatsnestCond ) );
|
mgr->SetConditions( PCB_ACTIONS::ratsnestLineMode, CHECK( curvedRatsnestCond ) );
|
||||||
mgr->SetConditions( PCB_ACTIONS::toggleNetHighlight, CHECK( netHighlightCond )
|
mgr->SetConditions( PCB_ACTIONS::toggleNetHighlight, CHECK( netHighlightCond )
|
||||||
.Enable( enableNetHighlightCond ) );
|
.Enable( enableNetHighlightCond ) );
|
||||||
mgr->SetConditions( PCB_ACTIONS::boardSetup, ENABLE( enableBoardSetupCondition ) );
|
|
||||||
mgr->SetConditions( PCB_ACTIONS::showProperties, CHECK( propertiesCond ) );
|
mgr->SetConditions( PCB_ACTIONS::showProperties, CHECK( propertiesCond ) );
|
||||||
mgr->SetConditions( PCB_ACTIONS::showSearch, CHECK( searchPaneCond ) );
|
mgr->SetConditions( PCB_ACTIONS::showSearch, CHECK( searchPaneCond ) );
|
||||||
|
|
||||||
|
@ -1234,6 +1226,9 @@ void PCB_EDIT_FRAME::ShowBoardSetupDialog( const wxString& aInitialPage )
|
||||||
|
|
||||||
Kiway().CommonSettingsChanged( false, true );
|
Kiway().CommonSettingsChanged( false, true );
|
||||||
|
|
||||||
|
Prj().IncrementTextVarsTicker();
|
||||||
|
Prj().IncrementNetclassesTicker();
|
||||||
|
|
||||||
PCBNEW_SETTINGS* settings = GetPcbNewSettings();
|
PCBNEW_SETTINGS* settings = GetPcbNewSettings();
|
||||||
static LSET maskAndPasteLayers = LSET( 4, F_Mask, F_Paste, B_Mask, B_Paste );
|
static LSET maskAndPasteLayers = LSET( 4, F_Mask, F_Paste, B_Mask, B_Paste );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue