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 ) ...@@ -180,3 +180,26 @@ bool FOOTPRINT_LIST::ReadFootprintFiles( FP_LIB_TABLE& aTable )
return true; 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 ...@@ -142,7 +142,7 @@ void FOOTPRINTS_LISTBOX::SetFootprints( FOOTPRINT_LIST& aList, const wxString& a
} }
if( (aFilterType & BY_LIBRARY) && !aLibName.IsEmpty() if( (aFilterType & BY_LIBRARY) && !aLibName.IsEmpty()
&& (aList.GetItem( ii ).m_libName != aLibName) ) && !aList.GetItem( ii ).InLibrary( aLibName ) )
continue; continue;
if( (aFilterType & BY_COMPONENT) && (aComponent != NULL) if( (aFilterType & BY_COMPONENT) && (aComponent != NULL)
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#ifndef FOOTPRINT_INFO_H_ #ifndef FOOTPRINT_INFO_H_
#define FOOTPRINT_INFO_H_ #define FOOTPRINT_INFO_H_
#include <boost/ptr_container/ptr_vector.hpp> #include <boost/ptr_container/ptr_vector.hpp>
#include <boost/foreach.hpp> #include <boost/foreach.hpp>
...@@ -46,13 +47,13 @@ class FP_LIB_TABLE; ...@@ -46,13 +47,13 @@ class FP_LIB_TABLE;
class FOOTPRINT_INFO class FOOTPRINT_INFO
{ {
public: public:
wxString m_libName; ///< Name of the library containing this module excluding path and ext. 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_libPath; ///< The full library name and path associated the footprint.
wxString m_Module; ///< Module name. wxString m_Module; ///< Module name.
int m_Num; ///< Order number in the display list. int m_Num; ///< Order number in the display list.
wxString m_Doc; ///< Footprint description. wxString m_Doc; ///< Footprint description.
wxString m_KeyWord; ///< Footprint key words. wxString m_KeyWord; ///< Footprint key words.
unsigned m_padCount; ///< Number of pads unsigned m_padCount; ///< Number of pads
FOOTPRINT_INFO() FOOTPRINT_INFO()
{ {
...@@ -67,6 +68,17 @@ public: ...@@ -67,6 +68,17 @@ public:
void SetLibraryPath( const wxString& aLibPath ) { m_libPath = aLibPath; } void SetLibraryPath( const wxString& aLibPath ) { m_libPath = aLibPath; }
const wxString& GetLibraryPath() const { return m_libPath; } 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