← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Add live footprint filtering in modview window

 

On Mon, Oct 30, 2017 at 11:42 AM, Wayne Stambaugh <stambaughw@xxxxxxxxx>
wrote:

> On 10/30/2017 1:16 PM, Seth Hillbrand wrote:
> > Oliver, this is neat and very helpful.
> >
> > The greyed-out thing is a wx2.8 bug.  You can work around it by setting
> > the foreground color when updating the filter like this:
> >
> >  void FOOTPRINT_VIEWER_FRAME::OnFilterUpdated( wxCommandEvent& event )
> >  {
> > +    // Workaround wx2.8 bug showing greyed color
> > +    if( m_searchBox->GetValue() != m_searchBox->GetDescriptiveText() )
> > +        m_searchBox->SetForegroundColour(
> > m_searchBox->GetDefaultAttributes().colFg );
> > +
> >      // Filter is non case sensitive
> >      wxString filter = m_searchBox->GetValue().Lower();
> >
> > The searchbox handles resetting it to grey on idle() when the text is
> empty.
>
> Don't you mean wx 3.0?  CMake should not even generate the build
> configuration files without wx 3.0 or greater.
>

Hmm... This was an issue back in 2.8 that appears to be only partly fixed.
The workaround I suggest above is functional but, for this, we can also
execute a cleaner fix by setting the descriptive text in the declaration:

@@ -67,9 +67,10 @@ void FOOTPRINT_VIEWER_FRAME::ReCreateHToolbar()
                                 KiBitmap( module_xpm ),
                                 _( "Select footprint to browse" ) );

-        m_searchBox = new wxSearchCtrl( m_mainToolBar,
ID_MODVIEW_SEARCH_TEXT );
+        m_searchBox = new wxSearchCtrl( m_mainToolBar,
ID_MODVIEW_SEARCH_TEXT,
+                _( "Enter filter string" ) );
         m_searchBox->SetMinSize( wxSize( 250, 30 ) );
-        m_searchBox->SetDescriptiveText( _( "Enter filter string" ) );

Follow ups

References