← Back to team overview

kicad-developers team mailing list archive

[PATCH]: PCBNew: Save and load print configuration in PCB.

 

Small patch to save and reload print configurations. Adds "Save config" and "Load Config" buttons in the print dialog.
Just the same patch I sent long ago, but in a single file.
Useful when is needed to create documents with multiple pages that merge informations from different layers, so you cannot print one page per layer. Loading a configuration for every page speeds-up the work (ok, a more flexible multiple-page-multiple layer print configuration tool should be better, but also saving and loading configuration like this is a step forward in speeding up the PCB-Documenting process).


Ceers,
Dino.
>From eea0878890a50f3b0564125c15b0aec300649f22 Mon Sep 17 00:00:00 2001
From: dino <dino.ghilardi@xxxxxxxx>
Date: Fri, 10 Mar 2017 15:14:16 +0100
Subject: [PATCH] Print configuration load-save

---
 pcbnew/dialogs/dialog_print_using_printer.cpp      | 147 +++++++++++-
 pcbnew/dialogs/dialog_print_using_printer_base.cpp |  15 +-
 pcbnew/dialogs/dialog_print_using_printer_base.fbp | 259 ++++++++++++++++++++-
 pcbnew/dialogs/dialog_print_using_printer_base.h   |  10 +-
 4 files changed, 425 insertions(+), 6 deletions(-)

diff --git a/pcbnew/dialogs/dialog_print_using_printer.cpp b/pcbnew/dialogs/dialog_print_using_printer.cpp
index 93f1eb4..9c2ff30 100644
--- a/pcbnew/dialogs/dialog_print_using_printer.cpp
+++ b/pcbnew/dialogs/dialog_print_using_printer.cpp
@@ -40,6 +40,9 @@
 
 #include <dialog_print_using_printer_base.h>
 
+#include <iostream>
+#include <fstream>
+
 
 #define PEN_WIDTH_MAX_VALUE ( KiROUND( 5 * IU_PER_MM ) )
 #define PEN_WIDTH_MIN_VALUE ( KiROUND( 0.005 * IU_PER_MM ) )
@@ -86,6 +89,8 @@ private:
     std::pair<wxCheckListBox*, int> m_boxSelectLayer[LAYER_ID_COUNT];
     static bool     m_ExcludeEdgeLayer;
 
+    void OnSaveConfigClick( wxCommandEvent& event ) override;
+    void OnLoadConfigClick( wxCommandEvent& event ) override;
     void OnCloseWindow( wxCloseEvent& event ) override;
     void OnPageSetup( wxCommandEvent& event ) override;
     void OnPrintPreview( wxCommandEvent& event ) override;
@@ -406,9 +411,9 @@ void DIALOG_PRINT_USING_PRINTER::OnScaleSelectionClick( wxCommandEvent& event )
     bool enable = (scale == 1.0);
 
     if( m_FineAdjustXscaleOpt )
-        m_FineAdjustXscaleOpt->Enable(enable);
+        m_FineAdjustXscaleOpt->Enable( enable );
     if( m_FineAdjustYscaleOpt )
-        m_FineAdjustYscaleOpt->Enable(enable);
+        m_FineAdjustYscaleOpt->Enable( enable );
 }
 
 
@@ -507,3 +512,141 @@ void DIALOG_PRINT_USING_PRINTER::OnPrintButtonClick( wxCommandEvent& event )
         *s_PrintData = printer.GetPrintDialogData().GetPrintData();
     }
 }
+
+
+void DIALOG_PRINT_USING_PRINTER::OnSaveConfigClick( wxCommandEvent& event )
+{
+    wxFileDialog* saveDialog = new wxFileDialog(
+            this,
+            _( "Save File As _?" ),
+            wxEmptyString, wxEmptyString,
+            _( "Ini files (*.ini)|*.ini" ),
+            wxFD_SAVE | wxFD_OVERWRITE_PROMPT,
+            wxDefaultPosition );
+
+    if( saveDialog->ShowModal() == wxID_OK )     // If the user clicked "OK"
+    {
+        wxString currentDocPath;
+        currentDocPath = saveDialog->GetPath();
+        wxFileConfig* printConfigFile = new wxFileConfig( "", "", currentDocPath );
+        // wxLogMessage( wxT("creating inifile: %s"), currentDocPath );
+        printConfigFile->Write( wxT( "PrintConfig/PrintMirror" ), m_Print_Mirror->GetValue() );
+        printConfigFile->Write( wxT( "PrintConfig/PrintSheetRef" ), m_Print_Sheet_Ref->GetValue() );
+        printConfigFile->Write( wxT( "PrintConfig/PrintBW" ),
+                (m_ModeColorOption->GetSelection()!= 0) );
+        printConfigFile->Write( wxT( "PrintConfig/DrillShapeOpt" ),
+                m_Drill_Shape_Opt->GetSelection() );
+        printConfigFile->Write( wxT( "PrintConfig/OptionPrintPage" ),
+                (m_PagesOption->GetSelection() != 0) );
+
+        {
+            int idx = m_ScaleOption->GetSelection();
+            printConfigFile->Write( wxT( "PrintConfig/PrintScale" ), s_ScaleList[idx] );
+        }
+        printConfigFile->Write( wxT(
+                        "PrintConfig/XFineScaleAdjust" ), m_FineAdjustXscaleOpt->GetValue() );
+        printConfigFile->Write( wxT( "PrintConfig/YFineScaleAdjust" ),
+                                m_FineAdjustYscaleOpt->GetValue() );
+
+        for( unsigned ii = 0; ii < DIM( m_boxSelectLayer ); ++ii )
+        {
+            wxString s1 = wxT( "PrintConfig/Layer" );
+            wxString s2 = std::to_string( ii );
+            wxString s3 = wxT( "Selected" );
+
+            if( !m_boxSelectLayer[ii].first )
+                continue;
+
+            printConfigFile->Write( s1+s2+s3,
+            m_boxSelectLayer[ii].first->IsChecked( m_boxSelectLayer[ii].second ) );
+        }// for
+                printConfigFile->Flush();
+                delete printConfigFile;
+        } //OK clicked.
+        saveDialog->Destroy(); // Clean up after ourselves
+}
+
+
+void DIALOG_PRINT_USING_PRINTER::OnLoadConfigClick( wxCommandEvent& event )
+{
+    wxString currentDocPath;
+    wxFileDialog* openDialog = new wxFileDialog(
+            this,
+            _( "Open print configuration file" ),
+            wxEmptyString,
+            wxEmptyString,
+            _( "Ini (*.ini)|*.ini" ),
+            wxFD_OPEN,
+            wxDefaultPosition );
+
+    if( openDialog->ShowModal() == wxID_OK )      // if the user clicks "Open"
+    {
+        currentDocPath = openDialog->GetPath();
+        wxString    ReadString;
+        bool    val;
+        int     ival;
+        double  dval;
+        wxFileConfig* printConfigFile = new wxFileConfig( "", "",
+                currentDocPath, "",
+                wxCONFIG_USE_RELATIVE_PATH );
+        printConfigFile->Read( "Printconfig/PrintMirror", &val );
+        m_Print_Mirror->SetValue( val );
+
+        printConfigFile->Read( "PrintConfig/PrintSheetRef", &val );
+        m_Print_Sheet_Ref->SetValue( val );
+
+        printConfigFile->Read( "PrintConfig/PrintBW", &val );
+
+        if( val )
+            m_ModeColorOption->SetSelection( 1 );
+        else
+            m_ModeColorOption->SetSelection( 0 );
+
+        printConfigFile->Read( "PrintConfig/DrillShapeOpt", &ival );
+        m_Drill_Shape_Opt->SetSelection( ival );
+        printConfigFile->Read( "PrintConfig/OptionPrintPage", &ival );
+        m_PagesOption->SetSelection( ival==0 );
+
+        printConfigFile->Read( "PrintConfig/PrintScale", &dval );
+
+        for( unsigned ii = 0; ii<DIM( s_ScaleList ); ii++ )
+        {
+            // If the saved scale is not found in the list, silently ignore.
+            if( s_ScaleList[ii]==dval )
+            {
+                m_ScaleOption->SetSelection( ii );
+                break;
+            }
+        }
+
+        printConfigFile->Read( "PrintConfig/XFineScaleAdjust", &dval );
+        {
+            std::ostringstream strs;
+            strs << dval;
+            std::string str = strs.str();
+            m_FineAdjustXscaleOpt->SetValue( str );
+        }
+        printConfigFile->Read( "PrintConfig/YFineScaleAdjust", &dval );
+        {
+            std::ostringstream strs;
+            strs << dval;
+            std::string str = strs.str();
+            m_FineAdjustYscaleOpt->SetValue( str );
+        }
+
+        for( unsigned ii = 0; ii < DIM( m_boxSelectLayer ); ++ii )
+        {
+            wxString s1 = wxT( "PrintConfig/Layer" );
+            wxString s2 = std::to_string( ii );
+            wxString s3 = wxT( "Selected" );
+
+            if( !m_boxSelectLayer[ii].first )
+                continue;
+
+            printConfigFile->Read( s1 + s2 + s3, &val );
+            m_boxSelectLayer[ii].first->Check( m_boxSelectLayer[ii].second, val );
+        }
+
+        delete printConfigFile;
+    }   // OK clicked on file selection dialog.
+}       // OnLoadConfigClick
diff --git a/pcbnew/dialogs/dialog_print_using_printer_base.cpp b/pcbnew/dialogs/dialog_print_using_printer_base.cpp
index ea69a09..248e941 100644
--- a/pcbnew/dialogs/dialog_print_using_printer_base.cpp
+++ b/pcbnew/dialogs/dialog_print_using_printer_base.cpp
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version May 21 2016)
+// C++ code generated with wxFormBuilder (version Oct  1 2016)
 // http://www.wxformbuilder.org/
 //
 // PLEASE DO "NOT" EDIT THIS FILE!
@@ -147,6 +147,15 @@ DIALOG_PRINT_USING_PRINTER_BASE::DIALOG_PRINT_USING_PRINTER_BASE( wxWindow* pare
 	
 	bbuttonsSizer->Add( 0, 0, 1, wxEXPAND, 5 );
 	
+	m_buttonConfigSave = new wxButton( this, wxID_PRINT_OPTIONS, _("Save config"), wxDefaultPosition, wxDefaultSize, 0 );
+	bbuttonsSizer->Add( m_buttonConfigSave, 0, wxALL|wxEXPAND, 5 );
+	
+	m_buttonConfigLoad = new wxButton( this, wxID_PRINT_OPTIONS, _("Load Config"), wxDefaultPosition, wxDefaultSize, 0 );
+	bbuttonsSizer->Add( m_buttonConfigLoad, 0, wxALL|wxEXPAND, 5 );
+	
+	m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+	bbuttonsSizer->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
+	
 	m_buttonOption = new wxButton( this, wxID_PRINT_OPTIONS, _("Page Options"), wxDefaultPosition, wxDefaultSize, 0 );
 	bbuttonsSizer->Add( m_buttonOption, 0, wxALL|wxEXPAND, 5 );
 	
@@ -176,6 +185,8 @@ DIALOG_PRINT_USING_PRINTER_BASE::DIALOG_PRINT_USING_PRINTER_BASE( wxWindow* pare
 	this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnCloseWindow ) );
 	this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnInitDlg ) );
 	m_ScaleOption->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnScaleSelectionClick ), NULL, this );
+	m_buttonConfigSave->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnSaveConfigClick ), NULL, this );
+	m_buttonConfigLoad->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnLoadConfigClick ), NULL, this );
 	m_buttonOption->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnPageSetup ), NULL, this );
 	m_buttonPreview->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnPrintPreview ), NULL, this );
 	m_buttonPrint->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnPrintButtonClick ), NULL, this );
@@ -188,6 +199,8 @@ DIALOG_PRINT_USING_PRINTER_BASE::~DIALOG_PRINT_USING_PRINTER_BASE()
 	this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnCloseWindow ) );
 	this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnInitDlg ) );
 	m_ScaleOption->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnScaleSelectionClick ), NULL, this );
+	m_buttonConfigSave->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnSaveConfigClick ), NULL, this );
+	m_buttonConfigLoad->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnLoadConfigClick ), NULL, this );
 	m_buttonOption->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnPageSetup ), NULL, this );
 	m_buttonPreview->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnPrintPreview ), NULL, this );
 	m_buttonPrint->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnPrintButtonClick ), NULL, this );
diff --git a/pcbnew/dialogs/dialog_print_using_printer_base.fbp b/pcbnew/dialogs/dialog_print_using_printer_base.fbp
index 7aab94e..e37bfb6 100644
--- a/pcbnew/dialogs/dialog_print_using_printer_base.fbp
+++ b/pcbnew/dialogs/dialog_print_using_printer_base.fbp
@@ -44,7 +44,7 @@
             <property name="minimum_size">-1,-1</property>
             <property name="name">DIALOG_PRINT_USING_PRINTER_BASE</property>
             <property name="pos"></property>
-            <property name="size">739,373</property>
+            <property name="size">739,441</property>
             <property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
             <property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
             <property name="title">Print</property>
@@ -1720,6 +1720,263 @@
                                 <property name="gripper">0</property>
                                 <property name="hidden">0</property>
                                 <property name="id">wxID_PRINT_OPTIONS</property>
+                                <property name="label">Save config</property>
+                                <property name="max_size"></property>
+                                <property name="maximize_button">0</property>
+                                <property name="maximum_size"></property>
+                                <property name="min_size"></property>
+                                <property name="minimize_button">0</property>
+                                <property name="minimum_size"></property>
+                                <property name="moveable">1</property>
+                                <property name="name">m_buttonConfigSave</property>
+                                <property name="pane_border">1</property>
+                                <property name="pane_position"></property>
+                                <property name="pane_size"></property>
+                                <property name="permission">protected</property>
+                                <property name="pin_button">1</property>
+                                <property name="pos"></property>
+                                <property name="resize">Resizable</property>
+                                <property name="show">1</property>
+                                <property name="size"></property>
+                                <property name="style"></property>
+                                <property name="subclass"></property>
+                                <property name="toolbar_pane">0</property>
+                                <property name="tooltip"></property>
+                                <property name="validator_data_type"></property>
+                                <property name="validator_style">wxFILTER_NONE</property>
+                                <property name="validator_type">wxDefaultValidator</property>
+                                <property name="validator_variable"></property>
+                                <property name="window_extra_style"></property>
+                                <property name="window_name"></property>
+                                <property name="window_style"></property>
+                                <event name="OnButtonClick">OnSaveConfigClick</event>
+                                <event name="OnChar"></event>
+                                <event name="OnEnterWindow"></event>
+                                <event name="OnEraseBackground"></event>
+                                <event name="OnKeyDown"></event>
+                                <event name="OnKeyUp"></event>
+                                <event name="OnKillFocus"></event>
+                                <event name="OnLeaveWindow"></event>
+                                <event name="OnLeftDClick"></event>
+                                <event name="OnLeftDown"></event>
+                                <event name="OnLeftUp"></event>
+                                <event name="OnMiddleDClick"></event>
+                                <event name="OnMiddleDown"></event>
+                                <event name="OnMiddleUp"></event>
+                                <event name="OnMotion"></event>
+                                <event name="OnMouseEvents"></event>
+                                <event name="OnMouseWheel"></event>
+                                <event name="OnPaint"></event>
+                                <event name="OnRightDClick"></event>
+                                <event name="OnRightDown"></event>
+                                <event name="OnRightUp"></event>
+                                <event name="OnSetFocus"></event>
+                                <event name="OnSize"></event>
+                                <event name="OnUpdateUI"></event>
+                            </object>
+                        </object>
+                        <object class="sizeritem" expanded="1">
+                            <property name="border">5</property>
+                            <property name="flag">wxALL|wxEXPAND</property>
+                            <property name="proportion">0</property>
+                            <object class="wxButton" expanded="1">
+                                <property name="BottomDockable">1</property>
+                                <property name="LeftDockable">1</property>
+                                <property name="RightDockable">1</property>
+                                <property name="TopDockable">1</property>
+                                <property name="aui_layer"></property>
+                                <property name="aui_name"></property>
+                                <property name="aui_position"></property>
+                                <property name="aui_row"></property>
+                                <property name="best_size"></property>
+                                <property name="bg"></property>
+                                <property name="caption"></property>
+                                <property name="caption_visible">1</property>
+                                <property name="center_pane">0</property>
+                                <property name="close_button">1</property>
+                                <property name="context_help"></property>
+                                <property name="context_menu">1</property>
+                                <property name="default">0</property>
+                                <property name="default_pane">0</property>
+                                <property name="dock">Dock</property>
+                                <property name="dock_fixed">0</property>
+                                <property name="docking">Left</property>
+                                <property name="enabled">1</property>
+                                <property name="fg"></property>
+                                <property name="floatable">1</property>
+                                <property name="font"></property>
+                                <property name="gripper">0</property>
+                                <property name="hidden">0</property>
+                                <property name="id">wxID_PRINT_OPTIONS</property>
+                                <property name="label">Load Config</property>
+                                <property name="max_size"></property>
+                                <property name="maximize_button">0</property>
+                                <property name="maximum_size"></property>
+                                <property name="min_size"></property>
+                                <property name="minimize_button">0</property>
+                                <property name="minimum_size"></property>
+                                <property name="moveable">1</property>
+                                <property name="name">m_buttonConfigLoad</property>
+                                <property name="pane_border">1</property>
+                                <property name="pane_position"></property>
+                                <property name="pane_size"></property>
+                                <property name="permission">protected</property>
+                                <property name="pin_button">1</property>
+                                <property name="pos"></property>
+                                <property name="resize">Resizable</property>
+                                <property name="show">1</property>
+                                <property name="size"></property>
+                                <property name="style"></property>
+                                <property name="subclass"></property>
+                                <property name="toolbar_pane">0</property>
+                                <property name="tooltip"></property>
+                                <property name="validator_data_type"></property>
+                                <property name="validator_style">wxFILTER_NONE</property>
+                                <property name="validator_type">wxDefaultValidator</property>
+                                <property name="validator_variable"></property>
+                                <property name="window_extra_style"></property>
+                                <property name="window_name"></property>
+                                <property name="window_style"></property>
+                                <event name="OnButtonClick">OnLoadConfigClick</event>
+                                <event name="OnChar"></event>
+                                <event name="OnEnterWindow"></event>
+                                <event name="OnEraseBackground"></event>
+                                <event name="OnKeyDown"></event>
+                                <event name="OnKeyUp"></event>
+                                <event name="OnKillFocus"></event>
+                                <event name="OnLeaveWindow"></event>
+                                <event name="OnLeftDClick"></event>
+                                <event name="OnLeftDown"></event>
+                                <event name="OnLeftUp"></event>
+                                <event name="OnMiddleDClick"></event>
+                                <event name="OnMiddleDown"></event>
+                                <event name="OnMiddleUp"></event>
+                                <event name="OnMotion"></event>
+                                <event name="OnMouseEvents"></event>
+                                <event name="OnMouseWheel"></event>
+                                <event name="OnPaint"></event>
+                                <event name="OnRightDClick"></event>
+                                <event name="OnRightDown"></event>
+                                <event name="OnRightUp"></event>
+                                <event name="OnSetFocus"></event>
+                                <event name="OnSize"></event>
+                                <event name="OnUpdateUI"></event>
+                            </object>
+                        </object>
+                        <object class="sizeritem" expanded="1">
+                            <property name="border">5</property>
+                            <property name="flag">wxEXPAND | wxALL</property>
+                            <property name="proportion">0</property>
+                            <object class="wxStaticLine" expanded="1">
+                                <property name="BottomDockable">1</property>
+                                <property name="LeftDockable">1</property>
+                                <property name="RightDockable">1</property>
+                                <property name="TopDockable">1</property>
+                                <property name="aui_layer"></property>
+                                <property name="aui_name"></property>
+                                <property name="aui_position"></property>
+                                <property name="aui_row"></property>
+                                <property name="best_size"></property>
+                                <property name="bg"></property>
+                                <property name="caption"></property>
+                                <property name="caption_visible">1</property>
+                                <property name="center_pane">0</property>
+                                <property name="close_button">1</property>
+                                <property name="context_help"></property>
+                                <property name="context_menu">1</property>
+                                <property name="default_pane">0</property>
+                                <property name="dock">Dock</property>
+                                <property name="dock_fixed">0</property>
+                                <property name="docking">Left</property>
+                                <property name="enabled">1</property>
+                                <property name="fg"></property>
+                                <property name="floatable">1</property>
+                                <property name="font"></property>
+                                <property name="gripper">0</property>
+                                <property name="hidden">0</property>
+                                <property name="id">wxID_ANY</property>
+                                <property name="max_size"></property>
+                                <property name="maximize_button">0</property>
+                                <property name="maximum_size"></property>
+                                <property name="min_size"></property>
+                                <property name="minimize_button">0</property>
+                                <property name="minimum_size"></property>
+                                <property name="moveable">1</property>
+                                <property name="name">m_staticline1</property>
+                                <property name="pane_border">1</property>
+                                <property name="pane_position"></property>
+                                <property name="pane_size"></property>
+                                <property name="permission">protected</property>
+                                <property name="pin_button">1</property>
+                                <property name="pos"></property>
+                                <property name="resize">Resizable</property>
+                                <property name="show">1</property>
+                                <property name="size"></property>
+                                <property name="style">wxLI_HORIZONTAL</property>
+                                <property name="subclass"></property>
+                                <property name="toolbar_pane">0</property>
+                                <property name="tooltip"></property>
+                                <property name="window_extra_style"></property>
+                                <property name="window_name"></property>
+                                <property name="window_style"></property>
+                                <event name="OnChar"></event>
+                                <event name="OnEnterWindow"></event>
+                                <event name="OnEraseBackground"></event>
+                                <event name="OnKeyDown"></event>
+                                <event name="OnKeyUp"></event>
+                                <event name="OnKillFocus"></event>
+                                <event name="OnLeaveWindow"></event>
+                                <event name="OnLeftDClick"></event>
+                                <event name="OnLeftDown"></event>
+                                <event name="OnLeftUp"></event>
+                                <event name="OnMiddleDClick"></event>
+                                <event name="OnMiddleDown"></event>
+                                <event name="OnMiddleUp"></event>
+                                <event name="OnMotion"></event>
+                                <event name="OnMouseEvents"></event>
+                                <event name="OnMouseWheel"></event>
+                                <event name="OnPaint"></event>
+                                <event name="OnRightDClick"></event>
+                                <event name="OnRightDown"></event>
+                                <event name="OnRightUp"></event>
+                                <event name="OnSetFocus"></event>
+                                <event name="OnSize"></event>
+                                <event name="OnUpdateUI"></event>
+                            </object>
+                        </object>
+                        <object class="sizeritem" expanded="1">
+                            <property name="border">5</property>
+                            <property name="flag">wxALL|wxEXPAND</property>
+                            <property name="proportion">0</property>
+                            <object class="wxButton" expanded="1">
+                                <property name="BottomDockable">1</property>
+                                <property name="LeftDockable">1</property>
+                                <property name="RightDockable">1</property>
+                                <property name="TopDockable">1</property>
+                                <property name="aui_layer"></property>
+                                <property name="aui_name"></property>
+                                <property name="aui_position"></property>
+                                <property name="aui_row"></property>
+                                <property name="best_size"></property>
+                                <property name="bg"></property>
+                                <property name="caption"></property>
+                                <property name="caption_visible">1</property>
+                                <property name="center_pane">0</property>
+                                <property name="close_button">1</property>
+                                <property name="context_help"></property>
+                                <property name="context_menu">1</property>
+                                <property name="default">0</property>
+                                <property name="default_pane">0</property>
+                                <property name="dock">Dock</property>
+                                <property name="dock_fixed">0</property>
+                                <property name="docking">Left</property>
+                                <property name="enabled">1</property>
+                                <property name="fg"></property>
+                                <property name="floatable">1</property>
+                                <property name="font"></property>
+                                <property name="gripper">0</property>
+                                <property name="hidden">0</property>
+                                <property name="id">wxID_PRINT_OPTIONS</property>
                                 <property name="label">Page Options</property>
                                 <property name="max_size"></property>
                                 <property name="maximize_button">0</property>
diff --git a/pcbnew/dialogs/dialog_print_using_printer_base.h b/pcbnew/dialogs/dialog_print_using_printer_base.h
index cb4e9bc..0ea7dff 100644
--- a/pcbnew/dialogs/dialog_print_using_printer_base.h
+++ b/pcbnew/dialogs/dialog_print_using_printer_base.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version May 21 2016)
+// C++ code generated with wxFormBuilder (version Oct  1 2016)
 // http://www.wxformbuilder.org/
 //
 // PLEASE DO "NOT" EDIT THIS FILE!
@@ -27,6 +27,7 @@ class DIALOG_SHIM;
 #include <wx/radiobox.h>
 #include <wx/textctrl.h>
 #include <wx/button.h>
+#include <wx/statline.h>
 #include <wx/dialog.h>
 
 ///////////////////////////////////////////////////////////////////////////
@@ -65,6 +66,9 @@ class DIALOG_PRINT_USING_PRINTER_BASE : public DIALOG_SHIM
 		wxRadioBox* m_Drill_Shape_Opt;
 		wxRadioBox* m_ModeColorOption;
 		wxRadioBox* m_PagesOption;
+		wxButton* m_buttonConfigSave;
+		wxButton* m_buttonConfigLoad;
+		wxStaticLine* m_staticline1;
 		wxButton* m_buttonOption;
 		wxButton* m_buttonPreview;
 		wxButton* m_buttonPrint;
@@ -74,6 +78,8 @@ class DIALOG_PRINT_USING_PRINTER_BASE : public DIALOG_SHIM
 		virtual void OnCloseWindow( wxCloseEvent& event ) { event.Skip(); }
 		virtual void OnInitDlg( wxInitDialogEvent& event ) { event.Skip(); }
 		virtual void OnScaleSelectionClick( wxCommandEvent& event ) { event.Skip(); }
+		virtual void OnSaveConfigClick( wxCommandEvent& event ) { event.Skip(); }
+		virtual void OnLoadConfigClick( wxCommandEvent& event ) { event.Skip(); }
 		virtual void OnPageSetup( wxCommandEvent& event ) { event.Skip(); }
 		virtual void OnPrintPreview( wxCommandEvent& event ) { event.Skip(); }
 		virtual void OnPrintButtonClick( wxCommandEvent& event ) { event.Skip(); }
@@ -82,7 +88,7 @@ class DIALOG_PRINT_USING_PRINTER_BASE : public DIALOG_SHIM
 	
 	public:
 		
-		DIALOG_PRINT_USING_PRINTER_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Print"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 739,373 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); 
+		DIALOG_PRINT_USING_PRINTER_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Print"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 739,441 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); 
 		~DIALOG_PRINT_USING_PRINTER_BASE();
 	
 };
-- 
2.1.4