pcbnew: GAL updates the worksheet layout when it is reloaded.
This commit is contained in:
parent
2c1cef339f
commit
9195409f5e
|
@ -135,7 +135,7 @@ public:
|
||||||
*/
|
*/
|
||||||
EDA_RECT GetBoardBoundingBox( bool aBoardEdgesOnly = false ) const;
|
EDA_RECT GetBoardBoundingBox( bool aBoardEdgesOnly = false ) const;
|
||||||
|
|
||||||
void SetPageSettings( const PAGE_INFO& aPageSettings ); // overload
|
virtual void SetPageSettings( const PAGE_INFO& aPageSettings ); // overload
|
||||||
const PAGE_INFO& GetPageSettings() const; // overload
|
const PAGE_INFO& GetPageSettings() const; // overload
|
||||||
const wxSize GetPageSizeIU() const; // overload
|
const wxSize GetPageSizeIU() const; // overload
|
||||||
|
|
||||||
|
|
|
@ -855,9 +855,12 @@ public:
|
||||||
*/
|
*/
|
||||||
bool Clear_Pcb( bool aQuery );
|
bool Clear_Pcb( bool aQuery );
|
||||||
|
|
||||||
/// @copydoc PCB_BASE_FRAME::SetBoard()
|
///> @copydoc PCB_BASE_FRAME::SetBoard()
|
||||||
void SetBoard( BOARD* aBoard );
|
void SetBoard( BOARD* aBoard );
|
||||||
|
|
||||||
|
///> @copydoc PCB_BASE_FRAME::SetPageSettings()
|
||||||
|
void SetPageSettings( const PAGE_INFO& aPageSettings ); // overload
|
||||||
|
|
||||||
// Drc control
|
// Drc control
|
||||||
|
|
||||||
/* function GetDrcController
|
/* function GetDrcController
|
||||||
|
|
|
@ -500,10 +500,32 @@ void PCB_EDIT_FRAME::SetBoard( BOARD* aBoard )
|
||||||
drawPanel->DisplayBoard( aBoard );
|
drawPanel->DisplayBoard( aBoard );
|
||||||
aBoard->GetRatsnest()->Recalculate();
|
aBoard->GetRatsnest()->Recalculate();
|
||||||
|
|
||||||
|
// reload the worksheet
|
||||||
|
SetPageSettings( aBoard->GetPageSettings() );
|
||||||
|
|
||||||
|
// update the tool manager with the new board and its view.
|
||||||
|
if( m_toolManager )
|
||||||
|
{
|
||||||
|
m_toolManager->SetEnvironment( aBoard, drawPanel->GetView(),
|
||||||
|
drawPanel->GetViewControls(), this );
|
||||||
|
m_toolManager->ResetTools( TOOL_BASE::MODEL_RELOAD );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PCB_EDIT_FRAME::SetPageSettings( const PAGE_INFO& aPageSettings )
|
||||||
|
{
|
||||||
|
PCB_BASE_FRAME::SetPageSettings( aPageSettings );
|
||||||
|
|
||||||
|
if( IsGalCanvasActive() )
|
||||||
|
{
|
||||||
|
PCB_DRAW_PANEL_GAL* drawPanel = static_cast<PCB_DRAW_PANEL_GAL*>( GetGalCanvas() );
|
||||||
|
|
||||||
// Prepare worksheet template
|
// Prepare worksheet template
|
||||||
KIGFX::WORKSHEET_VIEWITEM* worksheet;
|
KIGFX::WORKSHEET_VIEWITEM* worksheet;
|
||||||
worksheet = new KIGFX::WORKSHEET_VIEWITEM( &aBoard->GetPageSettings(),
|
worksheet = new KIGFX::WORKSHEET_VIEWITEM( &m_Pcb->GetPageSettings(),
|
||||||
&aBoard->GetTitleBlock() );
|
&m_Pcb->GetTitleBlock() );
|
||||||
worksheet->SetSheetName( std::string( GetScreenDesc().mb_str() ) );
|
worksheet->SetSheetName( std::string( GetScreenDesc().mb_str() ) );
|
||||||
|
|
||||||
BASE_SCREEN* screen = GetScreen();
|
BASE_SCREEN* screen = GetScreen();
|
||||||
|
@ -516,14 +538,6 @@ void PCB_EDIT_FRAME::SetBoard( BOARD* aBoard )
|
||||||
|
|
||||||
// PCB_DRAW_PANEL_GAL takes ownership of the worksheet
|
// PCB_DRAW_PANEL_GAL takes ownership of the worksheet
|
||||||
drawPanel->SetWorksheet( worksheet );
|
drawPanel->SetWorksheet( worksheet );
|
||||||
|
|
||||||
// update the tool manager with the new board and its view.
|
|
||||||
if( m_toolManager )
|
|
||||||
{
|
|
||||||
m_toolManager->SetEnvironment( aBoard, drawPanel->GetView(),
|
|
||||||
drawPanel->GetViewControls(), this );
|
|
||||||
m_toolManager->ResetTools( TOOL_BASE::MODEL_RELOAD );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue