← Back to team overview

kicad-developers team mailing list archive

[PATCH] pcbnew legacy: remove option to hide via drill

 

Part one of many to clean up pcbnew preferences and unify legacy vs GAL
options.

This patch removes the option in legacy to hide via drills. As Tom
indicated[1], the layout should as much as possible be WYSIWYG, and if a via
has a drill it should show it. Therefore we chose to remove this option from
legacy rather than add it to GAL.

This raises a question that needs to be resolved in a different way. There is a
possibility to create vias with undefined drill diameter, in which case they
will have whatever diameter the net class is set to. Legacy had an option to
indicate this will drill presence or absence: absence of a drill mark indicated
that the diameter was default.

I believe this is a very bad way to do it and needs to be fixed. First of all,
if we *do* permit this behavior it needs to be shown in a different way. Hiding
the drill is a particularly poor approach, because the netclass drill diameter
changing can have destructive consequences for the layout, and it needs to be
obvious that this has happened. In my view it is very unobvious to someone not
familiar that this even exists, and hiding the drills subject to this behavior
makes it *worse*. If we're keeping the behavior, we need a better way to
indicate that drills are dynamically sized.

Honestly I think the behavior needs to go away entirely and be replaced with a
new way to make drills match the net class. Orson suggested to me that there
could be a way to manually trigger an update of drill sizes. In GAL this can
already be done on a selection. I'd like a way to update all drills of a
certain size, though - for instance a quick "change drills that had the old
netclass size to the new netclass size". Thoughts?

PLEASE, I'd like some input from people who actually do layout professionally,
if any are presently stalking the mailing list. The question of whether or not
things should change dynamically tends to be very important to them and I'd
like to know what they think.

[1] https://misc.c4757p.com/pad/p/pcbnew-prefs
>From f586d81d8094b7d6831fad03664401ea6c2fa589 Mon Sep 17 00:00:00 2001
From: Chris Pavlina <pavlina.chris@xxxxxxxxx>
Date: Tue, 10 May 2016 12:18:54 -0400
Subject: [PATCH] pcbnew legacy: remove option to hide via drill

Via drills are now shown in all cases, matching GAL behavior, and the option no
longer exists in the preferences dialog.
---
 include/pcbstruct.h                            | 15 +---
 pcbnew/class_track.cpp                         | 73 +++++++-------------
 pcbnew/classpcb.cpp                            |  1 -
 pcbnew/dialogs/dialog_display_options.cpp      |  9 +--
 pcbnew/dialogs/dialog_display_options_base.cpp | 34 ++++------
 pcbnew/dialogs/dialog_display_options_base.fbp | 94 ++------------------------
 pcbnew/dialogs/dialog_display_options_base.h   |  8 +--
 pcbnew/pcbnew_config.cpp                       |  4 --
 8 files changed, 46 insertions(+), 192 deletions(-)

diff --git a/include/pcbstruct.h b/include/pcbstruct.h
index 4920709..ce411a9 100644
--- a/include/pcbstruct.h
+++ b/include/pcbstruct.h
@@ -2,7 +2,7 @@
  * This program source code file is part of KiCad, a free EDA CAD application.
  *
  * Copyright (C) 2007-2014 Jean-Pierre Charras, jp.charras at wanadoo.fr
- * Copyright (C) 1992-2014 KiCad Developers, see CHANGELOG.TXT for contributors.
+ * Copyright (C) 1992-2016 KiCad Developers, see AUTHORS.txt for contributors.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -31,15 +31,6 @@
 #define PCBSTRUCT_H_
 
 
-/// Values for m_DisplayViaMode member:
-enum VIA_DISPLAY_MODE_T {
-    VIA_HOLE_NOT_SHOW = 0,
-    VIA_SPECIAL_HOLE_SHOW,
-    ALL_VIA_HOLE_SHOW,
-    OPT_VIA_HOLE_END
-};
-
-
 /**
  * Enum TRACE_CLEARANCE_DISPLAY_MODE_T
  * is the set of values for DISPLAY_OPTIONS.ShowTrackClearanceMode parameter option.
@@ -82,10 +73,6 @@ public:
     /// How trace clearances are displayed.  @see TRACE_CLEARANCE_DISPLAY_MODE_T.
     TRACE_CLEARANCE_DISPLAY_MODE_T  m_ShowTrackClearanceMode;
 
-    VIA_DISPLAY_MODE_T m_DisplayViaMode;  /* 0 do not show via hole,
-                                           * 1 show via hole for non default value
-                                           * 2 show all via hole */
-
     bool m_DisplayPolarCood;
     int  m_DisplayZonesMode;
     int  m_DisplayNetNamesMode; /* 0 do not show netnames,
diff --git a/pcbnew/class_track.cpp b/pcbnew/class_track.cpp
index 08997b7..9e0654c 100644
--- a/pcbnew/class_track.cpp
+++ b/pcbnew/class_track.cpp
@@ -4,7 +4,7 @@
  * Copyright (C) 2012 Jean-Pierre Charras, jean-pierre.charras@xxxxxxxxxxxxxxx
  * Copyright (C) 2012 SoftPLC Corporation, Dick Hollenbeck <dick@xxxxxxxxxxx>
  * Copyright (C) 2012 Wayne Stambaugh <stambaughw@xxxxxxxxxxx>
- * Copyright (C) 1992-2015 KiCad Developers, see AUTHORS.txt for contributors.
+ * Copyright (C) 1992-2016 KiCad Developers, see AUTHORS.txt for contributors.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -845,60 +845,35 @@ void VIA::Draw( EDA_DRAW_PANEL* panel, wxDC* aDC, GR_DRAWMODE aDrawMode, const w
         GRCircle( panel->GetClipBox(), aDC, m_Start + aOffset, inner_radius, 0, color );
     }
 
-    // Draw the via hole if the display option allows it
-    if( displ_opts->m_DisplayViaMode != VIA_HOLE_NOT_SHOW )
+    if( fillvia )
     {
-        // Display all drill holes requested or Display non default holes requested
-        bool show_hole = displ_opts->m_DisplayViaMode == ALL_VIA_HOLE_SHOW;
+        bool blackpenstate = false;
 
-        if( !show_hole )
+        if( screen->m_IsPrinting )
         {
-            NETINFO_ITEM* net = GetNet();
-            int drill_class_value = 0;
-            if( net )
-            {
-                if( GetViaType() == VIA_MICROVIA )
-                    drill_class_value = net->GetMicroViaDrillSize();
-                else
-                    drill_class_value = net->GetViaDrillSize();
-            }
-
-            show_hole = GetDrillValue() != drill_class_value;
+            blackpenstate = GetGRForceBlackPenState();
+            GRForceBlackPen( false );
+            color = WHITE;
         }
-
-        if( show_hole )
+        else
         {
-            if( fillvia )
-            {
-                bool blackpenstate = false;
-
-                if( screen->m_IsPrinting )
-                {
-                    blackpenstate = GetGRForceBlackPenState();
-                    GRForceBlackPen( false );
-                    color = WHITE;
-                }
-                else
-                {
-                    color = BLACK;     // or DARKGRAY;
-                }
-
-                if( (aDrawMode & GR_XOR) == 0)
-                    GRSetDrawMode( aDC, GR_COPY );
-
-                if( aDC->LogicalToDeviceXRel( drill_radius ) > MIN_DRAW_WIDTH )  // Draw hole if large enough.
-                    GRFilledCircle( panel->GetClipBox(), aDC, m_Start.x + aOffset.x,
-                                    m_Start.y + aOffset.y, drill_radius, 0, color, color );
-
-                if( screen->m_IsPrinting )
-                    GRForceBlackPen( blackpenstate );
-            }
-            else
-            {
-                if( drill_radius < inner_radius )         // We can show the via hole
-                    GRCircle( panel->GetClipBox(), aDC, m_Start + aOffset, drill_radius, 0, color );
-            }
+            color = BLACK;     // or DARKGRAY;
         }
+
+        if( (aDrawMode & GR_XOR) == 0)
+            GRSetDrawMode( aDC, GR_COPY );
+
+        if( aDC->LogicalToDeviceXRel( drill_radius ) > MIN_DRAW_WIDTH )  // Draw hole if large enough.
+            GRFilledCircle( panel->GetClipBox(), aDC, m_Start.x + aOffset.x,
+                            m_Start.y + aOffset.y, drill_radius, 0, color, color );
+
+        if( screen->m_IsPrinting )
+            GRForceBlackPen( blackpenstate );
+    }
+    else
+    {
+        if( drill_radius < inner_radius )         // We can show the via hole
+            GRCircle( panel->GetClipBox(), aDC, m_Start + aOffset, drill_radius, 0, color );
     }
 
     if( ShowClearance( displ_opts, this ) )
diff --git a/pcbnew/classpcb.cpp b/pcbnew/classpcb.cpp
index a856da9..367f8af 100644
--- a/pcbnew/classpcb.cpp
+++ b/pcbnew/classpcb.cpp
@@ -211,7 +211,6 @@ DISPLAY_OPTIONS::DISPLAY_OPTIONS()
     m_DisplayModTextFill      = FILLED;
     m_DisplayPcbTrackFill     = FILLED;   // false = sketch , true = filled
     m_ShowTrackClearanceMode  = SHOW_CLEARANCE_NEW_TRACKS_AND_VIA_AREAS;
-    m_DisplayViaMode          = VIA_HOLE_NOT_SHOW;
 
     m_DisplayPolarCood        = false;  /* false = display absolute coordinates,
                                          * true = display polar cordinates */
diff --git a/pcbnew/dialogs/dialog_display_options.cpp b/pcbnew/dialogs/dialog_display_options.cpp
index b974a30..285cbe9 100644
--- a/pcbnew/dialogs/dialog_display_options.cpp
+++ b/pcbnew/dialogs/dialog_display_options.cpp
@@ -1,12 +1,8 @@
-/**
- * @file pcbnew/dialogs/dialog_general_options.cpp
- */
-
 /*
  * This program source code file is part of KiCad, a free EDA CAD application.
  *
  * Copyright (C) 2015 Jean-Pierre Charras, jean-pierre.charras at wanadoo.fr
- * Copyright (C) 1992-2015 KiCad Developers, see AUTHORS.txt for contributors.
+ * Copyright (C) 1992-2016 KiCad Developers, see AUTHORS.txt for contributors.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -101,7 +97,6 @@ void DIALOG_DISPLAY_OPTIONS::init()
 
     m_Show_Page_Limits->SetValue( m_Parent->ShowPageLimits() );
 
-    m_OptDisplayViaHole->SetSelection( displ_opts->m_DisplayViaMode );
     m_OptDisplayModTexts->SetValue( displ_opts->m_DisplayModTextFill == SKETCH );
     m_OptDisplayModOutlines->SetValue( displ_opts->m_DisplayModEdgeFill == SKETCH );
     m_OptDisplayPadClearence->SetValue( displ_opts->m_DisplayPadIsol );
@@ -128,8 +123,6 @@ void DIALOG_DISPLAY_OPTIONS::OnOkClick(wxCommandEvent& event)
 
     displ_opts->m_DisplayPcbTrackFill = not m_OptDisplayTracks->GetValue();
 
-    displ_opts->m_DisplayViaMode = (VIA_DISPLAY_MODE_T) m_OptDisplayViaHole->GetSelection();
-
     switch ( m_OptDisplayTracksClearance->GetSelection() )
     {
         case 0:
diff --git a/pcbnew/dialogs/dialog_display_options_base.cpp b/pcbnew/dialogs/dialog_display_options_base.cpp
index 2033a7b..fe37fa2 100644
--- a/pcbnew/dialogs/dialog_display_options_base.cpp
+++ b/pcbnew/dialogs/dialog_display_options_base.cpp
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Jun  5 2014)
+// C++ code generated with wxFormBuilder (version May 10 2016)
 // http://www.wxformbuilder.org/
 //
 // PLEASE DO "NOT" EDIT THIS FILE!
@@ -22,20 +22,12 @@ DIALOG_DISPLAY_OPTIONS_BASE::DIALOG_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWi
 	wxStaticBoxSizer* sLeftBoxSizer;
 	sLeftBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Tracks and Vias:") ), wxVERTICAL );
 	
-	m_OptDisplayTracks = new wxCheckBox( this, wxID_ANY, _("Show tracks in sketch mode"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_OptDisplayTracks = new wxCheckBox( sLeftBoxSizer->GetStaticBox(), wxID_ANY, _("Show tracks in sketch mode"), wxDefaultPosition, wxDefaultSize, 0 );
 	sLeftBoxSizer->Add( m_OptDisplayTracks, 0, wxALL, 5 );
 	
-	m_OptDisplayVias = new wxCheckBox( this, wxID_ANY, _("Show vias in sketch mode"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_OptDisplayVias = new wxCheckBox( sLeftBoxSizer->GetStaticBox(), wxID_ANY, _("Show vias in sketch mode"), wxDefaultPosition, wxDefaultSize, 0 );
 	sLeftBoxSizer->Add( m_OptDisplayVias, 0, wxALL, 5 );
 	
-	wxString m_OptDisplayViaHoleChoices[] = { _("Never"), _("Defined holes"), _("Always") };
-	int m_OptDisplayViaHoleNChoices = sizeof( m_OptDisplayViaHoleChoices ) / sizeof( wxString );
-	m_OptDisplayViaHole = new wxRadioBox( this, ID_VIAS_HOLES, _("Show Via Holes:"), wxDefaultPosition, wxDefaultSize, m_OptDisplayViaHoleNChoices, m_OptDisplayViaHoleChoices, 1, wxRA_SPECIFY_COLS );
-	m_OptDisplayViaHole->SetSelection( 0 );
-	m_OptDisplayViaHole->SetToolTip( _("Show or hide via holes.\nIf Defined Holes is selected, only the non default size holes are shown") );
-	
-	sLeftBoxSizer->Add( m_OptDisplayViaHole, 1, wxALL|wxEXPAND, 5 );
-	
 	
 	bupperSizer->Add( sLeftBoxSizer, 0, wxEXPAND|wxALL, 5 );
 	
@@ -44,7 +36,7 @@ DIALOG_DISPLAY_OPTIONS_BASE::DIALOG_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWi
 	
 	wxString m_ShowNetNamesOptionChoices[] = { _("Do not show"), _("On pads"), _("On tracks"), _("On pads and tracks") };
 	int m_ShowNetNamesOptionNChoices = sizeof( m_ShowNetNamesOptionChoices ) / sizeof( wxString );
-	m_ShowNetNamesOption = new wxRadioBox( this, wxID_ANY, _("Show Net Names:"), wxDefaultPosition, wxDefaultSize, m_ShowNetNamesOptionNChoices, m_ShowNetNamesOptionChoices, 1, wxRA_SPECIFY_COLS );
+	m_ShowNetNamesOption = new wxRadioBox( sbMiddleLeftSizer->GetStaticBox(), wxID_ANY, _("Show Net Names:"), wxDefaultPosition, wxDefaultSize, m_ShowNetNamesOptionNChoices, m_ShowNetNamesOptionChoices, 1, wxRA_SPECIFY_COLS );
 	m_ShowNetNamesOption->SetSelection( 0 );
 	m_ShowNetNamesOption->SetToolTip( _("Show or hide net names on pads and/or tracks") );
 	
@@ -52,7 +44,7 @@ DIALOG_DISPLAY_OPTIONS_BASE::DIALOG_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWi
 	
 	wxString m_OptDisplayTracksClearanceChoices[] = { _("Never"), _("New track"), _("New track with via area"), _("New and edited tracks with via area"), _("Always") };
 	int m_OptDisplayTracksClearanceNChoices = sizeof( m_OptDisplayTracksClearanceChoices ) / sizeof( wxString );
-	m_OptDisplayTracksClearance = new wxRadioBox( this, ID_SHOW_CLEARANCE, _("Show Track Clearance:"), wxDefaultPosition, wxDefaultSize, m_OptDisplayTracksClearanceNChoices, m_OptDisplayTracksClearanceChoices, 1, wxRA_SPECIFY_COLS );
+	m_OptDisplayTracksClearance = new wxRadioBox( sbMiddleLeftSizer->GetStaticBox(), ID_SHOW_CLEARANCE, _("Show Track Clearance:"), wxDefaultPosition, wxDefaultSize, m_OptDisplayTracksClearanceNChoices, m_OptDisplayTracksClearanceChoices, 1, wxRA_SPECIFY_COLS );
 	m_OptDisplayTracksClearance->SetSelection( 0 );
 	m_OptDisplayTracksClearance->SetToolTip( _("Show or hide the track and via clearance area.\nIf New track is selected,  track clearance area is shown only when creating the track.") );
 	
@@ -67,25 +59,25 @@ DIALOG_DISPLAY_OPTIONS_BASE::DIALOG_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWi
 	wxStaticBoxSizer* sfootprintSizer;
 	sfootprintSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Footprints:") ), wxVERTICAL );
 	
-	m_OptDisplayModOutlines = new wxCheckBox( this, wxID_ANY, _("Show outlines in sketch mode"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_OptDisplayModOutlines = new wxCheckBox( sfootprintSizer->GetStaticBox(), wxID_ANY, _("Show outlines in sketch mode"), wxDefaultPosition, wxDefaultSize, 0 );
 	sfootprintSizer->Add( m_OptDisplayModOutlines, 0, wxALL, 5 );
 	
 	m_OptDisplayModTexts
-	= new wxCheckBox( this, wxID_ANY, _("Show text in sketch mode"), wxDefaultPosition, wxDefaultSize, 0 );
+	= new wxCheckBox( sfootprintSizer->GetStaticBox(), wxID_ANY, _("Show text in sketch mode"), wxDefaultPosition, wxDefaultSize, 0 );
 	sfootprintSizer->Add( m_OptDisplayModTexts
 	, 0, wxALL, 5 );
 	
-	m_OptDisplayPads = new wxCheckBox( this, wxID_ANY, _("Show pads in sketch mode"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_OptDisplayPads = new wxCheckBox( sfootprintSizer->GetStaticBox(), wxID_ANY, _("Show pads in sketch mode"), wxDefaultPosition, wxDefaultSize, 0 );
 	sfootprintSizer->Add( m_OptDisplayPads, 0, wxALL, 5 );
 	
-	m_OptDisplayPadClearence = new wxCheckBox( this, wxID_ANY, _("Show pad clearance"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_OptDisplayPadClearence = new wxCheckBox( sfootprintSizer->GetStaticBox(), wxID_ANY, _("Show pad clearance"), wxDefaultPosition, wxDefaultSize, 0 );
 	sfootprintSizer->Add( m_OptDisplayPadClearence, 0, wxALL, 5 );
 	
-	m_OptDisplayPadNumber = new wxCheckBox( this, wxID_ANY, _("Show pad number"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_OptDisplayPadNumber = new wxCheckBox( sfootprintSizer->GetStaticBox(), wxID_ANY, _("Show pad number"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_OptDisplayPadNumber->SetValue(true); 
 	sfootprintSizer->Add( m_OptDisplayPadNumber, 0, wxALL, 5 );
 	
-	m_OptDisplayPadNoConn = new wxCheckBox( this, wxID_ANY, _("Show pad no net connection indicator"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_OptDisplayPadNoConn = new wxCheckBox( sfootprintSizer->GetStaticBox(), wxID_ANY, _("Show pad no net connection indicator"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_OptDisplayPadNoConn->SetValue(true); 
 	sfootprintSizer->Add( m_OptDisplayPadNoConn, 0, wxALL, 5 );
 	
@@ -95,11 +87,11 @@ DIALOG_DISPLAY_OPTIONS_BASE::DIALOG_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWi
 	wxStaticBoxSizer* s_otherSizer;
 	s_otherSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Other:") ), wxVERTICAL );
 	
-	m_OptDisplayDrawings = new wxCheckBox( this, wxID_ANY, _("Show graphic items in sketch mode"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_OptDisplayDrawings = new wxCheckBox( s_otherSizer->GetStaticBox(), wxID_ANY, _("Show graphic items in sketch mode"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_OptDisplayDrawings->SetValue(true); 
 	s_otherSizer->Add( m_OptDisplayDrawings, 0, wxALL, 5 );
 	
-	m_Show_Page_Limits = new wxCheckBox( this, wxID_ANY, _("Show page limits"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_Show_Page_Limits = new wxCheckBox( s_otherSizer->GetStaticBox(), wxID_ANY, _("Show page limits"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_Show_Page_Limits->SetValue(true); 
 	s_otherSizer->Add( m_Show_Page_Limits, 0, wxALL, 5 );
 	
diff --git a/pcbnew/dialogs/dialog_display_options_base.fbp b/pcbnew/dialogs/dialog_display_options_base.fbp
index cc4821f..89a814b 100644
--- a/pcbnew/dialogs/dialog_display_options_base.fbp
+++ b/pcbnew/dialogs/dialog_display_options_base.fbp
@@ -112,6 +112,7 @@
                                 <property name="minimum_size"></property>
                                 <property name="name">sLeftBoxSizer</property>
                                 <property name="orient">wxVERTICAL</property>
+                                <property name="parent">1</property>
                                 <property name="permission">none</property>
                                 <event name="OnUpdateUI"></event>
                                 <object class="sizeritem" expanded="1">
@@ -290,96 +291,6 @@
                                         <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">1</property>
-                                    <object class="wxRadioBox" 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="choices">&quot;Never&quot; &quot;Defined holes&quot; &quot;Always&quot;</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">ID_VIAS_HOLES</property>
-                                        <property name="label">Show Via Holes:</property>
-                                        <property name="majorDimension">1</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_OptDisplayViaHole</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="selection">0</property>
-                                        <property name="show">1</property>
-                                        <property name="size"></property>
-                                        <property name="style">wxRA_SPECIFY_COLS</property>
-                                        <property name="subclass"></property>
-                                        <property name="toolbar_pane">0</property>
-                                        <property name="tooltip">Show or hide via holes.&#x0A;If Defined Holes is selected, only the non default size holes are shown</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="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="OnRadioBox"></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>
                         </object>
                         <object class="sizeritem" expanded="1">
@@ -392,6 +303,7 @@
                                 <property name="minimum_size"></property>
                                 <property name="name">sbMiddleLeftSizer</property>
                                 <property name="orient">wxVERTICAL</property>
+                                <property name="parent">1</property>
                                 <property name="permission">none</property>
                                 <event name="OnUpdateUI"></event>
                                 <object class="sizeritem" expanded="1">
@@ -595,6 +507,7 @@
                                         <property name="minimum_size"></property>
                                         <property name="name">sfootprintSizer</property>
                                         <property name="orient">wxVERTICAL</property>
+                                        <property name="parent">1</property>
                                         <property name="permission">none</property>
                                         <event name="OnUpdateUI"></event>
                                         <object class="sizeritem" expanded="1">
@@ -1137,6 +1050,7 @@
                                         <property name="minimum_size"></property>
                                         <property name="name">s_otherSizer</property>
                                         <property name="orient">wxVERTICAL</property>
+                                        <property name="parent">1</property>
                                         <property name="permission">none</property>
                                         <event name="OnUpdateUI"></event>
                                         <object class="sizeritem" expanded="1">
diff --git a/pcbnew/dialogs/dialog_display_options_base.h b/pcbnew/dialogs/dialog_display_options_base.h
index 3f180e9..4765f62 100644
--- a/pcbnew/dialogs/dialog_display_options_base.h
+++ b/pcbnew/dialogs/dialog_display_options_base.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Jun  5 2014)
+// C++ code generated with wxFormBuilder (version May 10 2016)
 // http://www.wxformbuilder.org/
 //
 // PLEASE DO "NOT" EDIT THIS FILE!
@@ -20,9 +20,9 @@ class DIALOG_SHIM;
 #include <wx/font.h>
 #include <wx/colour.h>
 #include <wx/settings.h>
-#include <wx/radiobox.h>
 #include <wx/sizer.h>
 #include <wx/statbox.h>
+#include <wx/radiobox.h>
 #include <wx/statline.h>
 #include <wx/button.h>
 #include <wx/dialog.h>
@@ -39,13 +39,11 @@ class DIALOG_DISPLAY_OPTIONS_BASE : public DIALOG_SHIM
 	protected:
 		enum
 		{
-			ID_VIAS_HOLES = 1000,
-			ID_SHOW_CLEARANCE
+			ID_SHOW_CLEARANCE = 1000
 		};
 		
 		wxCheckBox* m_OptDisplayTracks;
 		wxCheckBox* m_OptDisplayVias;
-		wxRadioBox* m_OptDisplayViaHole;
 		wxRadioBox* m_ShowNetNamesOption;
 		wxRadioBox* m_OptDisplayTracksClearance;
 		wxCheckBox* m_OptDisplayModOutlines;
diff --git a/pcbnew/pcbnew_config.cpp b/pcbnew/pcbnew_config.cpp
index 9a1ab0e..d485ead 100644
--- a/pcbnew/pcbnew_config.cpp
+++ b/pcbnew/pcbnew_config.cpp
@@ -337,10 +337,6 @@ PARAM_CFG_ARRAY& PCB_EDIT_FRAME::GetConfigurationSettings()
         m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "DisplayPolarCoords" ),
                                                         &displ_opts->m_DisplayPolarCood, false ) );
         // Display options and modes:
-        m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "ViaHoleDisplayMode" ),
-                                                       (int*) &displ_opts->m_DisplayViaMode,
-                                                       VIA_SPECIAL_HOLE_SHOW, VIA_HOLE_NOT_SHOW,
-                                                       OPT_VIA_HOLE_END - 1 ) );
         m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "ShowNetNamesMode" ),
                                                        &displ_opts->m_DisplayNetNamesMode, 3, 0, 3 ) );
         m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "DisplayTrackFilled" ),
-- 
2.8.2


Follow ups