Browse Source

Make sure preview group gets added to view after a clear.

pull/16/head
Jeff Young 5 years ago
parent
commit
57c3d8e8d8
  1. 7
      common/view/view.cpp
  2. 8
      eeschema/sch_view.cpp
  3. 2
      include/view/view.h
  4. 1
      pcbnew/pcb_base_edit_frame.cpp
  5. 6
      pcbnew/router/router_tool.cpp

7
common/view/view.cpp

@ -1562,6 +1562,13 @@ void VIEW::ClearPreview()
}
void VIEW::InitPreview()
{
m_preview.reset( new KIGFX::VIEW_GROUP() );
Add( m_preview.get() );
}
void VIEW::AddToPreview( EDA_ITEM* aItem, bool aTakeOwnership )
{
Hide( aItem, false );

8
eeschema/sch_view.cpp

@ -112,10 +112,9 @@ void SCH_VIEW::DisplaySheet( SCH_SCREEN *aScreen )
ResizeSheetWorkingArea( aScreen );
m_preview.reset( new KIGFX::VIEW_GROUP() );
Add( m_worksheet.get() );
Add( m_preview.get() );
InitPreview();
}
@ -171,8 +170,7 @@ void SCH_VIEW::DisplayComponent( LIB_PART* aPart )
Add( &item );
}
m_preview.reset( new KIGFX::VIEW_GROUP() );
Add( m_preview.get() );
InitPreview();
}

2
include/view/view.h

@ -663,6 +663,8 @@ public:
std::shared_ptr<VIEW_OVERLAY> MakeOverlay();
void InitPreview();
void ClearPreview();
void AddToPreview( EDA_ITEM* aItem, bool aTakeOwnership = true );

1
pcbnew/pcb_base_edit_frame.cpp

@ -102,6 +102,7 @@ void PCB_BASE_EDIT_FRAME::SetBoard( BOARD* aBoard )
m_toolManager->ResetTools( TOOL_BASE::MODEL_RELOAD );
GetCanvas()->GetView()->Clear();
GetCanvas()->GetView()->InitPreview();
}
PCB_BASE_FRAME::SetBoard( aBoard );

6
pcbnew/router/router_tool.cpp

@ -1422,6 +1422,9 @@ int ROUTER_TOOL::InlineDrag( const TOOL_EVENT& aEvent )
controls()->SetAutoPan( true );
frame()->UndoRedoBlock( true );
view()->ClearPreview();
view()->InitPreview();
while( TOOL_EVENT* evt = Wait() )
{
frame()->GetCanvas()->SetCurrentCursor( wxCURSOR_ARROW );
@ -1456,20 +1459,17 @@ int ROUTER_TOOL::InlineDrag( const TOOL_EVENT& aEvent )
previewItem->Move( offset );
}
view()->Add( previewItem );
view()->AddToPreview( previewItem );
view()->Hide( drawing, true );
}
previewItem = static_cast<BOARD_ITEM*>( module->Reference().Clone() );
previewItem->Move( offset );
view()->Add( previewItem );
view()->AddToPreview( previewItem );
view()->Hide( &module->Reference() );
previewItem = static_cast<BOARD_ITEM*>( module->Value().Clone() );
previewItem->Move( offset );
view()->Add( previewItem );
view()->AddToPreview( previewItem );
view()->Hide( &module->Value() );
}

Loading…
Cancel
Save