Commit c13cdb09 authored by Maciej Suminski's avatar Maciej Suminski

Fixed line width settings in the module editor (GAL).

parent b86ac3b3
...@@ -289,17 +289,21 @@ int DRAWING_TOOL::DrawDimension( TOOL_EVENT& aEvent ) ...@@ -289,17 +289,21 @@ int DRAWING_TOOL::DrawDimension( TOOL_EVENT& aEvent )
break; break;
} }
else if( evt->IsKeyPressed() && step != SET_ORIGIN ) else if( evt->IsAction( &COMMON_ACTIONS::incWidth ) && step != SET_ORIGIN )
{ {
width = dimension->GetWidth(); dimension->SetWidth( dimension->GetWidth() + WIDTH_STEP );
preview.ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
}
// Modify the new item width else if( evt->IsAction( &COMMON_ACTIONS::decWidth ) && step != SET_ORIGIN )
if( evt->KeyCode() == '-' && width > WIDTH_STEP ) {
dimension->SetWidth( width - WIDTH_STEP ); int width = dimension->GetWidth();
else if( evt->KeyCode() == '=' )
dimension->SetWidth( width + WIDTH_STEP );
preview.ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY ); if( width > WIDTH_STEP )
{
dimension->SetWidth( width - WIDTH_STEP );
preview.ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
}
} }
else if( evt->IsClick( BUT_LEFT ) ) else if( evt->IsClick( BUT_LEFT ) )
...@@ -465,17 +469,21 @@ int DRAWING_TOOL::PlaceTarget( TOOL_EVENT& aEvent ) ...@@ -465,17 +469,21 @@ int DRAWING_TOOL::PlaceTarget( TOOL_EVENT& aEvent )
if( evt->IsCancel() || evt->IsActivate() ) if( evt->IsCancel() || evt->IsActivate() )
break; break;
else if( evt->IsKeyPressed() ) else if( evt->IsAction( &COMMON_ACTIONS::incWidth ) )
{
target->SetWidth( target->GetWidth() + WIDTH_STEP );
preview.ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
}
else if( evt->IsAction( &COMMON_ACTIONS::decWidth ) )
{ {
int width = target->GetWidth(); int width = target->GetWidth();
// Modify the new item width if( width > WIDTH_STEP )
if( evt->KeyCode() == '-' && width > WIDTH_STEP ) {
target->SetWidth( width - WIDTH_STEP ); target->SetWidth( width - WIDTH_STEP );
else if( evt->KeyCode() == '=' ) preview.ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
target->SetWidth( width + WIDTH_STEP ); }
preview.ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
} }
else if( evt->IsClick( BUT_LEFT ) ) else if( evt->IsClick( BUT_LEFT ) )
...@@ -893,7 +901,7 @@ bool DRAWING_TOOL::drawSegment( int aShape, DRAWSEGMENT*& aGraphic, ...@@ -893,7 +901,7 @@ bool DRAWING_TOOL::drawSegment( int aShape, DRAWSEGMENT*& aGraphic,
// Init the new item attributes // Init the new item attributes
aGraphic->SetShape( (STROKE_T) aShape ); aGraphic->SetShape( (STROKE_T) aShape );
aGraphic->SetWidth( m_board->GetDesignSettings().m_DrawSegmentWidth ); aGraphic->SetWidth( lineWidth );
aGraphic->SetStart( wxPoint( aStartingPoint->x, aStartingPoint->y ) ); aGraphic->SetStart( wxPoint( aStartingPoint->x, aStartingPoint->y ) );
aGraphic->SetEnd( wxPoint( cursorPos.x, cursorPos.y ) ); aGraphic->SetEnd( wxPoint( cursorPos.x, cursorPos.y ) );
aGraphic->SetLayer( layer ); aGraphic->SetLayer( layer );
...@@ -955,7 +963,8 @@ bool DRAWING_TOOL::drawSegment( int aShape, DRAWSEGMENT*& aGraphic, ...@@ -955,7 +963,8 @@ bool DRAWING_TOOL::drawSegment( int aShape, DRAWSEGMENT*& aGraphic,
{ {
// Init the new item attributes // Init the new item attributes
aGraphic->SetShape( (STROKE_T) aShape ); aGraphic->SetShape( (STROKE_T) aShape );
aGraphic->SetWidth( m_board->GetDesignSettings().m_DrawSegmentWidth ); lineWidth = getSegmentWidth( layer );
aGraphic->SetWidth( lineWidth );
aGraphic->SetStart( wxPoint( cursorPos.x, cursorPos.y ) ); aGraphic->SetStart( wxPoint( cursorPos.x, cursorPos.y ) );
aGraphic->SetEnd( wxPoint( cursorPos.x, cursorPos.y ) ); aGraphic->SetEnd( wxPoint( cursorPos.x, cursorPos.y ) );
aGraphic->SetLayer( layer ); aGraphic->SetLayer( layer );
...@@ -1003,17 +1012,17 @@ bool DRAWING_TOOL::drawSegment( int aShape, DRAWSEGMENT*& aGraphic, ...@@ -1003,17 +1012,17 @@ bool DRAWING_TOOL::drawSegment( int aShape, DRAWSEGMENT*& aGraphic,
else if( evt->IsAction( &COMMON_ACTIONS::incWidth ) ) else if( evt->IsAction( &COMMON_ACTIONS::incWidth ) )
{ {
aGraphic->SetWidth( aGraphic->GetWidth() + WIDTH_STEP ); lineWidth += WIDTH_STEP;
aGraphic->SetWidth( lineWidth );
updatePreview = true; updatePreview = true;
} }
else if( evt->IsAction( &COMMON_ACTIONS::decWidth ) ) else if( evt->IsAction( &COMMON_ACTIONS::decWidth ) )
{ {
int width = aGraphic->GetWidth(); if( lineWidth > WIDTH_STEP )
if( width > WIDTH_STEP )
{ {
aGraphic->SetWidth( width - WIDTH_STEP ); lineWidth -= WIDTH_STEP;
aGraphic->SetWidth( lineWidth );
updatePreview = true; updatePreview = true;
} }
} }
...@@ -1093,7 +1102,7 @@ bool DRAWING_TOOL::drawArc( DRAWSEGMENT*& aGraphic ) ...@@ -1093,7 +1102,7 @@ bool DRAWING_TOOL::drawArc( DRAWSEGMENT*& aGraphic )
// Init the new item attributes // Init the new item attributes
aGraphic->SetShape( S_ARC ); aGraphic->SetShape( S_ARC );
aGraphic->SetAngle( 0.0 ); aGraphic->SetAngle( 0.0 );
aGraphic->SetWidth( m_board->GetDesignSettings().m_DrawSegmentWidth ); aGraphic->SetWidth( getSegmentWidth( layer ) );
aGraphic->SetCenter( wxPoint( cursorPos.x, cursorPos.y ) ); aGraphic->SetCenter( wxPoint( cursorPos.x, cursorPos.y ) );
aGraphic->SetLayer( layer ); aGraphic->SetLayer( layer );
...@@ -1685,3 +1694,17 @@ void DRAWING_TOOL::setTransitions() ...@@ -1685,3 +1694,17 @@ void DRAWING_TOOL::setTransitions()
Go( &DRAWING_TOOL::PlaceDXF, COMMON_ACTIONS::placeDXF.MakeEvent() ); Go( &DRAWING_TOOL::PlaceDXF, COMMON_ACTIONS::placeDXF.MakeEvent() );
Go( &DRAWING_TOOL::SetAnchor, COMMON_ACTIONS::setAnchor.MakeEvent() ); Go( &DRAWING_TOOL::SetAnchor, COMMON_ACTIONS::setAnchor.MakeEvent() );
} }
int DRAWING_TOOL::getSegmentWidth( unsigned int aLayer ) const
{
assert( m_board );
if( aLayer == Edge_Cuts )
return m_board->GetDesignSettings().m_EdgeSegmentWidth;
else if( m_editModules )
return m_board->GetDesignSettings().m_ModuleSegmentWidth;
else
return m_board->GetDesignSettings().m_DrawSegmentWidth;
}
...@@ -191,6 +191,9 @@ private: ...@@ -191,6 +191,9 @@ private:
///> Sets up handlers for various events. ///> Sets up handlers for various events.
void setTransitions(); void setTransitions();
///> Returns the appropriate width for a segment depending on the settings.
int getSegmentWidth( unsigned int aLayer ) const;
KIGFX::VIEW* m_view; KIGFX::VIEW* m_view;
KIGFX::VIEW_CONTROLS* m_controls; KIGFX::VIEW_CONTROLS* m_controls;
BOARD* m_board; BOARD* m_board;
...@@ -199,6 +202,9 @@ private: ...@@ -199,6 +202,9 @@ private:
/// Edit module mode flag /// Edit module mode flag
bool m_editModules; bool m_editModules;
/// Stores the current line width for multisegment drawing.
unsigned int lineWidth;
// How does line width change after one -/+ key press. // How does line width change after one -/+ key press.
static const int WIDTH_STEP = 100000; static const int WIDTH_STEP = 100000;
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment