Move SCH_SCREEN project access to SCHEMATIC
SCH_SCREEN no longer needs to be a KIWAY_HOLDER
This commit is contained in:
parent
b36b7d5a5d
commit
7c7b7f41da
|
@ -44,8 +44,8 @@
|
||||||
wxString BASE_SCREEN::m_PageLayoutDescrFileName; // the name of the page layout descr file.
|
wxString BASE_SCREEN::m_PageLayoutDescrFileName; // the name of the page layout descr file.
|
||||||
|
|
||||||
|
|
||||||
BASE_SCREEN::BASE_SCREEN( KICAD_T aType ) :
|
BASE_SCREEN::BASE_SCREEN( EDA_ITEM* aParent, KICAD_T aType ) :
|
||||||
EDA_ITEM( aType )
|
EDA_ITEM( aParent, aType )
|
||||||
{
|
{
|
||||||
m_UndoRedoCountMax = DEFAULT_MAX_UNDO_ITEMS;
|
m_UndoRedoCountMax = DEFAULT_MAX_UNDO_ITEMS;
|
||||||
m_Initialized = false;
|
m_Initialized = false;
|
||||||
|
|
|
@ -130,7 +130,7 @@ LIB_VIEW_FRAME::LIB_VIEW_FRAME( KIWAY* aKiway, wxWindow* aParent, FRAME_T aFrame
|
||||||
// Initialize grid id to the default value (50 mils):
|
// Initialize grid id to the default value (50 mils):
|
||||||
m_LastGridSizeId = ID_POPUP_GRID_LEVEL_50 - ID_POPUP_GRID_LEVEL_1000;
|
m_LastGridSizeId = ID_POPUP_GRID_LEVEL_50 - ID_POPUP_GRID_LEVEL_1000;
|
||||||
|
|
||||||
SetScreen( new SCH_SCREEN( aKiway ) );
|
SetScreen( new SCH_SCREEN );
|
||||||
GetScreen()->m_Center = true; // Axis origin centered on screen.
|
GetScreen()->m_Center = true; // Axis origin centered on screen.
|
||||||
LoadSettings( config() );
|
LoadSettings( config() );
|
||||||
|
|
||||||
|
|
|
@ -124,7 +124,7 @@ LIB_EDIT_FRAME::LIB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||||
KIGFX::GAL_DISPLAY_OPTIONS& gal_opts = GetGalDisplayOptions();
|
KIGFX::GAL_DISPLAY_OPTIONS& gal_opts = GetGalDisplayOptions();
|
||||||
gal_opts.m_axesEnabled = true;
|
gal_opts.m_axesEnabled = true;
|
||||||
|
|
||||||
m_dummyScreen = new SCH_SCREEN( aKiway );
|
m_dummyScreen = new SCH_SCREEN();
|
||||||
SetScreen( m_dummyScreen );
|
SetScreen( m_dummyScreen );
|
||||||
GetScreen()->m_Center = true;
|
GetScreen()->m_Center = true;
|
||||||
GetScreen()->SetMaxUndoItems( m_UndoRedoCountMax );
|
GetScreen()->SetMaxUndoItems( m_UndoRedoCountMax );
|
||||||
|
|
|
@ -344,7 +344,7 @@ LIB_PART* LIB_MANAGER::GetBufferedPart( const wxString& aAlias, const wxString&
|
||||||
if( !bufferedParent )
|
if( !bufferedParent )
|
||||||
{
|
{
|
||||||
bufferedParent = new LIB_PART( *parent.get() );
|
bufferedParent = new LIB_PART( *parent.get() );
|
||||||
libBuf.CreateBuffer( bufferedParent, new SCH_SCREEN( &m_frame.Kiway() ) );
|
libBuf.CreateBuffer( bufferedParent, new SCH_SCREEN );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -353,7 +353,7 @@ LIB_PART* LIB_MANAGER::GetBufferedPart( const wxString& aAlias, const wxString&
|
||||||
if( bufferedParent )
|
if( bufferedParent )
|
||||||
bufferedPart->SetParent( bufferedParent );
|
bufferedPart->SetParent( bufferedParent );
|
||||||
|
|
||||||
libBuf.CreateBuffer( bufferedPart, new SCH_SCREEN( &m_frame.Kiway() ) );
|
libBuf.CreateBuffer( bufferedPart, new SCH_SCREEN );
|
||||||
}
|
}
|
||||||
catch( const IO_ERROR& e )
|
catch( const IO_ERROR& e )
|
||||||
{
|
{
|
||||||
|
@ -402,7 +402,7 @@ bool LIB_MANAGER::UpdatePart( LIB_PART* aPart, const wxString& aLibrary )
|
||||||
|
|
||||||
partCopy->SetLibId( LIB_ID( aLibrary, aPart->GetLibId().GetLibItemName() ) );
|
partCopy->SetLibId( LIB_ID( aLibrary, aPart->GetLibId().GetLibItemName() ) );
|
||||||
|
|
||||||
SCH_SCREEN* screen = new SCH_SCREEN( &m_frame.Kiway() );
|
SCH_SCREEN* screen = new SCH_SCREEN;
|
||||||
libBuf.CreateBuffer( partCopy, screen );
|
libBuf.CreateBuffer( partCopy, screen );
|
||||||
screen->SetModify();
|
screen->SetModify();
|
||||||
}
|
}
|
||||||
|
@ -724,16 +724,16 @@ LIB_MANAGER::LIB_BUFFER& LIB_MANAGER::getLibraryBuffer( const wxString& aLibrary
|
||||||
if( !libParent )
|
if( !libParent )
|
||||||
{
|
{
|
||||||
libParent = new LIB_PART( *oldParent.get() );
|
libParent = new LIB_PART( *oldParent.get() );
|
||||||
buf.CreateBuffer( libParent, new SCH_SCREEN( &m_frame.Kiway() ) );
|
buf.CreateBuffer( libParent, new SCH_SCREEN );
|
||||||
}
|
}
|
||||||
|
|
||||||
newSymbol = new LIB_PART( *part );
|
newSymbol = new LIB_PART( *part );
|
||||||
newSymbol->SetParent( libParent );
|
newSymbol->SetParent( libParent );
|
||||||
buf.CreateBuffer( newSymbol, new SCH_SCREEN( &m_frame.Kiway() ) );
|
buf.CreateBuffer( newSymbol, new SCH_SCREEN );
|
||||||
}
|
}
|
||||||
else if( !buf.GetPart( part->GetName() ) )
|
else if( !buf.GetPart( part->GetName() ) )
|
||||||
{
|
{
|
||||||
buf.CreateBuffer( new LIB_PART( *part ), new SCH_SCREEN( &m_frame.Kiway() ) );
|
buf.CreateBuffer( new LIB_PART( *part ), new SCH_SCREEN );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -159,7 +159,7 @@ void DIALOG_PLOT_SCHEMATIC::plotOneSheetPDF( PLOTTER* aPlotter,
|
||||||
|
|
||||||
if( aPlotFrameRef )
|
if( aPlotFrameRef )
|
||||||
{
|
{
|
||||||
PlotWorkSheet( aPlotter, &aScreen->Prj(), m_parent->GetTitleBlock(),
|
PlotWorkSheet( aPlotter, &aScreen->Schematic()->Prj(), m_parent->GetTitleBlock(),
|
||||||
m_parent->GetPageSettings(), aScreen->m_ScreenNumber,
|
m_parent->GetPageSettings(), aScreen->m_ScreenNumber,
|
||||||
aScreen->m_NumberOfScreens, m_parent->GetScreenDesc(),
|
aScreen->m_NumberOfScreens, m_parent->GetScreenDesc(),
|
||||||
aScreen->GetFileName(),
|
aScreen->GetFileName(),
|
||||||
|
|
|
@ -165,7 +165,7 @@ bool DIALOG_PLOT_SCHEMATIC::plotOneSheetPS( const wxString& aFileName,
|
||||||
|
|
||||||
if( aPlotFrameRef )
|
if( aPlotFrameRef )
|
||||||
{
|
{
|
||||||
PlotWorkSheet( plotter, &aScreen->Prj(), m_parent->GetTitleBlock(), aPageInfo,
|
PlotWorkSheet( plotter, &aScreen->Schematic()->Prj(), m_parent->GetTitleBlock(), aPageInfo,
|
||||||
aScreen->m_ScreenNumber, aScreen->m_NumberOfScreens,
|
aScreen->m_ScreenNumber, aScreen->m_NumberOfScreens,
|
||||||
m_parent->GetScreenDesc(), aScreen->GetFileName(),
|
m_parent->GetScreenDesc(), aScreen->GetFileName(),
|
||||||
plotter->GetColorMode() ?
|
plotter->GetColorMode() ?
|
||||||
|
|
|
@ -139,7 +139,7 @@ bool DIALOG_PLOT_SCHEMATIC::plotOneSheetSVG( const wxString& aFileName,
|
||||||
|
|
||||||
if( aPlotFrameRef )
|
if( aPlotFrameRef )
|
||||||
{
|
{
|
||||||
PlotWorkSheet( plotter, &aScreen->Prj(), m_parent->GetTitleBlock(), pageInfo,
|
PlotWorkSheet( plotter, &aScreen->Schematic()->Prj(), m_parent->GetTitleBlock(), pageInfo,
|
||||||
aScreen->m_ScreenNumber, aScreen->m_NumberOfScreens,
|
aScreen->m_ScreenNumber, aScreen->m_NumberOfScreens,
|
||||||
m_parent->GetScreenDesc(), aScreen->GetFileName(),
|
m_parent->GetScreenDesc(), aScreen->GetFileName(),
|
||||||
plotter->GetColorMode() ?
|
plotter->GetColorMode() ?
|
||||||
|
|
|
@ -425,9 +425,8 @@ SCH_SHEET* SCH_EAGLE_PLUGIN::Load( const wxString& aFileName, KIWAY* aKiway, SCH
|
||||||
|
|
||||||
if( !m_rootSheet->GetScreen() )
|
if( !m_rootSheet->GetScreen() )
|
||||||
{
|
{
|
||||||
SCH_SCREEN* screen = new SCH_SCREEN( aKiway );
|
SCH_SCREEN* screen = new SCH_SCREEN( m_schematic );
|
||||||
screen->SetFileName( aFileName );
|
screen->SetFileName( aFileName );
|
||||||
screen->SetParent( m_schematic );
|
|
||||||
m_rootSheet->SetScreen( screen );
|
m_rootSheet->SetScreen( screen );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -600,11 +599,10 @@ void SCH_EAGLE_PLUGIN::loadSchematic( wxXmlNode* aSchematicNode )
|
||||||
{
|
{
|
||||||
wxPoint pos = wxPoint( x * Mils2iu( 1000 ), y * Mils2iu( 1000 ) );
|
wxPoint pos = wxPoint( x * Mils2iu( 1000 ), y * Mils2iu( 1000 ) );
|
||||||
std::unique_ptr<SCH_SHEET> sheet( new SCH_SHEET( m_rootSheet, pos ) );
|
std::unique_ptr<SCH_SHEET> sheet( new SCH_SHEET( m_rootSheet, pos ) );
|
||||||
SCH_SCREEN* screen = new SCH_SCREEN( m_kiway );
|
SCH_SCREEN* screen = new SCH_SCREEN( m_schematic );
|
||||||
|
|
||||||
sheet->SetScreen( screen );
|
sheet->SetScreen( screen );
|
||||||
sheet->GetScreen()->SetFileName( sheet->GetFileName() );
|
sheet->GetScreen()->SetFileName( sheet->GetFileName() );
|
||||||
sheet->GetScreen()->SetParent( m_schematic );
|
|
||||||
|
|
||||||
m_currentSheet = sheet.get();
|
m_currentSheet = sheet.get();
|
||||||
loadSheet( sheetNode, i );
|
loadSheet( sheetNode, i );
|
||||||
|
|
|
@ -208,7 +208,7 @@ SCH_EDIT_FRAME::SCH_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ):
|
||||||
wxDefaultPosition, wxDefaultSize, KICAD_DEFAULT_DRAWFRAME_STYLE, SCH_EDIT_FRAME_NAME ),
|
wxDefaultPosition, wxDefaultSize, KICAD_DEFAULT_DRAWFRAME_STYLE, SCH_EDIT_FRAME_NAME ),
|
||||||
m_item_to_repeat( nullptr )
|
m_item_to_repeat( nullptr )
|
||||||
{
|
{
|
||||||
m_schematic = new SCHEMATIC();
|
m_schematic = new SCHEMATIC( &Prj() );
|
||||||
|
|
||||||
m_defaults = &m_schematic->Settings();
|
m_defaults = &m_schematic->Settings();
|
||||||
|
|
||||||
|
@ -419,8 +419,7 @@ void SCH_EDIT_FRAME::CreateScreens()
|
||||||
m_schematic->Reset();
|
m_schematic->Reset();
|
||||||
m_schematic->SetRoot( new SCH_SHEET( m_schematic ) );
|
m_schematic->SetRoot( new SCH_SHEET( m_schematic ) );
|
||||||
|
|
||||||
SCH_SCREEN* rootScreen = new SCH_SCREEN( &Kiway() );
|
SCH_SCREEN* rootScreen = new SCH_SCREEN( m_schematic );
|
||||||
rootScreen->SetParent( m_schematic );
|
|
||||||
rootScreen->SetMaxUndoItems( m_UndoRedoCountMax );
|
rootScreen->SetMaxUndoItems( m_UndoRedoCountMax );
|
||||||
m_schematic->Root().SetScreen( rootScreen );
|
m_schematic->Root().SetScreen( rootScreen );
|
||||||
SetScreen( Schematic().RootScreen() );
|
SetScreen( Schematic().RootScreen() );
|
||||||
|
@ -431,7 +430,7 @@ void SCH_EDIT_FRAME::CreateScreens()
|
||||||
|
|
||||||
if( GetScreen() == NULL )
|
if( GetScreen() == NULL )
|
||||||
{
|
{
|
||||||
SCH_SCREEN* screen = new SCH_SCREEN( &Kiway() );
|
SCH_SCREEN* screen = new SCH_SCREEN( m_schematic );
|
||||||
screen->SetMaxUndoItems( m_UndoRedoCountMax );
|
screen->SetMaxUndoItems( m_UndoRedoCountMax );
|
||||||
SetScreen( screen );
|
SetScreen( screen );
|
||||||
}
|
}
|
||||||
|
|
|
@ -122,7 +122,7 @@ wxString SCH_FIELD::GetShownText( int aDepth ) const
|
||||||
if( processTextVars )
|
if( processTextVars )
|
||||||
{
|
{
|
||||||
if( Schematic() )
|
if( Schematic() )
|
||||||
project = &Schematic()->RootScreen()->Kiway().Prj();
|
project = &Schematic()->Prj();
|
||||||
|
|
||||||
if( aDepth < 10 )
|
if( aDepth < 10 )
|
||||||
{
|
{
|
||||||
|
|
|
@ -692,9 +692,8 @@ void SCH_LEGACY_PLUGIN::loadHierarchy( SCH_SHEET* aSheet )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
aSheet->SetScreen( new SCH_SCREEN( m_kiway ) );
|
aSheet->SetScreen( new SCH_SCREEN( m_schematic ) );
|
||||||
aSheet->GetScreen()->SetFileName( fileName.GetFullPath() );
|
aSheet->GetScreen()->SetFileName( fileName.GetFullPath() );
|
||||||
aSheet->GetScreen()->SetParent( m_schematic );
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
|
@ -120,9 +120,8 @@ static GRID_TYPE SchematicGridList[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
SCH_SCREEN::SCH_SCREEN( KIWAY* aKiway ) :
|
SCH_SCREEN::SCH_SCREEN( EDA_ITEM* aParent ) :
|
||||||
BASE_SCREEN( SCH_SCREEN_T ),
|
BASE_SCREEN( aParent, SCH_SCREEN_T ),
|
||||||
KIWAY_HOLDER( aKiway, KIWAY_HOLDER::HOLDER_TYPE::SCREEN ),
|
|
||||||
m_paper( wxT( "A4" ) )
|
m_paper( wxT( "A4" ) )
|
||||||
{
|
{
|
||||||
m_modification_sync = 0;
|
m_modification_sync = 0;
|
||||||
|
@ -592,13 +591,15 @@ bool SCH_SCREEN::IsTerminalPoint( const wxPoint& aPosition, int aLayer )
|
||||||
|
|
||||||
void SCH_SCREEN::UpdateSymbolLinks( REPORTER* aReporter )
|
void SCH_SCREEN::UpdateSymbolLinks( REPORTER* aReporter )
|
||||||
{
|
{
|
||||||
|
wxCHECK_RET( Schematic(), "Cannot call SCH_SCREEN::UpdateSymbolLinks with no SCHEMATIC" );
|
||||||
|
|
||||||
wxString msg;
|
wxString msg;
|
||||||
std::unique_ptr< LIB_PART > libSymbol;
|
std::unique_ptr< LIB_PART > libSymbol;
|
||||||
std::vector<SCH_COMPONENT*> symbols;
|
std::vector<SCH_COMPONENT*> symbols;
|
||||||
SYMBOL_LIB_TABLE* libs = Prj().SchSymbolLibTable();
|
SYMBOL_LIB_TABLE* libs = Schematic()->Prj().SchSymbolLibTable();
|
||||||
|
|
||||||
// This will be a nullptr if an s-expression schematic is loaded.
|
// This will be a nullptr if an s-expression schematic is loaded.
|
||||||
PART_LIBS* legacyLibs = Prj().SchLibs();
|
PART_LIBS* legacyLibs = Schematic()->Prj().SchLibs();
|
||||||
|
|
||||||
for( auto item : Items().OfType( SCH_COMPONENT_T ) )
|
for( auto item : Items().OfType( SCH_COMPONENT_T ) )
|
||||||
symbols.push_back( static_cast<SCH_COMPONENT*>( item ) );
|
symbols.push_back( static_cast<SCH_COMPONENT*>( item ) );
|
||||||
|
|
|
@ -90,7 +90,7 @@ struct COMPONENT_SELECTION
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class SCH_SCREEN : public BASE_SCREEN, public KIWAY_HOLDER
|
class SCH_SCREEN : public BASE_SCREEN
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
SCH_SCREEN( KIWAY* aKiway );
|
SCH_SCREEN( EDA_ITEM* aParent = nullptr );
|
||||||
|
|
||||||
~SCH_SCREEN();
|
~SCH_SCREEN();
|
||||||
|
|
||||||
|
|
|
@ -523,9 +523,8 @@ void SCH_SEXPR_PLUGIN::loadHierarchy( SCH_SHEET* aSheet )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
aSheet->SetScreen( new SCH_SCREEN( m_kiway ) );
|
aSheet->SetScreen( new SCH_SCREEN( m_schematic ) );
|
||||||
aSheet->GetScreen()->SetFileName( fileName.GetFullPath() );
|
aSheet->GetScreen()->SetFileName( fileName.GetFullPath() );
|
||||||
aSheet->GetScreen()->SetParent( m_schematic );
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
|
@ -520,8 +520,8 @@ wxString SCH_TEXT::GetShownText( int aDepth ) const
|
||||||
|
|
||||||
PROJECT* project = nullptr;
|
PROJECT* project = nullptr;
|
||||||
|
|
||||||
if( Schematic()->RootScreen() )
|
if( Schematic() )
|
||||||
project = &Schematic()->RootScreen()->Kiway().Prj();
|
project = &Schematic()->Prj();
|
||||||
|
|
||||||
if( aDepth < 10 )
|
if( aDepth < 10 )
|
||||||
text = ExpandTextVars( text, &textResolver, project );
|
text = ExpandTextVars( text, &textResolver, project );
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#include <sch_sheet.h>
|
#include <sch_sheet.h>
|
||||||
#include <sch_screen.h>
|
#include <sch_screen.h>
|
||||||
#include <sch_component.h>
|
#include <sch_component.h>
|
||||||
|
#include <schematic.h>
|
||||||
#include <lib_pin.h>
|
#include <lib_pin.h>
|
||||||
#include <preview_items/selection_area.h>
|
#include <preview_items/selection_area.h>
|
||||||
#include <sch_edit_frame.h>
|
#include <sch_edit_frame.h>
|
||||||
|
@ -97,7 +98,7 @@ void SCH_VIEW::DisplaySheet( SCH_SCREEN *aScreen )
|
||||||
|
|
||||||
m_worksheet.reset( new KIGFX::WS_PROXY_VIEW_ITEM( static_cast< int >( IU_PER_MILS ),
|
m_worksheet.reset( new KIGFX::WS_PROXY_VIEW_ITEM( static_cast< int >( IU_PER_MILS ),
|
||||||
&aScreen->GetPageSettings(),
|
&aScreen->GetPageSettings(),
|
||||||
&aScreen->Prj(),
|
&aScreen->Schematic()->Prj(),
|
||||||
&aScreen->GetTitleBlock() ) );
|
&aScreen->GetTitleBlock() ) );
|
||||||
m_worksheet->SetSheetNumber( aScreen->m_ScreenNumber );
|
m_worksheet->SetSheetNumber( aScreen->m_ScreenNumber );
|
||||||
m_worksheet->SetSheetCount( aScreen->m_NumberOfScreens );
|
m_worksheet->SetSheetCount( aScreen->m_NumberOfScreens );
|
||||||
|
|
|
@ -25,8 +25,9 @@
|
||||||
#include <sch_marker.h>
|
#include <sch_marker.h>
|
||||||
|
|
||||||
|
|
||||||
SCHEMATIC::SCHEMATIC() :
|
SCHEMATIC::SCHEMATIC( PROJECT* aPrj ) :
|
||||||
EDA_ITEM( nullptr, SCHEMATIC_T ),
|
EDA_ITEM( nullptr, SCHEMATIC_T ),
|
||||||
|
m_project( aPrj ),
|
||||||
m_rootSheet( nullptr )
|
m_rootSheet( nullptr )
|
||||||
{
|
{
|
||||||
m_currentSheet = new SCH_SHEET_PATH();
|
m_currentSheet = new SCH_SHEET_PATH();
|
||||||
|
|
|
@ -29,6 +29,7 @@ class BUS_ALIAS;
|
||||||
class CONNECTION_GRAPH;
|
class CONNECTION_GRAPH;
|
||||||
class EDA_BASE_FRAME;
|
class EDA_BASE_FRAME;
|
||||||
class ERC_SETTINGS;
|
class ERC_SETTINGS;
|
||||||
|
class PROJECT;
|
||||||
class SCH_SCREEN;
|
class SCH_SCREEN;
|
||||||
class SCH_SHEET;
|
class SCH_SHEET;
|
||||||
|
|
||||||
|
@ -43,6 +44,7 @@ class SCHEMATIC : public EDA_ITEM
|
||||||
friend class SCH_EDIT_FRAME;
|
friend class SCH_EDIT_FRAME;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
PROJECT* m_project;
|
||||||
|
|
||||||
/// The top-level sheet in this schematic hierarchy (or potentially the only one)
|
/// The top-level sheet in this schematic hierarchy (or potentially the only one)
|
||||||
SCH_SHEET* m_rootSheet;
|
SCH_SHEET* m_rootSheet;
|
||||||
|
@ -66,7 +68,7 @@ private:
|
||||||
ERC_SETTINGS* m_ercSettings;
|
ERC_SETTINGS* m_ercSettings;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SCHEMATIC();
|
SCHEMATIC( PROJECT* aPrj );
|
||||||
|
|
||||||
~SCHEMATIC();
|
~SCHEMATIC();
|
||||||
|
|
||||||
|
@ -78,6 +80,17 @@ public:
|
||||||
/// Initializes this schematic to a blank one, unloading anything existing
|
/// Initializes this schematic to a blank one, unloading anything existing
|
||||||
void Reset();
|
void Reset();
|
||||||
|
|
||||||
|
/// Return a reference to the project this schematic is part of
|
||||||
|
PROJECT& Prj() const
|
||||||
|
{
|
||||||
|
return *const_cast<PROJECT*>( m_project );
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetProject( PROJECT& aPrj )
|
||||||
|
{
|
||||||
|
m_project = &aPrj;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds and returns an updated schematic hierarchy
|
* Builds and returns an updated schematic hierarchy
|
||||||
* TODO: can this be cached?
|
* TODO: can this be cached?
|
||||||
|
|
|
@ -94,7 +94,7 @@ bool SCH_EDIT_FRAME::checkForNoFullyDefinedLibIds( SCH_SHEET* aSheet )
|
||||||
|
|
||||||
void SCH_EDIT_FRAME::InitSheet( SCH_SHEET* aSheet, const wxString& aNewFilename )
|
void SCH_EDIT_FRAME::InitSheet( SCH_SHEET* aSheet, const wxString& aNewFilename )
|
||||||
{
|
{
|
||||||
aSheet->SetScreen( new SCH_SCREEN( &Kiway() ) );
|
aSheet->SetScreen( new SCH_SCREEN( &Schematic() ) );
|
||||||
aSheet->GetScreen()->SetModify();
|
aSheet->GetScreen()->SetModify();
|
||||||
aSheet->GetScreen()->SetMaxUndoItems( m_UndoRedoCountMax );
|
aSheet->GetScreen()->SetMaxUndoItems( m_UndoRedoCountMax );
|
||||||
aSheet->GetScreen()->SetFileName( aNewFilename );
|
aSheet->GetScreen()->SetFileName( aNewFilename );
|
||||||
|
|
|
@ -1185,7 +1185,7 @@ int SCH_EDITOR_CONTROL::Paste( const TOOL_EVENT& aEvent )
|
||||||
SCH_SEXPR_PLUGIN plugin;
|
SCH_SEXPR_PLUGIN plugin;
|
||||||
|
|
||||||
SCH_SHEET paste_sheet;
|
SCH_SHEET paste_sheet;
|
||||||
SCH_SCREEN* paste_screen = new SCH_SCREEN( &m_frame->GetScreen()->Kiway() );
|
SCH_SCREEN* paste_screen = new SCH_SCREEN( &m_frame->Schematic() );
|
||||||
|
|
||||||
// Screen object on heap is owned by the sheet.
|
// Screen object on heap is owned by the sheet.
|
||||||
paste_sheet.SetScreen( paste_screen );
|
paste_sheet.SetScreen( paste_screen );
|
||||||
|
|
|
@ -139,7 +139,12 @@ public:
|
||||||
bool m_IsPrinting;
|
bool m_IsPrinting;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
BASE_SCREEN( KICAD_T aType = SCREEN_T );
|
BASE_SCREEN( EDA_ITEM* aParent, KICAD_T aType = SCREEN_T );
|
||||||
|
|
||||||
|
BASE_SCREEN( KICAD_T aType = SCREEN_T ) :
|
||||||
|
BASE_SCREEN( nullptr, aType )
|
||||||
|
{}
|
||||||
|
|
||||||
~BASE_SCREEN() override { }
|
~BASE_SCREEN() override { }
|
||||||
|
|
||||||
void InitDataPoints( const wxSize& aPageSizeInternalUnits );
|
void InitDataPoints( const wxSize& aPageSizeInternalUnits );
|
||||||
|
|
|
@ -39,7 +39,7 @@ class PROJECT;
|
||||||
class KIWAY_HOLDER
|
class KIWAY_HOLDER
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
enum HOLDER_TYPE { DIALOG, FRAME, PANEL, SCREEN };
|
enum HOLDER_TYPE { DIALOG, FRAME, PANEL };
|
||||||
|
|
||||||
KIWAY_HOLDER( KIWAY* aKiway, HOLDER_TYPE aType ) :
|
KIWAY_HOLDER( KIWAY* aKiway, HOLDER_TYPE aType ) :
|
||||||
m_kiway( aKiway ),
|
m_kiway( aKiway ),
|
||||||
|
|
|
@ -39,7 +39,10 @@
|
||||||
class TEST_SCH_SHEET_FIXTURE
|
class TEST_SCH_SHEET_FIXTURE
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TEST_SCH_SHEET_FIXTURE() : m_sheet(), m_csheet( m_sheet )
|
TEST_SCH_SHEET_FIXTURE() :
|
||||||
|
m_schematic( nullptr ),
|
||||||
|
m_sheet(),
|
||||||
|
m_csheet( m_sheet )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue