KiCad PCB EDA Suite
LIB_TABLE_ROW Class Referenceabstract

Hold a record identifying a library accessed by the appropriate plug in object in the LIB_TABLE. More...

#include <lib_table_base.h>

Inheritance diagram for LIB_TABLE_ROW:
FP_LIB_TABLE_ROW SYMBOL_LIB_TABLE_ROW TEST_LIB_TABLE_ROW

Public Member Functions

 LIB_TABLE_ROW ()
 
virtual ~LIB_TABLE_ROW ()
 
 LIB_TABLE_ROW (const wxString &aNick, const wxString &aURI, const wxString &aOptions, const wxString &aDescr=wxEmptyString)
 
bool operator== (const LIB_TABLE_ROW &r) const
 
bool operator!= (const LIB_TABLE_ROW &r) const
 
const wxString & GetNickName () const
 
void SetNickName (const wxString &aNickName)
 Change the logical name of this library, useful for an editor. More...
 
bool GetIsEnabled () const
 
void SetEnabled (bool aEnabled=true)
 Change the enabled status of this library. More...
 
virtual const wxString GetType () const =0
 Return the type of library represented by this row. More...
 
virtual void SetType (const wxString &aType)=0
 Change the type of library represented by this row that must be implemented in the derived object to provide the library table row type. More...
 
const wxString GetFullURI (bool aSubstituted=false) const
 Return the full location specifying URI for the LIB, either in original UI form or in environment variable expanded form. More...
 
void SetFullURI (const wxString &aFullURI)
 Change the full URI for the library. More...
 
const wxString & GetOptions () const
 Return the options string, which may hold a password or anything else needed to instantiate the underlying library plugin. More...
 
void SetOptions (const wxString &aOptions)
 Change the library options strings. More...
 
const wxString & GetDescr () const
 Return the description of the library referenced by this row. More...
 
void SetDescr (const wxString &aDescr)
 Change the description of the library referenced by this row. More...
 
const PROPERTIESGetProperties () const
 Return the constant PROPERTIES for this library (LIB_TABLE_ROW). More...
 
void Format (OUTPUTFORMATTER *out, int nestLevel) const
 Serialize this object as utf8 text to an OUTPUTFORMATTER, and tries to make it look good using multiple lines and indentation. More...
 
LIB_TABLE_ROWclone () const
 

Protected Member Functions

 LIB_TABLE_ROW (const LIB_TABLE_ROW &aRow)
 
void operator= (const LIB_TABLE_ROW &aRow)
 

Private Member Functions

virtual LIB_TABLE_ROWdo_clone () const =0
 
void setProperties (PROPERTIES *aProperties)
 

Private Attributes

wxString nickName
 
wxString uri_user
 what user entered from UI or loaded from disk More...
 
wxString options
 
wxString description
 
bool enabled = true
 Whether the LIB_TABLE_ROW is enabled. More...
 
std::unique_ptr< PROPERTIESproperties
 

Detailed Description

Hold a record identifying a library accessed by the appropriate plug in object in the LIB_TABLE.

This is an abstract base class from which to derive library specific rows.

Definition at line 65 of file lib_table_base.h.

Constructor & Destructor Documentation

◆ LIB_TABLE_ROW() [1/3]

LIB_TABLE_ROW::LIB_TABLE_ROW ( )
inline

Definition at line 68 of file lib_table_base.h.

69  {
70  }

◆ ~LIB_TABLE_ROW()

virtual LIB_TABLE_ROW::~LIB_TABLE_ROW ( )
inlinevirtual

Definition at line 72 of file lib_table_base.h.

73  {
74  }

◆ LIB_TABLE_ROW() [2/3]

LIB_TABLE_ROW::LIB_TABLE_ROW ( const wxString &  aNick,
const wxString &  aURI,
const wxString &  aOptions,
const wxString &  aDescr = wxEmptyString 
)
inline

Definition at line 76 of file lib_table_base.h.

77  :
78  nickName( aNick ),
79  description( aDescr ),
80  enabled( true )
81  {
82  properties.reset();
83  SetOptions( aOptions );
84  SetFullURI( aURI );
85  }
bool enabled
Whether the LIB_TABLE_ROW is enabled.
std::unique_ptr< PROPERTIES > properties
wxString description
void SetFullURI(const wxString &aFullURI)
Change the full URI for the library.
void SetOptions(const wxString &aOptions)
Change the library options strings.
wxString nickName

References properties, SetFullURI(), and SetOptions().

◆ LIB_TABLE_ROW() [3/3]

LIB_TABLE_ROW::LIB_TABLE_ROW ( const LIB_TABLE_ROW aRow)
inlineprotected

Definition at line 178 of file lib_table_base.h.

178  :
179  nickName( aRow.nickName ),
180  uri_user( aRow.uri_user ),
181 #if !FP_LATE_ENVVAR
182  uri_expanded( aRow.uri_expanded ),
183 #endif
184  options( aRow.options ),
185  description( aRow.description ),
186  enabled( aRow.enabled )
187  {
188  if( aRow.properties )
189  properties = std::make_unique<PROPERTIES>( *aRow.properties.get() );
190  else
191  properties.reset();
192  }
bool enabled
Whether the LIB_TABLE_ROW is enabled.
std::unique_ptr< PROPERTIES > properties
wxString description
wxString options
wxString nickName
wxString uri_user
what user entered from UI or loaded from disk

References properties.

Member Function Documentation

◆ clone()

LIB_TABLE_ROW* LIB_TABLE_ROW::clone ( ) const
inline

Definition at line 172 of file lib_table_base.h.

173  {
174  return do_clone();
175  }
virtual LIB_TABLE_ROW * do_clone() const =0

References do_clone().

Referenced by new_clone(), SYMBOL_GRID_TRICKS::paste_text(), and FP_GRID_TRICKS::paste_text().

◆ do_clone()

virtual LIB_TABLE_ROW* LIB_TABLE_ROW::do_clone ( ) const
privatepure virtual

Implemented in SYMBOL_LIB_TABLE_ROW, FP_LIB_TABLE_ROW, and TEST_LIB_TABLE_ROW.

Referenced by clone().

◆ Format()

void LIB_TABLE_ROW::Format ( OUTPUTFORMATTER out,
int  nestLevel 
) const

Serialize this object as utf8 text to an OUTPUTFORMATTER, and tries to make it look good using multiple lines and indentation.

Parameters
outis an OUTPUTFORMATTER
nestLevelis the indentation level to base all lines of the output. Actual indentation will be 2 spaces for each nestLevel.

Definition at line 85 of file lib_table_base.cpp.

86 {
87  // In Kicad, we save path and file names using the Unix notation (separator = '/')
88  // So ensure separator is always '/' is saved URI string
89  wxString uri = GetFullURI();
90  uri.Replace( '\\', '/' );
91 
92  wxString extraOptions;
93 
94  if( !GetIsEnabled() )
95  {
96  extraOptions += "(disabled)";
97  }
98 
99  out->Print( nestLevel, "(lib (name %s)(type %s)(uri %s)(options %s)(descr %s)%s)\n",
100  out->Quotew( GetNickName() ).c_str(),
101  out->Quotew( GetType() ).c_str(),
102  out->Quotew( uri ).c_str(),
103  out->Quotew( GetOptions() ).c_str(),
104  out->Quotew( GetDescr() ).c_str(),
105  extraOptions.ToStdString().c_str()
106  );
107 }
const wxString & GetOptions() const
Return the options string, which may hold a password or anything else needed to instantiate the under...
virtual const wxString GetType() const =0
Return the type of library represented by this row.
const wxString & GetDescr() const
Return the description of the library referenced by this row.
const wxString GetFullURI(bool aSubstituted=false) const
Return the full location specifying URI for the LIB, either in original UI form or in environment var...
const wxString & GetNickName() const
bool GetIsEnabled() const
std::string Quotew(const wxString &aWrapee)
Definition: richio.cpp:472
int PRINTF_FUNC Print(int nestLevel, const char *fmt,...)
Function Print formats and writes text to the output stream.
Definition: richio.cpp:404

References OUTPUTFORMATTER::Print(), and OUTPUTFORMATTER::Quotew().

◆ GetDescr()

const wxString& LIB_TABLE_ROW::GetDescr ( ) const
inline

◆ GetFullURI()

const wxString LIB_TABLE_ROW::GetFullURI ( bool  aSubstituted = false) const

Return the full location specifying URI for the LIB, either in original UI form or in environment variable expanded form.

Parameters
aSubstitutedTells if caller wanted the substituted form, else not.

Definition at line 69 of file lib_table_base.cpp.

70 {
71  if( aSubstituted )
72  {
73 #if !FP_LATE_ENVVAR // early expansion
74  return uri_expanded;
75 
76 #else // late expansion
77  return ExpandEnvVarSubstitutions( uri_user, nullptr );
78 #endif
79  }
80 
81  return uri_user;
82 }
const wxString ExpandEnvVarSubstitutions(const wxString &aString, PROJECT *aProject)
Replace any environment variable & text variable references with their values.
Definition: common.cpp:574
wxString uri_user
what user entered from UI or loaded from disk

References ExpandEnvVarSubstitutions().

Referenced by SYMBOL_LIB_TABLE::CreateSymbolLib(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromLibrary(), SYMBOL_LIB_TABLE::DeleteSymbol(), SYMBOL_LIB_TABLE::DeleteSymbolLib(), LIB_VIEW_FRAME::DisplayLibInfos(), SYMBOL_LIB_TABLE::EnumerateSymbolLib(), FP_LIB_TABLE::FootprintDelete(), FP_LIB_TABLE::FootprintEnumerate(), FP_LIB_TABLE::FootprintExists(), FP_LIB_TABLE::FootprintLibCreate(), FP_LIB_TABLE::FootprintLibDelete(), FP_LIB_TABLE::FootprintLoad(), FP_LIB_TABLE::FootprintSave(), FP_LIB_TABLE::GenerateTimestamp(), FP_LIB_TABLE::GetEnumeratedFootprint(), LIB_TABLE::GetFullURI(), LIB_TABLE_GRID::GetValue(), FP_LIB_TABLE::IsFootprintLibWritable(), SYMBOL_LIB_TABLE::IsSymbolLibWritable(), SCH_EDIT_FRAME::LoadSheetFromFile(), SYMBOL_LIB_TABLE::LoadSymbol(), SYMBOL_LIB_TABLE::LoadSymbolLib(), FP_LIB_TABLE::PrefetchLib(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), SYMBOL_LIB_TABLE::SaveSymbol(), and FOOTPRINT_VIEWER_FRAME::UpdateTitle().

◆ GetIsEnabled()

bool LIB_TABLE_ROW::GetIsEnabled ( ) const
inline
Returns
the enabled status of this library row

Definition at line 104 of file lib_table_base.h.

104 { return enabled; }
bool enabled
Whether the LIB_TABLE_ROW is enabled.

References enabled.

Referenced by LIB_TABLE_GRID::GetValue(), LIB_TABLE_GRID::GetValueAsBool(), LIB_TABLE::HasLibrary(), SYMBOL_LIB_TABLE_ROW::SYMBOL_LIB_TABLE_ROW(), and PANEL_SYM_LIB_TABLE::verifyTables().

◆ GetNickName()

◆ GetOptions()

const wxString& LIB_TABLE_ROW::GetOptions ( ) const
inline

Return the options string, which may hold a password or anything else needed to instantiate the underlying library plugin.

Definition at line 139 of file lib_table_base.h.

139 { return options; }
wxString options

References options.

Referenced by SYMBOL_LIB_TABLE::EnumerateSymbolLib(), LIB_TABLE_GRID::GetValue(), SCH_EDIT_FRAME::LoadSheetFromFile(), SYMBOL_LIB_TABLE::LoadSymbolLib(), and FP_GRID_TRICKS::optionsEditor().

◆ GetProperties()

◆ GetType()

virtual const wxString LIB_TABLE_ROW::GetType ( ) const
pure virtual

Return the type of library represented by this row.

Implemented in SYMBOL_LIB_TABLE_ROW, FP_LIB_TABLE_ROW, and TEST_LIB_TABLE_ROW.

Referenced by LIB_TABLE_GRID::GetValue(), and FP_GRID_TRICKS::optionsEditor().

◆ operator!=()

bool LIB_TABLE_ROW::operator!= ( const LIB_TABLE_ROW r) const
inline

Definition at line 89 of file lib_table_base.h.

89 { return !( *this == r ); }

◆ operator=()

void LIB_TABLE_ROW::operator= ( const LIB_TABLE_ROW aRow)
protected

◆ operator==()

bool LIB_TABLE_ROW::operator== ( const LIB_TABLE_ROW r) const

Definition at line 110 of file lib_table_base.cpp.

111 {
112  return nickName == r.nickName
113  && uri_user == r.uri_user
114  && options == r.options
115  && description == r.description
116  && enabled == r.enabled;
117 }
bool enabled
Whether the LIB_TABLE_ROW is enabled.
wxString description
wxString options
wxString nickName
wxString uri_user
what user entered from UI or loaded from disk

References description, enabled, nickName, options, and uri_user.

Referenced by FP_LIB_TABLE_ROW::operator==(), and SYMBOL_LIB_TABLE_ROW::operator==().

◆ SetDescr()

void LIB_TABLE_ROW::SetDescr ( const wxString &  aDescr)
inline

Change the description of the library referenced by this row.

Definition at line 154 of file lib_table_base.h.

154 { description = aDescr; }
wxString description

References description.

Referenced by LIB_TABLE_GRID::SetValue().

◆ SetEnabled()

void LIB_TABLE_ROW::SetEnabled ( bool  aEnabled = true)
inline

Change the enabled status of this library.

Definition at line 109 of file lib_table_base.h.

109 { enabled = aEnabled; }
bool enabled
Whether the LIB_TABLE_ROW is enabled.

References enabled.

Referenced by LIB_TABLE_GRID::SetValue(), LIB_TABLE_GRID::SetValueAsBool(), and SYMBOL_LIB_TABLE_ROW::SYMBOL_LIB_TABLE_ROW().

◆ SetFullURI()

void LIB_TABLE_ROW::SetFullURI ( const wxString &  aFullURI)

Change the full URI for the library.

Definition at line 59 of file lib_table_base.cpp.

60 {
61  uri_user = aFullURI;
62 
63 #if !FP_LATE_ENVVAR
64  uri_expanded = FP_LIB_TABLE::ExpandSubstitutions( aFullURI );
65 #endif
66 }
wxString uri_user
what user entered from UI or loaded from disk

Referenced by LIB_TABLE_ROW(), and LIB_TABLE_GRID::SetValue().

◆ SetNickName()

void LIB_TABLE_ROW::SetNickName ( const wxString &  aNickName)
inline

Change the logical name of this library, useful for an editor.

Definition at line 99 of file lib_table_base.h.

99 { nickName = aNickName; }
wxString nickName

References nickName.

Referenced by LIB_TABLE_GRID::SetValue().

◆ SetOptions()

void LIB_TABLE_ROW::SetOptions ( const wxString &  aOptions)

Change the library options strings.

Definition at line 120 of file lib_table_base.cpp.

121 {
122  options = aOptions;
123 
124  // set PROPERTIES* from options
126 }
void setProperties(PROPERTIES *aProperties)
static PROPERTIES * ParseOptions(const std::string &aOptionsList)
Parses aOptionsList and places the result into a PROPERTIES object which is returned.
wxString options
#define TO_UTF8(wxstring)

References LIB_TABLE::ParseOptions(), and TO_UTF8.

Referenced by SYMBOL_LIB_TABLE::EnumerateSymbolLib(), LIB_TABLE_ROW(), SYMBOL_LIB_TABLE::LoadSymbolLib(), FP_GRID_TRICKS::optionsEditor(), and LIB_TABLE_GRID::SetValue().

◆ setProperties()

void LIB_TABLE_ROW::setProperties ( PROPERTIES aProperties)
private

Definition at line 53 of file lib_table_base.cpp.

54 {
55  properties.reset( aProperties );
56 }
std::unique_ptr< PROPERTIES > properties

◆ SetType()

virtual void LIB_TABLE_ROW::SetType ( const wxString &  aType)
pure virtual

Change the type of library represented by this row that must be implemented in the derived object to provide the library table row type.

Implemented in FP_LIB_TABLE_ROW, SYMBOL_LIB_TABLE_ROW, and TEST_LIB_TABLE_ROW.

Referenced by LIB_TABLE_GRID::SetValue().

Member Data Documentation

◆ description

wxString LIB_TABLE_ROW::description
private

Definition at line 209 of file lib_table_base.h.

Referenced by GetDescr(), operator==(), and SetDescr().

◆ enabled

bool LIB_TABLE_ROW::enabled = true
private

Whether the LIB_TABLE_ROW is enabled.

Definition at line 211 of file lib_table_base.h.

Referenced by GetIsEnabled(), operator==(), and SetEnabled().

◆ nickName

wxString LIB_TABLE_ROW::nickName
private

Definition at line 201 of file lib_table_base.h.

Referenced by GetNickName(), operator==(), and SetNickName().

◆ options

wxString LIB_TABLE_ROW::options
private

Definition at line 208 of file lib_table_base.h.

Referenced by GetOptions(), and operator==().

◆ properties

std::unique_ptr< PROPERTIES > LIB_TABLE_ROW::properties
private

Definition at line 213 of file lib_table_base.h.

Referenced by GetProperties(), and LIB_TABLE_ROW().

◆ uri_user

wxString LIB_TABLE_ROW::uri_user
private

what user entered from UI or loaded from disk

Definition at line 202 of file lib_table_base.h.

Referenced by operator==().


The documentation for this class was generated from the following files: