Loading pcbnew/moduleframe.cpp +1 −19 Original line number Diff line number Diff line Loading @@ -696,24 +696,6 @@ void FOOTPRINT_EDIT_FRAME::updateTitle() void FOOTPRINT_EDIT_FRAME::updateView() { static_cast<PCB_DRAW_PANEL_GAL*>( GetGalCanvas() )->DisplayBoard( GetBoard() ); m_Pcb->ComputeBoundingBox( false ); EDA_RECT boardBbox = m_Pcb->GetBoundingBox(); BOX2D bbox; if( boardBbox.GetSize().x > 0 && boardBbox.GetSize().y > 0 ) { bbox.SetOrigin( VECTOR2D( boardBbox.GetOrigin() ) ); bbox.SetSize( VECTOR2D( boardBbox.GetSize() ) ); } else { // Default empty view bbox.SetOrigin( VECTOR2D( -1000, -1000 ) ); bbox.SetSize( VECTOR2D( 2000, 2000 ) ); } GetGalCanvas()->GetView()->SetViewport( bbox ); m_toolManager->RunAction( COMMON_ACTIONS::zoomFitScreen ); m_toolManager->ResetTools( TOOL_BASE::MODEL_RELOAD ); } pcbnew/modview_frame.cpp +20 −6 Original line number Diff line number Diff line Loading @@ -466,7 +466,7 @@ void FOOTPRINT_VIEWER_FRAME::ClickOnFootprintList( wxCommandEvent& event ) UpdateTitle(); if( IsGalCanvasActive() ) redrawGal(); updateView(); Zoom_Automatique( false ); m_canvas->Refresh(); Loading Loading @@ -851,7 +851,7 @@ void FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint( int aMode ) Update3D_Frame(); if( IsGalCanvasActive() ) redrawGal(); updateView(); } Loading Loading @@ -880,12 +880,26 @@ void FOOTPRINT_VIEWER_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) } void FOOTPRINT_VIEWER_FRAME::redrawGal() void FOOTPRINT_VIEWER_FRAME::updateView() { static_cast<PCB_DRAW_PANEL_GAL*>( GetGalCanvas() )->DisplayBoard( m_Pcb ); static_cast<PCB_DRAW_PANEL_GAL*>( GetGalCanvas() )->DisplayBoard( GetBoard() ); // Autozoom m_Pcb->ComputeBoundingBox( false ); EDA_RECT boardBbox = m_Pcb->GetBoundingBox(); GetGalCanvas()->GetView()->SetViewport( BOX2D( boardBbox.GetOrigin(), boardBbox.GetSize() ) ); BOX2D bbox; // Autozoom if( boardBbox.GetSize().x > 0 && boardBbox.GetSize().y > 0 ) { bbox.SetOrigin( VECTOR2D( boardBbox.GetOrigin() ) ); bbox.SetSize( VECTOR2D( boardBbox.GetSize() ) ); } else { // Default empty view bbox.SetOrigin( VECTOR2D( -1000, -1000 ) ); bbox.SetSize( VECTOR2D( 2000, 2000 ) ); } GetGalCanvas()->GetView()->SetViewport( bbox ); } pcbnew/modview_frame.h +1 −1 Original line number Diff line number Diff line Loading @@ -172,7 +172,7 @@ private: void SaveCopyInUndoList( BOARD_ITEM*, UNDO_REDO_T, const wxPoint& ) {} void SaveCopyInUndoList( const PICKED_ITEMS_LIST&, UNDO_REDO_T, const wxPoint &) {} void redrawGal(); void updateView(); DECLARE_EVENT_TABLE() }; Loading pcbnew/tools/pcbnew_control.cpp +20 −8 Original line number Diff line number Diff line Loading @@ -109,6 +109,16 @@ int PCBNEW_CONTROL::ZoomFitScreen( TOOL_EVENT& aEvent ) KIGFX::VIEW* view = m_frame->GetGalCanvas()->GetView(); KIGFX::GAL* gal = m_frame->GetGalCanvas()->GetGAL(); BOX2I boardBBox = getModel<BOARD>()->ViewBBox(); if( boardBBox.GetSize().x == 0 || boardBBox.GetSize().y == 0 ) { // Empty view view->SetScale( 100000.0 ); view->SetCenter( VECTOR2D( 0, 0 ) ); } else { // Autozoom to board VECTOR2I screenSize = gal->GetScreenPixelSize(); double iuPerX = screenSize.x ? boardBBox.GetWidth() / screenSize.x : 1.0; Loading @@ -120,6 +130,8 @@ int PCBNEW_CONTROL::ZoomFitScreen( TOOL_EVENT& aEvent ) view->SetScale( zoom ); view->SetCenter( boardBBox.Centre() ); } setTransitions(); return 0; Loading Loading
pcbnew/moduleframe.cpp +1 −19 Original line number Diff line number Diff line Loading @@ -696,24 +696,6 @@ void FOOTPRINT_EDIT_FRAME::updateTitle() void FOOTPRINT_EDIT_FRAME::updateView() { static_cast<PCB_DRAW_PANEL_GAL*>( GetGalCanvas() )->DisplayBoard( GetBoard() ); m_Pcb->ComputeBoundingBox( false ); EDA_RECT boardBbox = m_Pcb->GetBoundingBox(); BOX2D bbox; if( boardBbox.GetSize().x > 0 && boardBbox.GetSize().y > 0 ) { bbox.SetOrigin( VECTOR2D( boardBbox.GetOrigin() ) ); bbox.SetSize( VECTOR2D( boardBbox.GetSize() ) ); } else { // Default empty view bbox.SetOrigin( VECTOR2D( -1000, -1000 ) ); bbox.SetSize( VECTOR2D( 2000, 2000 ) ); } GetGalCanvas()->GetView()->SetViewport( bbox ); m_toolManager->RunAction( COMMON_ACTIONS::zoomFitScreen ); m_toolManager->ResetTools( TOOL_BASE::MODEL_RELOAD ); }
pcbnew/modview_frame.cpp +20 −6 Original line number Diff line number Diff line Loading @@ -466,7 +466,7 @@ void FOOTPRINT_VIEWER_FRAME::ClickOnFootprintList( wxCommandEvent& event ) UpdateTitle(); if( IsGalCanvasActive() ) redrawGal(); updateView(); Zoom_Automatique( false ); m_canvas->Refresh(); Loading Loading @@ -851,7 +851,7 @@ void FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint( int aMode ) Update3D_Frame(); if( IsGalCanvasActive() ) redrawGal(); updateView(); } Loading Loading @@ -880,12 +880,26 @@ void FOOTPRINT_VIEWER_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) } void FOOTPRINT_VIEWER_FRAME::redrawGal() void FOOTPRINT_VIEWER_FRAME::updateView() { static_cast<PCB_DRAW_PANEL_GAL*>( GetGalCanvas() )->DisplayBoard( m_Pcb ); static_cast<PCB_DRAW_PANEL_GAL*>( GetGalCanvas() )->DisplayBoard( GetBoard() ); // Autozoom m_Pcb->ComputeBoundingBox( false ); EDA_RECT boardBbox = m_Pcb->GetBoundingBox(); GetGalCanvas()->GetView()->SetViewport( BOX2D( boardBbox.GetOrigin(), boardBbox.GetSize() ) ); BOX2D bbox; // Autozoom if( boardBbox.GetSize().x > 0 && boardBbox.GetSize().y > 0 ) { bbox.SetOrigin( VECTOR2D( boardBbox.GetOrigin() ) ); bbox.SetSize( VECTOR2D( boardBbox.GetSize() ) ); } else { // Default empty view bbox.SetOrigin( VECTOR2D( -1000, -1000 ) ); bbox.SetSize( VECTOR2D( 2000, 2000 ) ); } GetGalCanvas()->GetView()->SetViewport( bbox ); }
pcbnew/modview_frame.h +1 −1 Original line number Diff line number Diff line Loading @@ -172,7 +172,7 @@ private: void SaveCopyInUndoList( BOARD_ITEM*, UNDO_REDO_T, const wxPoint& ) {} void SaveCopyInUndoList( const PICKED_ITEMS_LIST&, UNDO_REDO_T, const wxPoint &) {} void redrawGal(); void updateView(); DECLARE_EVENT_TABLE() }; Loading
pcbnew/tools/pcbnew_control.cpp +20 −8 Original line number Diff line number Diff line Loading @@ -109,6 +109,16 @@ int PCBNEW_CONTROL::ZoomFitScreen( TOOL_EVENT& aEvent ) KIGFX::VIEW* view = m_frame->GetGalCanvas()->GetView(); KIGFX::GAL* gal = m_frame->GetGalCanvas()->GetGAL(); BOX2I boardBBox = getModel<BOARD>()->ViewBBox(); if( boardBBox.GetSize().x == 0 || boardBBox.GetSize().y == 0 ) { // Empty view view->SetScale( 100000.0 ); view->SetCenter( VECTOR2D( 0, 0 ) ); } else { // Autozoom to board VECTOR2I screenSize = gal->GetScreenPixelSize(); double iuPerX = screenSize.x ? boardBBox.GetWidth() / screenSize.x : 1.0; Loading @@ -120,6 +130,8 @@ int PCBNEW_CONTROL::ZoomFitScreen( TOOL_EVENT& aEvent ) view->SetScale( zoom ); view->SetCenter( boardBBox.Centre() ); } setTransitions(); return 0; Loading