From 13820bc00238fd69482e475529001b58a64f9e3c Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 10 Jun 2023 04:54:11 +0300 Subject: [PATCH] Support --mirror option in "kicad-cli pcb export pdf" (cherry picked from commit 24504351319f8ef274bc660c93a477afe9b5f4ff) --- common/jobs/job_export_pcb_pdf.h | 2 ++ kicad/cli/command_export_pcb_base.h | 1 + kicad/cli/command_export_pcb_pdf.cpp | 6 ++++++ kicad/cli/command_export_pcb_svg.cpp | 1 - pcbnew/pcbnew_jobs_handler.cpp | 1 + 5 files changed, 10 insertions(+), 1 deletion(-) diff --git a/common/jobs/job_export_pcb_pdf.h b/common/jobs/job_export_pcb_pdf.h index 0706afcec2..bfd3938dee 100644 --- a/common/jobs/job_export_pcb_pdf.h +++ b/common/jobs/job_export_pcb_pdf.h @@ -33,6 +33,7 @@ public: m_filename(), m_outputFile(), m_colorTheme(), + m_mirror( false ), m_blackAndWhite( false ), m_plotFootprintValues( true ), m_plotRefDes( true ), @@ -45,6 +46,7 @@ public: wxString m_outputFile; wxString m_colorTheme; + bool m_mirror; bool m_blackAndWhite; bool m_plotFootprintValues; bool m_plotRefDes; diff --git a/kicad/cli/command_export_pcb_base.h b/kicad/cli/command_export_pcb_base.h index 0e82b856c1..267137fcaa 100644 --- a/kicad/cli/command_export_pcb_base.h +++ b/kicad/cli/command_export_pcb_base.h @@ -37,6 +37,7 @@ namespace CLI #define ARG_EXCLUDE_VALUE "--exclude-value" #define ARG_THEME "--theme" #define ARG_INCLUDE_BORDER_TITLE "--include-border-title" +#define ARG_MIRROR "--mirror" struct EXPORT_PCB_BASE_COMMAND : public COMMAND { diff --git a/kicad/cli/command_export_pcb_pdf.cpp b/kicad/cli/command_export_pcb_pdf.cpp index fc61370317..804aa9d2a1 100644 --- a/kicad/cli/command_export_pcb_pdf.cpp +++ b/kicad/cli/command_export_pcb_pdf.cpp @@ -35,6 +35,11 @@ CLI::EXPORT_PCB_PDF_COMMAND::EXPORT_PCB_PDF_COMMAND() : EXPORT_PCB_BASE_COMMAND( { addLayerArg( true ); + m_argParser.add_argument( "-m", ARG_MIRROR ) + .help( UTF8STDSTR( _( "Mirror the board (useful for trying to show bottom layers)" ) ) ) + .implicit_value( true ) + .default_value( false ); + m_argParser.add_argument( "--erd", ARG_EXCLUDE_REFDES ) .help( UTF8STDSTR( _( "Exclude the reference designator text" ) ) ) .implicit_value( true ) @@ -84,6 +89,7 @@ int CLI::EXPORT_PCB_PDF_COMMAND::doPerform( KIWAY& aKiway ) pdfJob->m_plotBorderTitleBlocks = m_argParser.get( ARG_INCLUDE_BORDER_TITLE ); + pdfJob->m_mirror = m_argParser.get( ARG_MIRROR ); pdfJob->m_blackAndWhite = m_argParser.get( ARG_BLACKANDWHITE ); pdfJob->m_colorTheme = FROM_UTF8( m_argParser.get( ARG_THEME ).c_str() ); diff --git a/kicad/cli/command_export_pcb_svg.cpp b/kicad/cli/command_export_pcb_svg.cpp index 95f37d7096..0f822460cd 100644 --- a/kicad/cli/command_export_pcb_svg.cpp +++ b/kicad/cli/command_export_pcb_svg.cpp @@ -32,7 +32,6 @@ #define ARG_EXCLUDE_DRAWING_SHEET "--exclude-drawing-sheet" #define ARG_PAGE_SIZE "--page-size-mode" -#define ARG_MIRROR "--mirror" CLI::EXPORT_PCB_SVG_COMMAND::EXPORT_PCB_SVG_COMMAND() : EXPORT_PCB_BASE_COMMAND( "svg" ) diff --git a/pcbnew/pcbnew_jobs_handler.cpp b/pcbnew/pcbnew_jobs_handler.cpp index e612d00295..40005b3360 100644 --- a/pcbnew/pcbnew_jobs_handler.cpp +++ b/pcbnew/pcbnew_jobs_handler.cpp @@ -237,6 +237,7 @@ int PCBNEW_JOBS_HANDLER::JobExportPdf( JOB* aJob ) SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); plotOpts.SetColorSettings( mgr.GetColorSettings( aPdfJob->m_colorTheme ) ); + plotOpts.SetMirror( aPdfJob->m_mirror ); plotOpts.SetBlackAndWhite( aPdfJob->m_blackAndWhite ); PDF_PLOTTER* plotter = (PDF_PLOTTER*) StartPlotBoard(