KiCad PCB EDA Suite
|
#include <eda_base_frame.h>
#include <kiplatform/app.h>
#include <project.h>
#include <common.h>
#include <env_vars.h>
#include <reporter.h>
#include <macros.h>
#include <mutex>
#include <wx/config.h>
#include <wx/log.h>
#include <wx/msgdlg.h>
#include <wx/stdpaths.h>
#include <wx/url.h>
#include <wx/utils.h>
#include <wx/regex.h>
Go to the source code of this file.
Enumerations | |
enum | Bracket { Bracket_None , Bracket_Normal = ')' , Bracket_Curly = '}' , Bracket_Max } |
Functions | |
wxString | ExpandTextVars (const wxString &aSource, const PROJECT *aProject, int aFlags) |
wxString | ExpandTextVars (const wxString &aSource, const std::function< bool(wxString *)> *aResolver, int aFlags) |
wxString | GetTextVars (const wxString &aSource) |
Returns any variables unexpanded, e.g. | |
bool | IsTextVar (const wxString &aSource) |
Returns true if the string is a text var, e.g starts with ${. | |
wxString | KIwxExpandEnvVars (const wxString &str, const PROJECT *aProject, std::set< wxString > *aSet=nullptr) |
const wxString | ExpandEnvVarSubstitutions (const wxString &aString, const PROJECT *aProject) |
Replace any environment variable & text variable references with their values. | |
const wxString | ResolveUriByEnvVars (const wxString &aUri, const PROJECT *aProject) |
Replace any environment and/or text variables in URIs. | |
bool | EnsureFileDirectoryExists (wxFileName *aTargetFullFileName, const wxString &aBaseFilename, REPORTER *aReporter) |
Make aTargetFullFileName absolute and create the path of this file if it doesn't yet exist. | |
wxString | EnsureFileExtension (const wxString &aFilename, const wxString &aExtension) |
It's annoying to throw up nag dialogs when the extension isn't right. | |
bool | matchWild (const char *pat, const char *text, bool dot_special) |
Performance enhancements to file and directory operations. | |
long long | TimestampDir (const wxString &aDirPath, const wxString &aFilespec) |
A copy of ConvertFileTimeToWx() because wxWidgets left it as a static function private to src/common/filename.cpp. | |
bool | WarnUserIfOperatingSystemUnsupported () |
Checks if the operating system is explicitly unsupported and displays a disclaimer message box. | |
enum Bracket |
Enumerator | |
---|---|
Bracket_None | |
Bracket_Normal | |
Bracket_Curly | |
Bracket_Max |
Definition at line 47 of file common.cpp.
bool EnsureFileDirectoryExists | ( | wxFileName * | aTargetFullFileName, |
const wxString & | aBaseFilename, | ||
REPORTER * | aReporter = nullptr |
||
) |
Make aTargetFullFileName absolute and create the path of this file if it doesn't yet exist.
aTargetFullFileName | the wxFileName containing the full path and file name to modify. The path may be absolute or relative to aBaseFilename . |
aBaseFilename | a full filename. Only its path is used to set the aTargetFullFileName path. |
aReporter | a point to a REPORTER object use to show messages (can be NULL) |
Definition at line 369 of file common.cpp.
References _, REPORTER::Report(), RPT_SEVERITY_ERROR, and RPT_SEVERITY_INFO.
Referenced by DIALOG_GEN_FOOTPRINT_POSITION::CreateAsciiFiles(), DIALOG_GEN_FOOTPRINT_POSITION::CreateGerberFiles(), SCH_PLOTTER::createPlotFileName(), DIALOG_EXPORT_SVG::ExportSVGFile(), DIALOG_GENDRILL::GenDrillAndMapFiles(), DIALOG_SYMBOL_FIELDS_TABLE::OnExport(), PLOT_CONTROLLER::OpenPlotfile(), and DIALOG_PLOT::Plot().
wxString EnsureFileExtension | ( | const wxString & | aFilename, |
const wxString & | aExtension | ||
) |
It's annoying to throw up nag dialogs when the extension isn't right.
Just fix it.
Definition at line 422 of file common.cpp.
Referenced by AskSaveBoardFileName(), SCH_EDIT_FRAME::createNewDesignBlockLibrary(), PCB_BASE_EDIT_FRAME::createNewLibrary(), BITMAP2CMP_FRAME::ExportEeschemaFormat(), FOOTPRINT_EDIT_FRAME::ExportFootprint(), BITMAP2CMP_FRAME::ExportPcbnewFormat(), GERBVIEW_CONTROL::ExportToPcbnew(), SCH_EDIT_FRAME::NewProject(), PNS_LOG_VIEWER_FRAME::onSaveAs(), DIALOG_SHEET_PROPERTIES::onSheetFilenameChanged(), SCH_EDITOR_CONTROL::SaveCurrSheetCopyAs(), PCB_EDIT_FRAME::SavePcbCopy(), SCH_EDIT_FRAME::SaveProject(), FIELDS_GRID_TABLE::SetValue(), DIALOG_FIELD_PROPERTIES::TransferDataFromWindow(), and DIALOG_SHEET_PROPERTIES::TransferDataFromWindow().
const wxString ExpandEnvVarSubstitutions | ( | const wxString & | aString, |
const PROJECT * | aProject | ||
) |
Replace any environment variable & text variable references with their values.
aString | a string containing (perhaps) references to env var |
Definition at line 348 of file common.cpp.
References KIwxExpandEnvVars().
Referenced by FILENAME_RESOLVER::addPath(), FILENAME_RESOLVER::checkEnvVarPath(), S3D_PLUGIN_MANAGER::checkPluginName(), DIALOG_GEN_FOOTPRINT_POSITION::CreateAsciiFiles(), DIALOG_GEN_FOOTPRINT_POSITION::CreateGerberFiles(), FILENAME_RESOLVER::createPathList(), DIALOG_EXPORT_SVG::ExportSVGFile(), DIALOG_GENDRILL::GenDrillAndMapFiles(), LIB_TABLE_ROW::GetFullURI(), DIALOG_PLOT_SCHEMATIC::getOutputPath(), DIALOG_EXPORT_STEP::onBrowseClicked(), DIALOG_EXPORT_2581::onBrowseClicked(), DIALOG_EXPORT_ODBPP::onBrowseClicked(), TEXT_BUTTON_FILE_BROWSER::OnButtonClick(), PANEL_SYM_LIB_TABLE::onConvertLegacyLibraries(), DIALOG_SYMBOL_FIELDS_TABLE::OnExport(), DIALOG_EXPORT_STEP::onExportButton(), DIALOG_GENDRILL::OnGenReportFile(), PANEL_DESIGN_BLOCK_LIB_TABLE::onMigrateLibraries(), PANEL_FP_LIB_TABLE::onMigrateLibraries(), DIALOG_PLOT::onOpenOutputDirectory(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_EXPORT_SVG::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_SYMBOL_FIELDS_TABLE::OnOutputFileBrowseClicked(), DIALOG_PAGES_SETTINGS::OnWksFileSelection(), PLOT_CONTROLLER::OpenPlotfile(), DIALOG_PLOT::Plot(), SIM_LIB_MGR::ResolveLibraryPath(), FILENAME_RESOLVER::ResolvePath(), ResolveUriByEnvVars(), S3D_CACHE::Set3DConfigDir(), FILENAME_RESOLVER::Set3DConfigDir(), FILENAME_RESOLVER::SetProject(), FILENAME_RESOLVER::ShortenPath(), DRC_TEST_PROVIDER_MISC::testTextVars(), ERC_TESTER::TestTextVars(), and NETLIST_EXPORTER_SPICE::writeInclude().
wxString ExpandTextVars | ( | const wxString & | aSource, |
const PROJECT * | aProject, | ||
int | aFlags | ||
) |
Definition at line 59 of file common.cpp.
References ExpandTextVars(), and PROJECT::TextVarResolver().
Referenced by AddGerberX2Header(), GERBER_JOBFILE_WRITER::addJSONGeneralSpecs(), DS_DRAW_ITEM_LIST::BuildFullText(), DIALOG_GEN_FOOTPRINT_POSITION::CreateAsciiFiles(), DIALOG_GEN_FOOTPRINT_POSITION::CreateGerberFiles(), GENCAD_EXPORTER::CreateHeaderInfoData(), SCH_PLOTTER::createPDFFile(), KIGFX::SCH_PAINTER::expandLibItemTextVars(), ExpandTextVars(), DIALOG_EXPORT_SVG::ExportSVGFile(), DIALOG_GENDRILL::GenDrillAndMapFiles(), FIELDS_EDITOR_GRID_DATA_MODEL::getFieldShownText(), DIALOG_PLOT_SCHEMATIC::getOutputPath(), PCB_TEXT::GetShownText(), PCB_TEXTBOX::GetShownText(), SCH_FIELD::GetShownText(), SCH_TEXT::GetShownText(), SCH_TEXTBOX::GetShownText(), SCH_LABEL_BASE::GetShownText(), GetTextVars(), API_HANDLER_COMMON::handleExpandTextVariables(), API_HANDLER_PCB::handleExpandTextVariables(), NETLIST_EXPORTER_XML::makeDesignHeader(), DIALOG_SYMBOL_FIELDS_TABLE::OnExport(), DIALOG_EXPORT_STEP::onExportButton(), DIALOG_PLOT::onOpenOutputDirectory(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), PLOT_CONTROLLER::OpenPlotfile(), DIALOG_PLOT::Plot(), ResolveUriByEnvVars(), and TITLE_BLOCK::TextVarResolver().
wxString ExpandTextVars | ( | const wxString & | aSource, |
const std::function< bool(wxString *)> * | aResolver, | ||
int | aFlags | ||
) |
Definition at line 71 of file common.cpp.
References FOR_ERC_DRC.
wxString GetTextVars | ( | const wxString & | aSource | ) |
Returns any variables unexpanded, e.g.
${VAR} -> VAR
Definition at line 121 of file common.cpp.
References ExpandTextVars().
Referenced by DIALOG_SYMBOL_FIELDS_TABLE::doApplyBomPreset(), SCHEMATIC::GetContextualTextVars(), BOARD::GetContextualTextVars(), SCH_FIELD::GetShownName(), EESCHEMA_JOBS_HANDLER::JobExportBom(), DIALOG_SYMBOL_FIELDS_TABLE::LoadFieldNames(), and DIALOG_SYMBOL_FIELDS_TABLE::OnAddField().
bool IsTextVar | ( | const wxString & | aSource | ) |
Returns true if the string is a text var, e.g starts with ${.
Definition at line 133 of file common.cpp.
Referenced by FIELDS_EDITOR_GRID_DATA_MODEL::ApplyData(), FIELDS_EDITOR_GRID_DATA_MODEL::getFieldShownText(), FIELDS_EDITOR_GRID_DATA_MODEL::GetValue(), FIELDS_EDITOR_GRID_DATA_MODEL::groupMatch(), EESCHEMA_JOBS_HANDLER::JobExportBom(), DIALOG_SYMBOL_FIELDS_TABLE::SetupColumnProperties(), FIELDS_EDITOR_GRID_DATA_MODEL::SetValue(), and FIELDS_EDITOR_GRID_DATA_MODEL::updateDataStoreSymbolField().
wxString KIwxExpandEnvVars | ( | const wxString & | str, |
const PROJECT * | aProject, | ||
std::set< wxString > * | aSet = nullptr |
||
) |
Definition at line 142 of file common.cpp.
References _, Bracket_Curly, Bracket_None, Bracket_Normal, ENV_VAR::GetPredefinedEnvVars(), KI_FALLTHROUGH, KIwxExpandEnvVars(), and PROJECT::TextVarResolver().
Referenced by ExpandEnvVarSubstitutions(), and KIwxExpandEnvVars().
bool matchWild | ( | const char * | pat, |
const char * | text, | ||
bool | dot_special | ||
) |
Performance enhancements to file and directory operations.
Note: while it's annoying to have to make copies of wxWidgets stuff and then add platform-specific performance optimizations, the following routines offer SIGNIFICANT performance benefits. A copy of wxMatchWild(), which wxWidgets attributes to Douglas A. Lewis dalew.nosp@m.is@c.nosp@m.s.Buf.nosp@m.falo.nosp@m..EDU and ircII's reg.c.
This version is modified to skip any encoding conversions (for performance).
Definition at line 455 of file common.cpp.
References text.
Referenced by TimestampDir().
const wxString ResolveUriByEnvVars | ( | const wxString & | aUri, |
const PROJECT * | aProject | ||
) |
Replace any environment and/or text variables in URIs.
Definition at line 361 of file common.cpp.
References ExpandEnvVarSubstitutions(), and ExpandTextVars().
Referenced by PDF_PLOTTER::EndPlot(), and GetAssociatedDocument().
long long TimestampDir | ( | const wxString & | aDirPath, |
const wxString & | aFilespec | ||
) |
A copy of ConvertFileTimeToWx() because wxWidgets left it as a static function private to src/common/filename.cpp.
This routine offers SIGNIFICANT performance benefits over using wxWidgets to gather timestamps from matching files in a directory.
aDirPath | is the directory to search. |
aFilespec | is a (wildcarded) file spec to match against. |
Definition at line 597 of file common.cpp.
References matchWild().
Referenced by DESIGN_BLOCK_IO::GetLibraryTimestamp(), GPCB_FPL_CACHE::GetTimestamp(), and FP_CACHE::GetTimestamp().
bool WarnUserIfOperatingSystemUnsupported | ( | ) |
Checks if the operating system is explicitly unsupported and displays a disclaimer message box.
Definition at line 696 of file common.cpp.
References _, and KIPLATFORM::APP::IsOperatingSystemUnsupported().
Referenced by PGM_BASE::InitPgm(), and COMMON_CONTROL::ReportBug().