KiCad PCB EDA Suite
Loading...
Searching...
No Matches
gestfich.cpp File Reference

Functions for file management. More...

#include <wx/mimetype.h>
#include <wx/dir.h>
#include <pgm_base.h>
#include <confirm.h>
#include <core/arraydim.h>
#include <gestfich.h>
#include <string_utils.h>
#include <launch_ext.h>
#include "wx/tokenzr.h"
#include <wx/wfstream.h>
#include <wx/fs_zip.h>
#include <wx/zipstrm.h>
#include <filesystem>

Go to the source code of this file.

Functions

void QuoteString (wxString &string)
 Add un " to the start and the end of string (if not already done).
 
wxString FindKicadFile (const wxString &shortname)
 Search the executable file shortname in KiCad binary path and return full file name if found or shortname if the kicad binary path is kicad/bin.
 
int ExecuteFile (const wxString &aEditorName, const wxString &aFileName, wxProcess *aCallback, bool aFileForKicad)
 Call the executable file aEditorName with the parameter aFileName.
 
bool OpenPDF (const wxString &file)
 Run the PDF viewer and display a PDF file.
 
void KiCopyFile (const wxString &aSrcPath, const wxString &aDestPath, wxString &aErrors)
 
wxString QuoteFullPath (wxFileName &fn, wxPathFormat format)
 Quote return value of wxFileName::GetFullPath().
 
bool RmDirRecursive (const wxString &aFileName, wxString *aErrors)
 Remove the directory aDirName and all its contents including subdirectories and their files.
 
bool CopyDirectory (const wxString &aSourceDir, const wxString &aDestDir, wxString &aErrors)
 Copy a directory and its contents to another directory.
 
bool CopyFilesOrDirectory (const wxString &aSourcePath, const wxString &aDestDir, wxString &aErrors, int &fileCopiedCount, const std::vector< wxString > &aExclusions)
 
bool AddDirectoryToZip (wxZipOutputStream &aZip, const wxString &aSourceDir, wxString &aErrors, const wxString &aParentDir)
 Add a directory and its contents to a zip file.
 

Detailed Description

Functions for file management.

Definition in file gestfich.cpp.

Function Documentation

◆ AddDirectoryToZip()

bool AddDirectoryToZip ( wxZipOutputStream &  aZip,
const wxString &  aSourceDir,
wxString &  aErrors,
const wxString &  aParentDir = "" 
)

Add a directory and its contents to a zip file.

Parameters
aZipis the zip file to add to.
aSourceDiris the directory to add.
aErrorsis a string to append any errors to.
aParentDiris the parent directory to add to the zip file.

Definition at line 484 of file gestfich.cpp.

References _, and AddDirectoryToZip().

Referenced by AddDirectoryToZip(), and JOBS_OUTPUT_ARCHIVE::HandleOutputs().

◆ CopyDirectory()

bool CopyDirectory ( const wxString &  aSourceDir,
const wxString &  aDestDir,
wxString &  aErrors 
)

Copy a directory and its contents to another directory.

Parameters
aSourceDiris the directory to copy.
aDestDiris the directory to copy to.
aErrorsis a string to append any errors to.

Definition at line 360 of file gestfich.cpp.

References _, and CopyDirectory().

Referenced by CopyDirectory(), and JOBS_OUTPUT_FOLDER::HandleOutputs().

◆ CopyFilesOrDirectory()

bool CopyFilesOrDirectory ( const wxString &  aSourcePath,
const wxString &  aDestDir,
wxString &  aErrors,
int &  fileCopiedCount,
const std::vector< wxString > &  aExclusions 
)

Definition at line 411 of file gestfich.cpp.

References _, and CopyFilesOrDirectory().

Referenced by CopyFilesOrDirectory(), and JOBS_RUNNER::runSpecialCopyFiles().

◆ ExecuteFile()

int ExecuteFile ( const wxString &  aEditorName,
const wxString &  aFileName = wxEmptyString,
wxProcess *  aCallback = nullptr,
bool  aFileForKicad = true 
)

Call the executable file aEditorName with the parameter aFileName.

Parameters
[in]aEditorNameis the full filename for the binary.
[in]aFileNameis the full filename of the file to open.
[in]aCallbacka wxProcess* for the call.
aFileForKicada boolean to flag if aFileName runs with a KiCad binary. In this case aFileName is a shortname and FindKicadFile() is called to return the path. In the other case, aFileName is a full file name (passed prefixed with the path).

Definition at line 143 of file gestfich.cpp.

References _, DisplayErrorMessage(), and FindKicadFile().

Referenced by KICAD_MANAGER_CONTROL::Execute(), DIALOG_CONFIG_EQUFILES::OnEditEquFile(), DIALOG_BOM::OnEditGenerator(), SCH_EDIT_FRAME::OnOpenPcbnew(), PROJECT_TREE_PANE::onOpenSelectedFileWithTextEditor(), SYMBOL_EDITOR_CONTROL::OpenWithTextEditor(), FOOTPRINT_EDITOR_CONTROL::OpenWithTextEditor(), PCB_EDIT_FRAME::RunEeschema(), and GERBVIEW_INSPECTION_TOOL::ShowSource().

◆ FindKicadFile()

wxString FindKicadFile ( const wxString &  shortname)

Search the executable file shortname in KiCad binary path and return full file name if found or shortname if the kicad binary path is kicad/bin.

The binary path is found from:

  • binary path.
  • KICAD environment variable.
  • c:\kicad or /usr/local/kicad (the default).
  • default binary path.

Definition at line 58 of file gestfich.cpp.

References arrayDim(), PGM_BASE::GetExecutablePath(), PGM_BASE::GetKicadEnvVariable(), and Pgm().

Referenced by KICAD_MANAGER_FRAME::DoWithAcceptedFiles(), ExecuteFile(), API_HANDLER_COMMON::handleGetKiCadBinaryPath(), API_PLUGIN_MANAGER::InvokeAction(), and API_PLUGIN_MANAGER::processNextJob().

◆ KiCopyFile()

void KiCopyFile ( const wxString &  aSrcPath,
const wxString &  aDestPath,
wxString &  aErrors 
)
Parameters
aSrcPathis the full filename of the source.
[in]aDestPathis the full filename of the target.
[out]aErrorsa wxString to append any errors to.

Definition at line 290 of file gestfich.cpp.

References _.

Referenced by MIGRATION_TRAVERSER::OnFile(), SAVE_AS_TRAVERSER::OnFile(), SCH::IFACE::SaveFileAs(), GERBV::IFACE::SaveFileAs(), PGE::IFACE::SaveFileAs(), PCB::IFACE::SaveFileAs(), PCB_EDIT_FRAME::SavePcbCopy(), and PCB_EDIT_FRAME::SavePcbFile().

◆ OpenPDF()

bool OpenPDF ( const wxString &  file)

Run the PDF viewer and display a PDF file.

Parameters
filethe PDF file to open.
Return values
trueif PDF viewer found.
falseif no PDF viewer found.

Definition at line 254 of file gestfich.cpp.

References _, DisplayErrorMessage(), PGM_BASE::GetPdfBrowserName(), LaunchExternal(), Pgm(), and PGM_BASE::ReadPdfBrowserInfos().

Referenced by PROJECT_TREE_ITEM::Activate(), and GetAssociatedDocument().

◆ QuoteFullPath()

wxString QuoteFullPath ( wxFileName &  fn,
wxPathFormat  format = wxPATH_NATIVE 
)

Quote return value of wxFileName::GetFullPath().

This allows file name paths with spaces to be used as parameters to ProcessExecute function calls.

Parameters
fnis the filename to wrap.
formatif provided, can be used to transform the nature of the wrapped filename to another platform.

Definition at line 305 of file gestfich.cpp.

◆ QuoteString()

void QuoteString ( wxString &  string)

Add un " to the start and the end of string (if not already done).

Parameters
stringstring to modify.

Definition at line 48 of file gestfich.cpp.

◆ RmDirRecursive()

bool RmDirRecursive ( const wxString &  aFileName,
wxString *  aErrors 
)

Remove the directory aDirName and all its contents including subdirectories and their files.

Definition at line 311 of file gestfich.cpp.

References _, and path.

Referenced by PROJECT_TREE_PANE::onGitRemoveVCS(), and DIALOG_GIT_REPOSITORY::~DIALOG_GIT_REPOSITORY().