KiCad PCB EDA Suite
|
#include <pcb_io_kicad_sexpr.h>
Public Member Functions | |
FP_CACHE (PCB_IO_KICAD_SEXPR *aOwner, const wxString &aLibraryPath) | |
wxString | GetPath () const |
bool | IsWritable () const |
bool | Exists () const |
FP_CACHE_FOOTPRINT_MAP & | GetFootprints () |
void | Save (FOOTPRINT *aFootprint=nullptr) |
Save the footprint cache or a single footprint from it to disk. | |
void | Load () |
void | Remove (const wxString &aFootprintName) |
bool | IsModified () |
Return true if the cache is not up-to-date. | |
bool | IsPath (const wxString &aPath) const |
Check if aPath is the same as the current cache path. | |
void | SetPath (const wxString &aPath) |
Static Public Member Functions | |
static long long | GetTimestamp (const wxString &aLibPath) |
Generate a timestamp representing all source files in the cache (including the parent directory). | |
Private Attributes | |
PCB_IO_KICAD_SEXPR * | m_owner |
wxFileName | m_lib_path |
wxString | m_lib_raw_path |
FP_CACHE_FOOTPRINT_MAP | m_footprints |
bool | m_cache_dirty |
long long | m_cache_timestamp |
Definition at line 219 of file pcb_io_kicad_sexpr.h.
FP_CACHE::FP_CACHE | ( | PCB_IO_KICAD_SEXPR * | aOwner, |
const wxString & | aLibraryPath | ||
) |
Definition at line 84 of file pcb_io_kicad_sexpr.cpp.
References m_cache_dirty, m_cache_timestamp, m_lib_path, m_lib_raw_path, and m_owner.
|
inline |
Definition at line 238 of file pcb_io_kicad_sexpr.h.
References m_lib_path.
Referenced by PCB_IO_KICAD_SEXPR::FootprintSave().
|
inline |
Definition at line 240 of file pcb_io_kicad_sexpr.h.
References m_footprints.
Referenced by PCB_IO_KICAD_SEXPR::FootprintEnumerate(), PCB_IO_KICAD_SEXPR::FootprintSave(), PCB_IO_KICAD_SEXPR::getFootprint(), PCBNEW_JOBS_HANDLER::JobExportFpSvg(), PCBNEW_JOBS_HANDLER::JobExportFpUpgrade(), and SetPath().
|
inline |
Definition at line 234 of file pcb_io_kicad_sexpr.h.
References m_lib_raw_path.
|
static |
Generate a timestamp representing all source files in the cache (including the parent directory).
Timestamps should not be considered ordered. They either match or they don't.
Definition at line 281 of file pcb_io_kicad_sexpr.cpp.
References FILEEXT::KiCadFootprintFileExtension, and TimestampDir().
Referenced by PCB_IO_KICAD_SEXPR::GetLibraryTimestamp(), IsModified(), and Load().
bool FP_CACHE::IsModified | ( | ) |
Return true if the cache is not up-to-date.
Definition at line 273 of file pcb_io_kicad_sexpr.cpp.
References GetTimestamp(), m_cache_dirty, m_cache_timestamp, and m_lib_path.
Referenced by PCB_IO_KICAD_SEXPR::validateCache().
bool FP_CACHE::IsPath | ( | const wxString & | aPath | ) | const |
Check if aPath is the same as the current cache path.
This tests paths by converting aPath using the native separators. Internally FP_CACHE stores the current path using native separators. This prevents path miscompares on Windows due to the fact that paths can be stored with / instead of \ in the footprint library table.
aPath | is the library path to test against. |
Definition at line 254 of file pcb_io_kicad_sexpr.cpp.
References m_lib_raw_path.
Referenced by PCB_IO_KICAD_SEXPR::DeleteLibrary(), and PCB_IO_KICAD_SEXPR::validateCache().
|
inline |
Definition at line 236 of file pcb_io_kicad_sexpr.h.
References m_lib_path.
Referenced by PCB_IO_KICAD_SEXPR::FootprintDelete(), PCB_IO_KICAD_SEXPR::FootprintSave(), and PCB_IO_KICAD_SEXPR::IsLibraryWritable().
void FP_CACHE::Load | ( | ) |
Definition at line 172 of file pcb_io_kicad_sexpr.cpp.
References _, WX_FILENAME::GetFullPath(), WX_FILENAME::GetName(), GetTimestamp(), FILEEXT::KiCadFootprintFileExtension, m_cache_dirty, m_cache_timestamp, m_footprints, m_lib_raw_path, PCB_IO_KICAD_SEXPR_PARSER::Parse(), FOOTPRINT::SetFPID(), WX_FILENAME::SetFullName(), THROW_IO_ERROR, and IO_ERROR::What().
Referenced by PCBNEW_JOBS_HANDLER::JobExportFpSvg(), PCBNEW_JOBS_HANDLER::JobExportFpUpgrade(), and PCB_IO_KICAD_SEXPR::validateCache().
void FP_CACHE::Remove | ( | const wxString & | aFootprintName | ) |
Definition at line 235 of file pcb_io_kicad_sexpr.cpp.
References _, m_footprints, m_lib_raw_path, and THROW_IO_ERROR.
Referenced by PCB_IO_KICAD_SEXPR::FootprintDelete().
void FP_CACHE::Save | ( | FOOTPRINT * | aFootprint = nullptr | ) |
Save the footprint cache or a single footprint from it to disk.
aFootprint | if set, save only this footprint, otherwise, save the full library |
Definition at line 94 of file pcb_io_kicad_sexpr.cpp.
References _, EMBEDDED_FILES::ClearEmbeddedFonts(), KIPLATFORM::IO::DuplicatePermissions(), FOOTPRINT::EmbedFonts(), PCB_IO_KICAD_SEXPR::Format(), EMBEDDED_FILES::GetAreFontsEmbedded(), FOOTPRINT::GetEmbeddedFiles(), WX_FILENAME::GetFullPath(), WX_FILENAME::GetPath(), WX_FILENAME::GetTimestamp(), m_cache_dirty, m_cache_timestamp, m_footprints, m_lib_path, m_lib_raw_path, m_owner, PCB_IO_KICAD_SEXPR::SetOutputFormatter(), THROW_IO_ERROR, and traceKicadPcbPlugin.
Referenced by PCB_IO_KICAD_SEXPR::CreateLibrary(), PCB_IO_KICAD_SEXPR::FootprintSave(), and PCBNEW_JOBS_HANDLER::JobExportFpUpgrade().
void FP_CACHE::SetPath | ( | const wxString & | aPath | ) |
Definition at line 260 of file pcb_io_kicad_sexpr.cpp.
References GetFootprints(), m_lib_path, and m_lib_raw_path.
Referenced by PCBNEW_JOBS_HANDLER::JobExportFpUpgrade().
|
private |
Definition at line 226 of file pcb_io_kicad_sexpr.h.
Referenced by FP_CACHE(), IsModified(), Load(), and Save().
|
private |
Definition at line 228 of file pcb_io_kicad_sexpr.h.
Referenced by FP_CACHE(), IsModified(), Load(), and Save().
|
private |
Definition at line 224 of file pcb_io_kicad_sexpr.h.
Referenced by GetFootprints(), Load(), Remove(), and Save().
|
private |
Definition at line 222 of file pcb_io_kicad_sexpr.h.
Referenced by Exists(), FP_CACHE(), IsModified(), IsWritable(), Save(), and SetPath().
|
private |
Definition at line 223 of file pcb_io_kicad_sexpr.h.
Referenced by FP_CACHE(), GetPath(), IsPath(), Load(), Remove(), Save(), and SetPath().
|
private |
Definition at line 221 of file pcb_io_kicad_sexpr.h.
Referenced by FP_CACHE(), and Save().