**Fixed a crash in Pcbnew that happens sometimes when opening the design rules dialog editor.

Preparing 3D view autorefresh when editing a footprint in modedit (not yet working)
This commit is contained in:
Administrateur 2010-04-29 11:27:27 +02:00
commit facbe2802a
7 changed files with 2414 additions and 2235 deletions

View File

@ -33,6 +33,7 @@ double DataScale3D; // 3D conversion units.
BEGIN_EVENT_TABLE( WinEDA3D_DrawFrame, wxFrame )
EVT_ACTIVATE( WinEDA3D_DrawFrame::OnActivate )
EVT_TOOL_RANGE( ID_ZOOM_IN, ID_ZOOM_PAGE, WinEDA3D_DrawFrame::Process_Zoom )
EVT_TOOL_RANGE( ID_START_COMMAND_3D, ID_END_COMMAND_3D,
WinEDA3D_DrawFrame::Process_Special_Functions )
@ -351,6 +352,18 @@ void WinEDA3D_DrawFrame::NewDisplay()
}
void WinEDA3D_DrawFrame::OnActivate( wxActivateEvent& event )
{
// Reload data if 3D frame shows a footprint,
// because it can be changed since last frame activation
if( m_Parent->m_Ident == MODULE_EDITOR_FRAME )
{
// NewDisplay();
}
event.Skip(); // required under wxMAC
}
/* called to set the background color of the 3D scene
*/
void WinEDA3D_DrawFrame::Set3DBgColor()

View File

@ -123,7 +123,7 @@ public:
double m_BoardScale; /* Normalization scale for coordinates:
* when scaled between -1.0 and +1.0 */
double m_LayerZcoord[32];
double m_ActZpos;
double m_ActZpos;
public: Info_3D_Visu();
~Info_3D_Visu();
};
@ -219,6 +219,7 @@ public:
void RedrawActiveWindow( wxDC* DC, bool EraseBg );
void Process_Special_Functions( wxCommandEvent& event );
void Process_Zoom( wxCommandEvent& event );
void OnActivate( wxActivateEvent& event );
void NewDisplay();
void Set3DBgColor();

View File

@ -4,6 +4,14 @@ KiCad ChangeLog 2010
Please add newer entries at the top, list the date and your name with
email address.
2010-apr-29, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++Pcbnew:
Fixed a crash that happens sometimes when opening the design rule dialog.
(due to the sorting function by netclass then by netname)
The sorting by netclass then by netname is now working well.
2010-apr-23, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++Pcbnew:

File diff suppressed because it is too large Load Diff

View File

@ -241,7 +241,7 @@ wxString LIB_COMPONENT::ReturnSubReference( int aUnit )
#if defined(KICAD_GOST)
subRef.Printf( wxT(".%d" ), aUnit);
#else
subRef.Append( aUnit + 'A' - 1 );
subRef.Append( wxChar(aUnit + 'A' - 1) );
#endif
return subRef;
}

View File

@ -290,12 +290,15 @@ void DIALOG_DESIGN_RULES::InitDimensionsLists()
static bool sortByClassThenName( NETCUP* a, NETCUP* b )
{
// return a < b
if( a->clazz < b->clazz )
return true;
if( a->net < b->net )
return true;
// inside the same class, sort by net name:
if( a->clazz == b->clazz )
{
if( a->net < b->net )
return true;
}
return false;
}