Commit e5b9706f authored by dickelbeck's avatar dickelbeck

Trap bad text layer numbers with DisplayError

parent 3fa93818
...@@ -217,9 +217,18 @@ void WinEDA_BasePcbFrame::Plot_Serigraphie( int format_plot, ...@@ -217,9 +217,18 @@ void WinEDA_BasePcbFrame::Plot_Serigraphie( int format_plot,
trace_ref = Sel_Texte_Reference; // les 2 autorisations de tracer sont donnees trace_ref = Sel_Texte_Reference; // les 2 autorisations de tracer sont donnees
TEXTE_MODULE* text = Module->m_Reference; TEXTE_MODULE* text = Module->m_Reference;
int textLayer = text->GetLayer(); unsigned textLayer = text->GetLayer();
wxASSERT( (unsigned) textLayer < 32 ); if( textLayer >= 32 )
{
wxString errMsg;
errMsg.Printf(
_("Your BOARD has a bad layer number of %u for module\n %s's \"reference\" text."),
textLayer, Module->GetReference().GetData() );
DisplayError( this, errMsg );
goto exit;
}
if( ( (1 << textLayer) & masque_layer ) == 0 ) if( ( (1 << textLayer) & masque_layer ) == 0 )
trace_ref = FALSE; trace_ref = FALSE;
...@@ -230,7 +239,16 @@ void WinEDA_BasePcbFrame::Plot_Serigraphie( int format_plot, ...@@ -230,7 +239,16 @@ void WinEDA_BasePcbFrame::Plot_Serigraphie( int format_plot,
text = Module->m_Value; text = Module->m_Value;
textLayer = text->GetLayer(); textLayer = text->GetLayer();
wxASSERT( (unsigned) textLayer < 32 ); if( textLayer > 32 )
{
wxString errMsg;
errMsg.Printf(
_("Your BOARD has a bad layer number of %u for module\n %s's \"value\" text."),
textLayer, Module->GetReference().GetData() );
DisplayError( this, errMsg );
goto exit;
}
if( ( (1 << textLayer) & masque_layer ) == 0 ) if( ( (1 << textLayer) & masque_layer ) == 0 )
trace_val = FALSE; trace_val = FALSE;
...@@ -265,14 +283,31 @@ void WinEDA_BasePcbFrame::Plot_Serigraphie( int format_plot, ...@@ -265,14 +283,31 @@ void WinEDA_BasePcbFrame::Plot_Serigraphie( int format_plot,
continue; continue;
if( (pt_texte->m_NoShow) && !Sel_Texte_Invisible ) if( (pt_texte->m_NoShow) && !Sel_Texte_Invisible )
continue; continue;
if( (g_TabOneLayerMask[pt_texte->GetLayer()] & masque_layer) == 0 )
textLayer = pt_texte->GetLayer();
if( textLayer >= 32 )
{
wxString errMsg;
errMsg.Printf(
_("Your BOARD has a bad layer number of %u for module\n %s's \"module text\" text of %s."),
textLayer, Module->GetReference().GetData(), pt_texte->m_Text.GetData() );
DisplayError( this, errMsg );
goto exit;
}
if( !( (1<<textLayer) & masque_layer ) )
continue; continue;
PlotTextModule( pt_texte ); PlotTextModule( pt_texte );
nb_items++; nb_items++;
msg.Printf( wxT( "%d" ), nb_items ); msg.Printf( wxT( "%d" ), nb_items );
Affiche_1_Parametre( this, 64, wxEmptyString, msg, LIGHTBLUE ); Affiche_1_Parametre( this, 64, wxEmptyString, msg, LIGHTBLUE );
} }
} }
exit:
;
} }
...@@ -590,10 +625,10 @@ void Plot_1_texte( int format_plot, const wxString& Text, int angle, ...@@ -590,10 +625,10 @@ void Plot_1_texte( int format_plot, const wxString& Text, int angle,
ptcar = graphic_fonte_shape[code]; /* ptcar pointe la description ptcar = graphic_fonte_shape[code]; /* ptcar pointe la description
* du caractere a dessiner */ * du caractere a dessiner */
plume = 'U'; plume = 'U';
ox = sx; ox = sx;
oy = sy; oy = sy;
RotatePoint( &ox, &oy, cX, cY, angle ); RotatePoint( &ox, &oy, cX, cY, angle );
fx = ox; fy = oy; fx = ox; fy = oy;
......
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