Loading pcbnew/tools/point_editor.cpp +6 −4 Original line number Original line Diff line number Diff line Loading @@ -62,7 +62,6 @@ public: case S_SEGMENT: case S_SEGMENT: points->AddPoint( segment->GetStart() ); points->AddPoint( segment->GetStart() ); points->AddPoint( segment->GetEnd() ); points->AddPoint( segment->GetEnd() ); break; break; case S_ARC: case S_ARC: Loading Loading @@ -194,12 +193,14 @@ int POINT_EDITOR::OnSelectionChange( TOOL_EVENT& aEvent ) controls->ShowCursor( true ); controls->ShowCursor( true ); controls->SetAutoPan( true ); controls->SetAutoPan( true ); controls->SetSnapping( true ); controls->SetSnapping( true ); controls->ForceCursorPosition( true, point->GetPosition() ); } } else else { { controls->ShowCursor( false ); controls->ShowCursor( false ); controls->SetAutoPan( false ); controls->SetAutoPan( false ); controls->SetSnapping( false ); controls->SetSnapping( false ); controls->ForceCursorPosition( false ); } } } } Loading @@ -213,6 +214,7 @@ int POINT_EDITOR::OnSelectionChange( TOOL_EVENT& aEvent ) // Save items, so changes can be undone // Save items, so changes can be undone editFrame->OnModify(); editFrame->OnModify(); editFrame->SaveCopyInUndoList( selection.items, UR_CHANGED ); editFrame->SaveCopyInUndoList( selection.items, UR_CHANGED ); controls->ForceCursorPosition( false ); modified = true; modified = true; } } Loading Loading @@ -299,11 +301,11 @@ void POINT_EDITOR::updateItem() const switch( segment->GetShape() ) switch( segment->GetShape() ) { { case S_SEGMENT: case S_SEGMENT: if( &(*m_editPoints)[0] == m_dragPoint ) if( isModified( (*m_editPoints)[0] ) ) segment->SetStart( wxPoint( (*m_editPoints)[0].GetPosition().x, segment->SetStart( wxPoint( (*m_editPoints)[0].GetPosition().x, (*m_editPoints)[0].GetPosition().y ) ); (*m_editPoints)[0].GetPosition().y ) ); else if( &(*m_editPoints)[1] == m_dragPoint ) else if( isModified( (*m_editPoints)[1] ) ) segment->SetEnd( wxPoint( (*m_editPoints)[1].GetPosition().x, segment->SetEnd( wxPoint( (*m_editPoints)[1].GetPosition().x, (*m_editPoints)[1].GetPosition().y ) ); (*m_editPoints)[1].GetPosition().y ) ); Loading Loading @@ -351,7 +353,7 @@ void POINT_EDITOR::updateItem() const const VECTOR2I& center = (*m_editPoints)[0].GetPosition(); const VECTOR2I& center = (*m_editPoints)[0].GetPosition(); const VECTOR2I& end = (*m_editPoints)[1].GetPosition(); const VECTOR2I& end = (*m_editPoints)[1].GetPosition(); if( m_dragPoint == &(*m_editPoints)[0] ) if( isModified( (*m_editPoints)[0] ) ) { { wxPoint moveVector = wxPoint( center.x, center.y ) - segment->GetCenter(); wxPoint moveVector = wxPoint( center.x, center.y ) - segment->GetCenter(); segment->Move( moveVector ); segment->Move( moveVector ); Loading pcbnew/tools/point_editor.h +6 −0 Original line number Original line Diff line number Diff line Loading @@ -74,6 +74,12 @@ private: ///> Updates edit points with item's points. ///> Updates edit points with item's points. void updatePoints() const; void updatePoints() const; ///> Returns true if aPoint is the currently modified point. inline bool isModified( const EDIT_POINT& aPoint ) const { return m_dragPoint == &aPoint; } ///> Returns a point that should be used as a constrainer for 45 degrees mode. ///> Returns a point that should be used as a constrainer for 45 degrees mode. EDIT_POINT get45DegConstrainer() const; EDIT_POINT get45DegConstrainer() const; Loading pcbnew/tools/edit_points.h +1 −1 File changed.Contains only whitespace changes. Show changes Loading
pcbnew/tools/point_editor.cpp +6 −4 Original line number Original line Diff line number Diff line Loading @@ -62,7 +62,6 @@ public: case S_SEGMENT: case S_SEGMENT: points->AddPoint( segment->GetStart() ); points->AddPoint( segment->GetStart() ); points->AddPoint( segment->GetEnd() ); points->AddPoint( segment->GetEnd() ); break; break; case S_ARC: case S_ARC: Loading Loading @@ -194,12 +193,14 @@ int POINT_EDITOR::OnSelectionChange( TOOL_EVENT& aEvent ) controls->ShowCursor( true ); controls->ShowCursor( true ); controls->SetAutoPan( true ); controls->SetAutoPan( true ); controls->SetSnapping( true ); controls->SetSnapping( true ); controls->ForceCursorPosition( true, point->GetPosition() ); } } else else { { controls->ShowCursor( false ); controls->ShowCursor( false ); controls->SetAutoPan( false ); controls->SetAutoPan( false ); controls->SetSnapping( false ); controls->SetSnapping( false ); controls->ForceCursorPosition( false ); } } } } Loading @@ -213,6 +214,7 @@ int POINT_EDITOR::OnSelectionChange( TOOL_EVENT& aEvent ) // Save items, so changes can be undone // Save items, so changes can be undone editFrame->OnModify(); editFrame->OnModify(); editFrame->SaveCopyInUndoList( selection.items, UR_CHANGED ); editFrame->SaveCopyInUndoList( selection.items, UR_CHANGED ); controls->ForceCursorPosition( false ); modified = true; modified = true; } } Loading Loading @@ -299,11 +301,11 @@ void POINT_EDITOR::updateItem() const switch( segment->GetShape() ) switch( segment->GetShape() ) { { case S_SEGMENT: case S_SEGMENT: if( &(*m_editPoints)[0] == m_dragPoint ) if( isModified( (*m_editPoints)[0] ) ) segment->SetStart( wxPoint( (*m_editPoints)[0].GetPosition().x, segment->SetStart( wxPoint( (*m_editPoints)[0].GetPosition().x, (*m_editPoints)[0].GetPosition().y ) ); (*m_editPoints)[0].GetPosition().y ) ); else if( &(*m_editPoints)[1] == m_dragPoint ) else if( isModified( (*m_editPoints)[1] ) ) segment->SetEnd( wxPoint( (*m_editPoints)[1].GetPosition().x, segment->SetEnd( wxPoint( (*m_editPoints)[1].GetPosition().x, (*m_editPoints)[1].GetPosition().y ) ); (*m_editPoints)[1].GetPosition().y ) ); Loading Loading @@ -351,7 +353,7 @@ void POINT_EDITOR::updateItem() const const VECTOR2I& center = (*m_editPoints)[0].GetPosition(); const VECTOR2I& center = (*m_editPoints)[0].GetPosition(); const VECTOR2I& end = (*m_editPoints)[1].GetPosition(); const VECTOR2I& end = (*m_editPoints)[1].GetPosition(); if( m_dragPoint == &(*m_editPoints)[0] ) if( isModified( (*m_editPoints)[0] ) ) { { wxPoint moveVector = wxPoint( center.x, center.y ) - segment->GetCenter(); wxPoint moveVector = wxPoint( center.x, center.y ) - segment->GetCenter(); segment->Move( moveVector ); segment->Move( moveVector ); Loading
pcbnew/tools/point_editor.h +6 −0 Original line number Original line Diff line number Diff line Loading @@ -74,6 +74,12 @@ private: ///> Updates edit points with item's points. ///> Updates edit points with item's points. void updatePoints() const; void updatePoints() const; ///> Returns true if aPoint is the currently modified point. inline bool isModified( const EDIT_POINT& aPoint ) const { return m_dragPoint == &aPoint; } ///> Returns a point that should be used as a constrainer for 45 degrees mode. ///> Returns a point that should be used as a constrainer for 45 degrees mode. EDIT_POINT get45DegConstrainer() const; EDIT_POINT get45DegConstrainer() const; Loading