Commit 0629e587 authored by a-lunev's avatar a-lunev
Browse files

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.
parent eadabde8
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -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() )
    {
+18 −2
Original line number Diff line number Diff line
@@ -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,15 +125,30 @@ 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"));
    m_ScaleOptionStrings.Add(_("Scale 0.5"));
+2 −0
Original line number Diff line number Diff line
@@ -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;
+1 −0
Original line number Diff line number Diff line
@@ -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