kicad-developers team mailing list archive
Mailing list archive
I have noticed I had not followed the indentation standards for this patch
(using tabs and braces not at the right level).
Attached is a new version with this problem fixed, hopefully.
On Sat, Dec 10, 2011 at 11:56 PM, Guillaume Simard <gsimard@xxxxxxxxx>wrote:
> As per the TODO.txt file, there was a bug with CvPCB that would prevent an
> already assigned footprint from being shown in the preview window when the
> selected component changed :
> * Preview of the already assigned footprint.
> This is fixed with the attached patch.
> What was done:
> Whenever the selection in the components listbox is changed
> (CVPCB_MAINFRAME::OnSelectComponent), the list of footprints is searched
> for the actual footprint previously selected, and if found, that footprint
> is selected in the listbox.
> The effect of this is that when the preview frame is opened, the selected
> footprint is now shown. Because this was done in the OnSelectComponent
> function, it also work when the next component is automatically selected
> after double clicking a footprint for the current component.
> To write the patch, I mostly used code as-is from CvPCB, so the notation
> should respect the convention.
> As this is my first patch, I hope all of this has been done properly, and
> any suggestions would be welcomed.
> Guillaume Simard
Guillaume Simard, B.Ing., M.Sc.A.
=== modified file 'cvpcb/cvframe.cpp'
--- cvpcb/cvframe.cpp 2011-10-13 20:13:11 +0000
+++ cvpcb/cvframe.cpp 2011-12-12 02:21:42 +0000
@@ -525,6 +525,24 @@
m_FootprintList->SetFootprintFilteredList( &m_components[ selection ], m_footprints );
+ // * Preview of the already assigned footprint.
+ // Find the footprint that was already choosen for this component and select it.
+ wxString module = *(&m_components[ selection ].m_Module);
+ for (int ii = 0 ; ii < m_FootprintList->GetCount() ; ii++)
+ wxString FootprintName;
+ wxString msg = (*m_FootprintList->m_ActiveFootprintList)[ii];
+ msg.Trim( true );
+ msg.Trim( false );
+ FootprintName = msg.AfterFirst( wxChar( ' ' ) );
+ if (module.Cmp(FootprintName) == 0)
+ m_FootprintList->SetSelection(ii, TRUE);
+ m_FootprintList->SetSelection(ii, FALSE);
From: Guillaume Simard, 2011-12-11