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 OpenFile (const wxString &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)
 Removes 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 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 426 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 377 of file gestfich.cpp.

References _, and CopyDirectory().

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

◆ 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
aEditorNameis the full filename for the binary.
aFileNameis the full filename of the file to open.
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(), and ExecuteFile().

◆ KiCopyFile()

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

Definition at line 309 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().

◆ OpenFile()

void OpenFile ( const wxString &  file)

Definition at line 290 of file gestfich.cpp.

Referenced by PROJECT_TREE_ITEM::Activate().

◆ OpenPDF()

bool OpenPDF ( const wxString &  file)

Run the PDF viewer and display a PDF file.

Parameters
filethe PDF file to open.
Returns
true is success or false if 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 324 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 
)

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

Definition at line 330 of file gestfich.cpp.

References _, and path.

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