Commit 9929919b authored by Wayne Stambaugh's avatar Wayne Stambaugh

Fix CvPcb library filtering bug. (fixes lp:1188321)

parent aaab12d3
......@@ -180,3 +180,26 @@ bool FOOTPRINT_LIST::ReadFootprintFiles( FP_LIB_TABLE& aTable )
return true;
}
bool FOOTPRINT_INFO::InLibrary( const wxString& aLibrary ) const
{
if( aLibrary.IsEmpty() )
return false;
if( aLibrary == m_libName || aLibrary == m_libPath )
return true;
wxFileName filename = aLibrary;
if( filename.GetExt().IsEmpty() )
filename.SetExt( LegacyFootprintLibPathExtension );
if( filename.GetFullPath() == m_libPath )
return true;
if( filename.GetPath().IsEmpty() )
filename = wxGetApp().FindLibraryPath( filename.GetFullName() );
return filename.GetFullPath() == m_libPath;
}
......@@ -142,7 +142,7 @@ void FOOTPRINTS_LISTBOX::SetFootprints( FOOTPRINT_LIST& aList, const wxString& a
}
if( (aFilterType & BY_LIBRARY) && !aLibName.IsEmpty()
&& (aList.GetItem( ii ).m_libName != aLibName) )
&& !aList.GetItem( ii ).InLibrary( aLibName ) )
continue;
if( (aFilterType & BY_COMPONENT) && (aComponent != NULL)
......
......@@ -29,6 +29,7 @@
#ifndef FOOTPRINT_INFO_H_
#define FOOTPRINT_INFO_H_
#include <boost/ptr_container/ptr_vector.hpp>
#include <boost/foreach.hpp>
......@@ -46,13 +47,13 @@ class FP_LIB_TABLE;
class FOOTPRINT_INFO
{
public:
wxString m_libName; ///< Name of the library containing this module excluding path and ext.
wxString m_libPath; ///< The full library name and path associated the footprint.
wxString m_Module; ///< Module name.
int m_Num; ///< Order number in the display list.
wxString m_Doc; ///< Footprint description.
wxString m_KeyWord; ///< Footprint key words.
unsigned m_padCount; ///< Number of pads
wxString m_libName; ///< Name of the library containing this module excluding path and ext.
wxString m_libPath; ///< The full library name and path associated the footprint.
wxString m_Module; ///< Module name.
int m_Num; ///< Order number in the display list.
wxString m_Doc; ///< Footprint description.
wxString m_KeyWord; ///< Footprint key words.
unsigned m_padCount; ///< Number of pads
FOOTPRINT_INFO()
{
......@@ -67,6 +68,17 @@ public:
void SetLibraryPath( const wxString& aLibPath ) { m_libPath = aLibPath; }
const wxString& GetLibraryPath() const { return m_libPath; }
/**
* Function InLibrary
* tests if the #FOOTPRINT_INFO object was loaded from \a aLibrary.
*
* @param aLibrary is the file name or the fully qualified path and file name
* to test.
* @return true if the #FOOTPRINT_INFO object was loaded from \a aLibrary. Otherwise
* false.
*/
bool InLibrary( const wxString& aLibrary ) const;
};
......
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