From e35be13b23cb2c04b1dc7bf25511b4d91e87b85e Mon Sep 17 00:00:00 2001 From: Jon Evans Date: Sun, 26 May 2019 12:20:54 -0400 Subject: [PATCH] Eeschema: use worksheet color when plotting Fixes: lp:1825568 * https://bugs.launchpad.net/kicad/+bug/1825568 --- common/plotters/common_plot_functions.cpp | 8 ++++++-- eeschema/plot_schematic_DXF.cpp | 3 ++- eeschema/plot_schematic_HPGL.cpp | 3 ++- eeschema/plot_schematic_PDF.cpp | 4 +++- eeschema/plot_schematic_PS.cpp | 3 ++- eeschema/plot_schematic_SVG.cpp | 3 ++- include/plotter.h | 3 ++- 7 files changed, 19 insertions(+), 8 deletions(-) diff --git a/common/plotters/common_plot_functions.cpp b/common/plotters/common_plot_functions.cpp index db049a855a..0459b5ca6f 100644 --- a/common/plotters/common_plot_functions.cpp +++ b/common/plotters/common_plot_functions.cpp @@ -73,13 +73,17 @@ wxString GetDefaultPlotExtension( PlotFormat aFormat ) void PlotWorkSheet( PLOTTER* plotter, const TITLE_BLOCK& aTitleBlock, const PAGE_INFO& aPageInfo, int aSheetNumber, int aNumberOfSheets, - const wxString &aSheetDesc, const wxString &aFilename ) + const wxString &aSheetDesc, const wxString &aFilename, const COLOR4D aColor ) { /* Note: Page sizes values are given in mils */ double iusPerMil = plotter->GetIUsPerDecimil() * 10.0; - COLOR4D plotColor = plotter->GetColorMode() ? COLOR4D( RED ) : COLOR4D::BLACK; + COLOR4D plotColor = plotter->GetColorMode() ? aColor : COLOR4D::BLACK; + + if( plotColor == COLOR4D::UNSPECIFIED ) + plotColor = COLOR4D( RED ); + plotter->SetColor( plotColor ); WS_DRAW_ITEM_LIST drawList; diff --git a/eeschema/plot_schematic_DXF.cpp b/eeschema/plot_schematic_DXF.cpp index c0f41771d6..ea7e184c30 100644 --- a/eeschema/plot_schematic_DXF.cpp +++ b/eeschema/plot_schematic_DXF.cpp @@ -136,7 +136,8 @@ bool DIALOG_PLOT_SCHEMATIC::PlotOneSheetDXF( const wxString& aFileName, m_parent->GetPageSettings(), aScreen->m_ScreenNumber, aScreen->m_NumberOfScreens, m_parent->GetScreenDesc(), - aScreen->GetFileName() ); + aScreen->GetFileName(), + GetLayerColor( ( SCH_LAYER_ID )LAYER_WORKSHEET ) ); } aScreen->Plot( plotter ); diff --git a/eeschema/plot_schematic_HPGL.cpp b/eeschema/plot_schematic_HPGL.cpp index 449115c530..ed571a9539 100644 --- a/eeschema/plot_schematic_HPGL.cpp +++ b/eeschema/plot_schematic_HPGL.cpp @@ -208,7 +208,8 @@ bool DIALOG_PLOT_SCHEMATIC::Plot_1_Page_HPGL( const wxString& aFileName, m_parent->GetPageSettings(), aScreen->m_ScreenNumber, aScreen->m_NumberOfScreens, m_parent->GetScreenDesc(), - aScreen->GetFileName() ); + aScreen->GetFileName(), + GetLayerColor( ( SCH_LAYER_ID )LAYER_WORKSHEET ) ); aScreen->Plot( plotter ); diff --git a/eeschema/plot_schematic_PDF.cpp b/eeschema/plot_schematic_PDF.cpp index f274087779..d7bc491156 100644 --- a/eeschema/plot_schematic_PDF.cpp +++ b/eeschema/plot_schematic_PDF.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include @@ -153,7 +154,8 @@ void DIALOG_PLOT_SCHEMATIC::plotOneSheetPDF( PLOTTER* aPlotter, m_parent->GetPageSettings(), aScreen->m_ScreenNumber, aScreen->m_NumberOfScreens, m_parent->GetScreenDesc(), - aScreen->GetFileName() ); + aScreen->GetFileName(), + GetLayerColor( ( SCH_LAYER_ID )LAYER_WORKSHEET ) ); } aScreen->Plot( aPlotter ); diff --git a/eeschema/plot_schematic_PS.cpp b/eeschema/plot_schematic_PS.cpp index 252c0a7178..d20e976609 100644 --- a/eeschema/plot_schematic_PS.cpp +++ b/eeschema/plot_schematic_PS.cpp @@ -162,7 +162,8 @@ bool DIALOG_PLOT_SCHEMATIC::plotOneSheetPS( const wxString& aFileName, m_parent->GetPageSettings(), aScreen->m_ScreenNumber, aScreen->m_NumberOfScreens, m_parent->GetScreenDesc(), - aScreen->GetFileName() ); + aScreen->GetFileName(), + GetLayerColor( ( SCH_LAYER_ID )LAYER_WORKSHEET ) ); } aScreen->Plot( plotter ); diff --git a/eeschema/plot_schematic_SVG.cpp b/eeschema/plot_schematic_SVG.cpp index 74a1cf154d..6f551ca714 100644 --- a/eeschema/plot_schematic_SVG.cpp +++ b/eeschema/plot_schematic_SVG.cpp @@ -136,7 +136,8 @@ bool DIALOG_PLOT_SCHEMATIC::plotOneSheetSVG( EDA_DRAW_FRAME* aFrame, aFrame->GetPageSettings(), aScreen->m_ScreenNumber, aScreen->m_NumberOfScreens, aFrame->GetScreenDesc(), - aScreen->GetFileName() ); + aScreen->GetFileName(), + GetLayerColor( ( SCH_LAYER_ID )LAYER_WORKSHEET ) ); } aScreen->Plot( plotter ); diff --git a/include/plotter.h b/include/plotter.h index 0321a1f7da..46353d58ca 100644 --- a/include/plotter.h +++ b/include/plotter.h @@ -1349,7 +1349,8 @@ void PlotWorkSheet( PLOTTER* plotter, const TITLE_BLOCK& aTitleBlock, const PAGE_INFO& aPageInfo, int aSheetNumber, int aNumberOfSheets, const wxString &aSheetDesc, - const wxString &aFilename ); + const wxString &aFilename, + const COLOR4D aColor = COLOR4D::UNSPECIFIED ); /** Returns the default plot extension for a format */