bug tracker: [ 2069722 ] PCB edge always printed when PCB edge layer not selected.

It is resolved by adding 'Exclude Edges_Pcb layer' check box in 'Print' dialog.
This commit is contained in:
a-lunev 2008-08-25 00:03:14 +00:00
parent eadabde803
commit 0629e58785
4 changed files with 21 additions and 4 deletions

View File

@ -51,8 +51,6 @@ void WinEDA_DrawPanel::PrintPage( wxDC* DC, bool Print_Sheet_Ref, int printmaskl
DisplayOpt.DisplayDrawItems = FILLED;
DisplayOpt.DisplayZones = TRUE;
printmasklayer |= EDGE_LAYER;
/* Draw the pcb graphic items (texts, ...) */
for( BOARD_ITEM* item = Pcb->m_Drawings; item; item = item->Next() )
{

View File

@ -80,6 +80,7 @@ bool WinEDA_PrintFrame::Create( wxWindow* parent, wxWindowID id, const wxString&
////@begin WinEDA_PrintFrame member initialisation
m_CopperLayersBoxSizer = NULL;
m_TechLayersBoxSizer = NULL;
m_Exclude_Edges_Pcb = NULL;
m_ScaleOption = NULL;
m_FineAdjustXscaleTitle = NULL;
m_FineAdjustXscaleOpt = NULL;
@ -124,14 +125,29 @@ void WinEDA_PrintFrame::CreateControls()
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
itemDialog1->SetSizer(itemBoxSizer2);
wxBoxSizer* leftBoxSizer = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(leftBoxSizer, 0, wxALIGN_TOP|wxALL,5);
wxBoxSizer* layersBoxSizer = new wxBoxSizer(wxHORIZONTAL);
leftBoxSizer->Add(layersBoxSizer, 0, wxGROW|wxALL,5);
m_CopperLayersBoxSizer = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(m_CopperLayersBoxSizer, 0, wxALIGN_TOP|wxALL, 5);
layersBoxSizer->Add(m_CopperLayersBoxSizer, 0, wxGROW|wxALL, 5);
m_TechLayersBoxSizer = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(m_TechLayersBoxSizer, 0, wxALIGN_TOP|wxALL, 5);
layersBoxSizer->Add(m_TechLayersBoxSizer, 0, wxALIGN_TOP|wxALL, 5);
wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer5, 0, wxGROW|wxALL, 5);
// Option for excluding contents of "Edges Pcb" layer
m_Exclude_Edges_Pcb = new wxCheckBox( this,
ID_EXCLUDE_EDGES_PCB, _( "Exclude Edges_Pcb layer" ) );
//m_Exclude_Edges_Pcb->SetValue( g_Exclude_Edges_Pcb );
m_Exclude_Edges_Pcb->SetToolTip(
_( "Exclude contents of Edges_Pcb layer from all other layers" ) );
leftBoxSizer->Add( m_Exclude_Edges_Pcb, 0, wxGROW | wxALL, 1 );
wxArrayString m_ScaleOptionStrings;
m_ScaleOptionStrings.Add(_("fit in page"));

View File

@ -47,6 +47,7 @@ class wxBoxSizer;
#define ID_PRINT_SETUP 10001
#define ID_PRINT_PREVIEW 10002
#define ID_PRINT_EXECUTE 10003
#define ID_EXCLUDE_EDGES_PCB 10012
#define SYMBOL_WINEDA_PRINTFRAME_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX|MAYBE_RESIZE_BORDER
#define SYMBOL_WINEDA_PRINTFRAME_TITLE _("Print")
#define SYMBOL_WINEDA_PRINTFRAME_IDNAME ID_DIALOG
@ -131,6 +132,7 @@ public:
////@begin WinEDA_PrintFrame member variables
wxBoxSizer* m_CopperLayersBoxSizer;
wxBoxSizer* m_TechLayersBoxSizer;
wxCheckBox* m_Exclude_Edges_Pcb;
wxRadioBox* m_ScaleOption;
wxStaticText* m_FineAdjustXscaleTitle;
wxTextCtrl* m_FineAdjustXscaleOpt;

View File

@ -820,6 +820,7 @@ void EDA_Printout::DrawPage()
panel->m_ClipBox.SetOrigin( wxPoint( -0x7FFFFF, -0x7FFFFF ) );
}
if ( !m_PrintFrame->m_Exclude_Edges_Pcb->GetValue() ) s_PrintMaskLayer |= EDGE_LAYER;
panel->PrintPage( dc, 0, s_PrintMaskLayer );
#else