diff --git a/common/drawframe.cpp b/common/drawframe.cpp
index fa5dfc124e..47e6bf21dc 100644
--- a/common/drawframe.cpp
+++ b/common/drawframe.cpp
@@ -823,6 +823,9 @@ void EDA_DRAW_FRAME::UpdateStatusBar()
// We already decided the formatter above
Line.Printf( locformatter, dXpos, dYpos );
SetStatusText( Line, 3 );
+
+ // refresh units display
+ DisplayUnitsMsg();
}
diff --git a/eeschema/viewlib_frame.cpp b/eeschema/viewlib_frame.cpp
index 9818c3b6bb..0400f388ce 100644
--- a/eeschema/viewlib_frame.cpp
+++ b/eeschema/viewlib_frame.cpp
@@ -129,11 +129,6 @@ LIB_VIEW_FRAME::LIB_VIEW_FRAME( wxWindow* father, CMP_LIBRARY* Library, wxSemaph
GetScreen()->m_Center = true; // Center coordinate origins on screen.
LoadSettings();
- // Initialize grid id to a default value if not found in config or bad:
- if( ( m_LastGridSizeId <= 0 ) ||
- ( m_LastGridSizeId < ( ID_POPUP_GRID_USER - ID_POPUP_GRID_LEVEL_1000 ) ) )
- m_LastGridSizeId = ID_POPUP_GRID_LEVEL_50 - ID_POPUP_GRID_LEVEL_1000;
-
SetSize( m_FramePos.x, m_FramePos.y, m_FrameSize.x, m_FrameSize.y );
GetScreen()->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId );
diff --git a/gerbview/class_gerbview_layer_widget.cpp b/gerbview/class_gerbview_layer_widget.cpp
index a805a6a9ba..2f1edad9cb 100644
--- a/gerbview/class_gerbview_layer_widget.cpp
+++ b/gerbview/class_gerbview_layer_widget.cpp
@@ -67,7 +67,7 @@ GERBER_LAYER_WIDGET::GERBER_LAYER_WIDGET( GERBVIEW_FRAME* aParent, wxWindow* aFo
// since Popupmenu() calls this->ProcessEvent() we must call this->Connect()
// and not m_LayerScrolledWindow->Connect()
- Connect( ID_SHOW_ALL_COPPERS, ID_SHOW_NO_COPPERS, wxEVT_COMMAND_MENU_SELECTED,
+ Connect( ID_SHOW_ALL_COPPERS, ID_SHOW_NO_COPPERS_BUT_ACTIVE, wxEVT_COMMAND_MENU_SELECTED,
wxCommandEventHandler( GERBER_LAYER_WIDGET::onPopupSelection ), NULL, this );
// install the right click handler into each control at end of ReFill()
@@ -143,10 +143,13 @@ void GERBER_LAYER_WIDGET::onRightDownLayers( wxMouseEvent& event )
// menu text is capitalized:
// http://library.gnome.org/devel/hig-book/2.20/design-text-labels.html.en#layout-capitalization
menu.Append( new wxMenuItem( &menu, ID_SHOW_ALL_COPPERS,
- _("Show All Layers") ) );
+ _("Show All Layers") ) );
+
+ menu.Append( new wxMenuItem( &menu, ID_SHOW_NO_COPPERS_BUT_ACTIVE,
+ _( "Hide All Layers But Active" ) ) );
menu.Append( new wxMenuItem( &menu, ID_SHOW_NO_COPPERS,
- _( "Hide All Layers" ) ) );
+ _( "Hide All Layers" ) ) );
PopupMenu( &menu );
@@ -164,12 +167,18 @@ void GERBER_LAYER_WIDGET::onPopupSelection( wxCommandEvent& event )
{
case ID_SHOW_ALL_COPPERS:
case ID_SHOW_NO_COPPERS:
+ case ID_SHOW_NO_COPPERS_BUT_ACTIVE:
rowCount = GetLayerRowCount();
for( int row=0; row < rowCount; ++row )
{
+ bool loc_visible = visible;
+ if( (menuId == ID_SHOW_NO_COPPERS_BUT_ACTIVE ) &&
+ (row == m_CurrentRow ) )
+ loc_visible = true;
+
wxCheckBox* cb = (wxCheckBox*) getLayerComp( row, 3 );
- cb->SetValue( visible );
- if( visible )
+ cb->SetValue( loc_visible );
+ if( loc_visible )
visibleLayers |= (1 << row);
else
visibleLayers &= ~(1 << row);
diff --git a/gerbview/class_gerbview_layer_widget.h b/gerbview/class_gerbview_layer_widget.h
index c595f52b71..3c93e73571 100644
--- a/gerbview/class_gerbview_layer_widget.h
+++ b/gerbview/class_gerbview_layer_widget.h
@@ -44,8 +44,9 @@ class GERBER_LAYER_WIDGET : public LAYER_WIDGET
GERBVIEW_FRAME* myframe;
// popup menu ids.
-#define ID_SHOW_ALL_COPPERS wxID_HIGHEST
-#define ID_SHOW_NO_COPPERS (wxID_HIGHEST+1)
+#define ID_SHOW_ALL_COPPERS wxID_HIGHEST
+#define ID_SHOW_NO_COPPERS (wxID_HIGHEST+1)
+#define ID_SHOW_NO_COPPERS_BUT_ACTIVE (wxID_HIGHEST+2)
/**
* Function OnRightDownLayers
diff --git a/pcbnew/class_module.h b/pcbnew/class_module.h
index 68379b7a15..b1387c5289 100644
--- a/pcbnew/class_module.h
+++ b/pcbnew/class_module.h
@@ -78,12 +78,6 @@ public:
wxString m_LibRef; /* Name of the module in library (and
* the default value when loading a
* module from the library) */
-
- wxString m_AlternateReference; /* Used when m_Reference cannot
- * be used to identify the
- * footprint ( after a full
- * reannotation of the schematic */
-
int m_Attributs; ///< Flag bits ( see Mod_Attribut )
int flag; /* Use to trace ratsnest and auto routing. */
@@ -340,6 +334,14 @@ public:
return m_Reference->m_Text;
}
+ /**
+ * Function SetReference
+ * @param const wxString& - the reference designator text.
+ */
+ void SetReference( const wxString& aReference)
+ {
+ m_Reference->m_Text = aReference;
+ }
/**
* Function GetValue
@@ -350,6 +352,14 @@ public:
return m_Value->m_Text;
}
+ /**
+ * Function SetValue
+ * @param const wxString& - the value text.
+ */
+ void SetValue( const wxString& aValue )
+ {
+ m_Value->m_Text = aValue;
+ }
/**
* Function FindPadByName
diff --git a/pcbnew/class_pcb_layer_widget.cpp b/pcbnew/class_pcb_layer_widget.cpp
index b3a7249c00..e0268d1516 100644
--- a/pcbnew/class_pcb_layer_widget.cpp
+++ b/pcbnew/class_pcb_layer_widget.cpp
@@ -90,7 +90,7 @@ PCB_LAYER_WIDGET::PCB_LAYER_WIDGET( PCB_EDIT_FRAME* aParent, wxWindow* aFocusOwn
// since Popupmenu() calls this->ProcessEvent() we must call this->Connect()
// and not m_LayerScrolledWindow->Connect()
- Connect( ID_SHOW_ALL_COPPERS, ID_SHOW_NO_COPPERS, wxEVT_COMMAND_MENU_SELECTED,
+ Connect( ID_SHOW_ALL_COPPERS, ID_SHOW_NO_COPPERS_BUT_ACTIVE, wxEVT_COMMAND_MENU_SELECTED,
wxCommandEventHandler( PCB_LAYER_WIDGET::onPopupSelection ), NULL, this );
// install the right click handler into each control at end of ReFill()
@@ -121,7 +121,7 @@ void PCB_LAYER_WIDGET::onRightDownLayers( wxMouseEvent& event )
// menu text is capitalized:
// http://library.gnome.org/devel/hig-book/2.20/design-text-labels.html.en#layout-capitalization
menu.Append( new wxMenuItem( &menu, ID_SHOW_ALL_COPPERS, _( "Show All Copper Layers" ) ) );
-
+ menu.Append( new wxMenuItem( &menu, ID_SHOW_NO_COPPERS_BUT_ACTIVE, _( "Hide All Copper Layers But Active" ) ) );
menu.Append( new wxMenuItem( &menu, ID_SHOW_NO_COPPERS, _( "Hide All Copper Layers" ) ) );
PopupMenu( &menu );
@@ -142,6 +142,7 @@ void PCB_LAYER_WIDGET::onPopupSelection( wxCommandEvent& event )
visible = true;
goto L_change_coppers;
+ case ID_SHOW_NO_COPPERS_BUT_ACTIVE:
case ID_SHOW_NO_COPPERS:
visible = false;
L_change_coppers:
@@ -165,11 +166,16 @@ void PCB_LAYER_WIDGET::onPopupSelection( wxCommandEvent& event )
if( IsValidCopperLayerIndex( layer ) )
{
- cb->SetValue( visible );
+ bool loc_visible = visible;
+ if( (menuId == ID_SHOW_NO_COPPERS_BUT_ACTIVE ) &&
+ (layer == myframe->getActiveLayer() ) )
+ loc_visible = true;
+
+ cb->SetValue( loc_visible );
bool isLastCopperLayer = (row==lastCu);
- OnLayerVisible( layer, visible, isLastCopperLayer );
+ OnLayerVisible( layer, loc_visible, isLastCopperLayer );
if( isLastCopperLayer )
break;
diff --git a/pcbnew/class_pcb_layer_widget.h b/pcbnew/class_pcb_layer_widget.h
index d9c65d7a1e..10e10fbd80 100644
--- a/pcbnew/class_pcb_layer_widget.h
+++ b/pcbnew/class_pcb_layer_widget.h
@@ -89,8 +89,9 @@ protected:
PCB_EDIT_FRAME* myframe;
// popup menu ids.
-#define ID_SHOW_ALL_COPPERS wxID_HIGHEST
-#define ID_SHOW_NO_COPPERS (wxID_HIGHEST+1)
+#define ID_SHOW_ALL_COPPERS wxID_HIGHEST
+#define ID_SHOW_NO_COPPERS (wxID_HIGHEST+1)
+#define ID_SHOW_NO_COPPERS_BUT_ACTIVE (wxID_HIGHEST+2)
/**
* Function OnRightDownLayers
diff --git a/pcbnew/dialogs/dialog_design_rules_base.cpp b/pcbnew/dialogs/dialog_design_rules_base.cpp
index 94350bf42a..db20706cb5 100644
--- a/pcbnew/dialogs/dialog_design_rules_base.cpp
+++ b/pcbnew/dialogs/dialog_design_rules_base.cpp
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Nov 17 2010)
+// C++ code generated with wxFormBuilder (version Jun 30 2011)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
@@ -250,7 +250,7 @@ DIALOG_DESIGN_RULES_BASE::DIALOG_DESIGN_RULES_BASE( wxWindow* parent, wxWindowID
m_gridViaSizeList = new wxGrid( m_panelGolbalDesignRules, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
// Grid
- m_gridViaSizeList->CreateGrid( 7, 2 );
+ m_gridViaSizeList->CreateGrid( 12, 2 );
m_gridViaSizeList->EnableEditing( true );
m_gridViaSizeList->EnableGridLines( true );
m_gridViaSizeList->EnableDragGridSize( false );
@@ -274,6 +274,11 @@ DIALOG_DESIGN_RULES_BASE::DIALOG_DESIGN_RULES_BASE( wxWindow* parent, wxWindowID
m_gridViaSizeList->SetRowLabelValue( 4, _("Via 5") );
m_gridViaSizeList->SetRowLabelValue( 5, _("Via 6") );
m_gridViaSizeList->SetRowLabelValue( 6, _("Via 7") );
+ m_gridViaSizeList->SetRowLabelValue( 7, _("Via 8") );
+ m_gridViaSizeList->SetRowLabelValue( 8, _("Via 9") );
+ m_gridViaSizeList->SetRowLabelValue( 9, _("Via 10") );
+ m_gridViaSizeList->SetRowLabelValue( 10, _("Via 11") );
+ m_gridViaSizeList->SetRowLabelValue( 11, _("Via 12") );
m_gridViaSizeList->SetRowLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE );
// Label Appearance
@@ -294,7 +299,7 @@ DIALOG_DESIGN_RULES_BASE::DIALOG_DESIGN_RULES_BASE( wxWindow* parent, wxWindowID
m_gridTrackWidthList = new wxGrid( m_panelGolbalDesignRules, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
// Grid
- m_gridTrackWidthList->CreateGrid( 7, 1 );
+ m_gridTrackWidthList->CreateGrid( 12, 1 );
m_gridTrackWidthList->EnableEditing( true );
m_gridTrackWidthList->EnableGridLines( true );
m_gridTrackWidthList->EnableDragGridSize( false );
@@ -308,6 +313,18 @@ DIALOG_DESIGN_RULES_BASE::DIALOG_DESIGN_RULES_BASE( wxWindow* parent, wxWindowID
m_gridTrackWidthList->SetColLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE );
// Rows
+ m_gridTrackWidthList->SetRowSize( 0, 17 );
+ m_gridTrackWidthList->SetRowSize( 1, 17 );
+ m_gridTrackWidthList->SetRowSize( 2, 17 );
+ m_gridTrackWidthList->SetRowSize( 3, 17 );
+ m_gridTrackWidthList->SetRowSize( 4, 17 );
+ m_gridTrackWidthList->SetRowSize( 5, 17 );
+ m_gridTrackWidthList->SetRowSize( 6, 17 );
+ m_gridTrackWidthList->SetRowSize( 7, 17 );
+ m_gridTrackWidthList->SetRowSize( 8, 17 );
+ m_gridTrackWidthList->SetRowSize( 9, 17 );
+ m_gridTrackWidthList->SetRowSize( 10, 17 );
+ m_gridTrackWidthList->SetRowSize( 11, 17 );
m_gridTrackWidthList->EnableDragRowSize( true );
m_gridTrackWidthList->SetRowLabelSize( 80 );
m_gridTrackWidthList->SetRowLabelValue( 0, _("Track 1") );
@@ -317,6 +334,11 @@ DIALOG_DESIGN_RULES_BASE::DIALOG_DESIGN_RULES_BASE( wxWindow* parent, wxWindowID
m_gridTrackWidthList->SetRowLabelValue( 4, _("Track 5") );
m_gridTrackWidthList->SetRowLabelValue( 5, _("Track 6") );
m_gridTrackWidthList->SetRowLabelValue( 6, _("Track 7") );
+ m_gridTrackWidthList->SetRowLabelValue( 7, _("Track 8") );
+ m_gridTrackWidthList->SetRowLabelValue( 8, _("Track 9") );
+ m_gridTrackWidthList->SetRowLabelValue( 9, _("Track 10") );
+ m_gridTrackWidthList->SetRowLabelValue( 10, _("Track 11") );
+ m_gridTrackWidthList->SetRowLabelValue( 11, _("Track 12") );
m_gridTrackWidthList->SetRowLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE );
// Label Appearance
diff --git a/pcbnew/dialogs/dialog_design_rules_base.fbp b/pcbnew/dialogs/dialog_design_rules_base.fbp
index d4df936588..d8f1ee15d0 100644
--- a/pcbnew/dialogs/dialog_design_rules_base.fbp
+++ b/pcbnew/dialogs/dialog_design_rules_base.fbp
@@ -7,6 +7,7 @@
1
source_name
0
+ res
UTF-8
connect
dialog_design_rules_base
@@ -28,6 +29,7 @@
1
0
+
1
@@ -50,8 +52,10 @@
0
wxID_ANY
+
0
+
0
-1,-1
1
@@ -65,7 +69,7 @@
Resizable
1
- 777,640
+ 777,697
wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER
Design Rules Editor
@@ -80,6 +84,12 @@
+
+
+
+
+
+
@@ -123,6 +133,7 @@
1
1
+
@@ -143,8 +154,10 @@
0
wxID_ANY
+
0
+
0
1
@@ -206,6 +219,7 @@
1
1
+
1
@@ -225,8 +239,10 @@
0
wxID_ANY
+
0
+
0
1
@@ -304,6 +320,7 @@
0
1
+
1
@@ -346,8 +363,10 @@
0
0
+
0
+
0
-1,-1
1
@@ -455,6 +474,7 @@
1
1
+
1
@@ -476,8 +496,10 @@
wxID_ADD_NETCLASS
Add
+
0
+
0
1
@@ -540,6 +562,7 @@
1
1
+
1
@@ -561,8 +584,10 @@
wxID_REMOVE_NETCLASS
Remove
+
0
+
0
1
@@ -625,6 +650,7 @@
1
1
+
1
@@ -646,8 +672,10 @@
wxID_ANY
Move Up
+
0
+
0
1
@@ -735,6 +763,7 @@
1
1
+
1
@@ -755,8 +784,10 @@
0
wxID_ANY
+
0
+
0
1
@@ -822,6 +853,7 @@
1
1
+
1
@@ -841,8 +873,10 @@
0
wxID_ANY
+
0
+
0
220,200
1
@@ -935,6 +969,7 @@
1
1
+
1
@@ -956,8 +991,10 @@
ID_LEFT_TO_RIGHT_COPY
<<<
+
0
+
0
1
@@ -1020,6 +1057,7 @@
1
1
+
1
@@ -1041,8 +1079,10 @@
ID_RIGHT_TO_LEFT_COPY
>>>
+
0
+
0
1
@@ -1105,6 +1145,7 @@
1
1
+
1
@@ -1126,8 +1167,10 @@
wxID_ANY
<< Select All
+
0
+
0
1
@@ -1190,6 +1233,7 @@
1
1
+
1
@@ -1211,8 +1255,10 @@
wxID_ANY
Select All >>
+
0
+
0
1
@@ -1286,6 +1332,7 @@
1
1
+
1
@@ -1306,8 +1353,10 @@
0
wxID_ANY
+
0
+
0
1
@@ -1373,6 +1422,7 @@
1
1
+
1
@@ -1392,8 +1442,10 @@
0
wxID_ANY
+
0
+
0
220,-1
1
@@ -1482,6 +1534,7 @@
1
1
+
1
@@ -1501,8 +1554,10 @@
0
wxID_ANY
+
0
+
0
1
@@ -1587,6 +1642,7 @@
1
1
+
1
@@ -1609,8 +1665,10 @@
Default Via Type
1
+
0
+
0
1
@@ -1674,6 +1732,7 @@
1
1
+
1
@@ -1696,8 +1755,10 @@
Micro Vias:
1
+
0
+
0
1
@@ -1791,6 +1852,7 @@
1
1
+
1
@@ -1811,8 +1873,10 @@
wxID_ANY
Min track width
+
0
+
0
1
@@ -1875,6 +1939,7 @@
1
1
+
1
@@ -1894,9 +1959,11 @@
0
wxID_ANY
+
0
0
+
0
1
@@ -1963,6 +2030,7 @@
1
1
+
1
@@ -1983,8 +2051,10 @@
wxID_ANY
Min via diameter
+
0
+
0
1
@@ -2047,6 +2117,7 @@
1
1
+
1
@@ -2066,9 +2137,11 @@
0
wxID_ANY
+
0
0
+
0
1
@@ -2135,6 +2208,7 @@
1
1
+
1
@@ -2155,8 +2229,10 @@
wxID_ANY
Min via drill dia
+
0
+
0
1
@@ -2219,6 +2295,7 @@
1
1
+
1
@@ -2238,9 +2315,11 @@
0
wxID_ANY
+
0
0
+
0
1
@@ -2307,6 +2386,7 @@
1
1
+
1
@@ -2327,8 +2407,10 @@
wxID_ANY
Min uvia diameter
+
0
+
0
1
@@ -2391,6 +2473,7 @@
1
1
+
1
@@ -2410,9 +2493,11 @@
0
wxID_ANY
+
0
6
+
0
1
@@ -2479,6 +2564,7 @@
1
1
+
1
@@ -2499,8 +2585,10 @@
wxID_ANY
Min uvia drill dia
+
0
+
0
1
@@ -2563,6 +2651,7 @@
1
1
+
1
@@ -2582,9 +2671,11 @@
0
wxID_ANY
+
0
6
+
0
1
@@ -2657,6 +2748,7 @@
1
1
+
1
@@ -2676,8 +2768,10 @@
0
wxID_ANY
+
0
+
0
1
@@ -2739,6 +2833,7 @@
1
1
+
1
@@ -2759,8 +2854,10 @@
wxID_ANY
Specific via diameters and track widths, which
can be used to replace default Netclass values
on demand, for arbitrary via or track segments.
+
0
+
0
1
@@ -2844,6 +2941,7 @@
1
1
+
1
@@ -2864,8 +2962,10 @@
wxID_ANY
Drill value: a blank or 0 => default Netclass value
+
0
+
0
1
@@ -2930,6 +3030,7 @@
0
0
+
1
@@ -2972,8 +3073,10 @@
0
0
+
0
+
0
1
@@ -2989,10 +3092,10 @@
wxALIGN_CENTRE
80
- "Via 1" "Via 2" "Via 3" "Via 4" "Via 5" "Via 6" "Via 7"
+ "Via 1" "Via 2" "Via 3" "Via 4" "Via 5" "Via 6" "Via 7" "Via 8" "Via 9" "Via 10" "Via 11" "Via 12"
wxALIGN_CENTRE
- 7
+ 12
1
@@ -3086,6 +3189,7 @@
1
1
+
1
@@ -3106,8 +3210,10 @@
wxID_ANY
+
0
+
0
1
@@ -3172,6 +3278,7 @@
0
0
+
1
@@ -3214,8 +3321,10 @@
0
0
+
0
+
0
1
@@ -3231,10 +3340,10 @@
wxALIGN_CENTRE
80
- "Track 1" "Track 2" "Track 3" "Track 4" "Track 5" "Track 6" "Track 7"
+ "Track 1" "Track 2" "Track 3" "Track 4" "Track 5" "Track 6" "Track 7" "Track 8" "Track 9" "Track 10" "Track 11" "Track 12"
wxALIGN_CENTRE
-
- 7
+ 17,17,17,17,17,17,17,17,17,17,17,17
+ 12
1
@@ -3335,6 +3444,7 @@
1
1
+
1
@@ -3354,8 +3464,10 @@
0
wxID_ANY
+
0
+
0
-1,90
1
@@ -3429,6 +3541,7 @@
1
1
+
1
@@ -3450,8 +3563,10 @@
wxID_OK
OK
+
0
+
0
1
@@ -3514,6 +3629,7 @@
1
1
+
1
@@ -3535,8 +3651,10 @@
wxID_CANCEL
Cancel
+
0
+
0
1
diff --git a/pcbnew/dialogs/dialog_design_rules_base.h b/pcbnew/dialogs/dialog_design_rules_base.h
index abed4f8d8b..b29df0fa9c 100644
--- a/pcbnew/dialogs/dialog_design_rules_base.h
+++ b/pcbnew/dialogs/dialog_design_rules_base.h
@@ -1,15 +1,16 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Nov 17 2010)
+// C++ code generated with wxFormBuilder (version Jun 30 2011)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
-#ifndef __dialog_design_rules_base__
-#define __dialog_design_rules_base__
+#ifndef __DIALOG_DESIGN_RULES_BASE_H__
+#define __DIALOG_DESIGN_RULES_BASE_H__
+#include
+#include
#include
-
class NETS_LIST_CTRL;
#include
@@ -108,9 +109,9 @@ class DIALOG_DESIGN_RULES_BASE : public wxDialog
public:
- DIALOG_DESIGN_RULES_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Design Rules Editor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 777,640 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+ DIALOG_DESIGN_RULES_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Design Rules Editor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 777,697 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_DESIGN_RULES_BASE();
};
-#endif //__dialog_design_rules_base__
+#endif //__DIALOG_DESIGN_RULES_BASE_H__
diff --git a/pcbnew/modview_frame.cpp b/pcbnew/modview_frame.cpp
index f7ef62e78a..4735f038ed 100644
--- a/pcbnew/modview_frame.cpp
+++ b/pcbnew/modview_frame.cpp
@@ -139,11 +139,6 @@ FOOTPRINT_VIEWER_FRAME::FOOTPRINT_VIEWER_FRAME( wxWindow* parent, wxSemaphore* s
GetScreen()->m_Center = true; // Center coordinate origins on screen.
LoadSettings();
- // Initialize grid id to a default value if not found in config or bad:
- if( ( m_LastGridSizeId <= 0 ) ||
- ( m_LastGridSizeId < ( ID_POPUP_GRID_USER - ID_POPUP_GRID_LEVEL_1000 ) ) )
- m_LastGridSizeId = ID_POPUP_GRID_LEVEL_50 - ID_POPUP_GRID_LEVEL_1000;
-
SetSize( m_FramePos.x, m_FramePos.y, m_FrameSize.x, m_FrameSize.y );
GetScreen()->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId );
diff --git a/pcbnew/netlist.cpp b/pcbnew/netlist.cpp
index 8b96bb998d..a38a04bf7e 100644
--- a/pcbnew/netlist.cpp
+++ b/pcbnew/netlist.cpp
@@ -169,7 +169,7 @@ bool PCB_EDIT_FRAME::ReadPcbNetlist( const wxString& aNetlistFullFilename,
netList_Reader.m_UseCmpFile = useCmpfile;
netList_Reader.SetFilesnames( aNetlistFullFilename, aCmpFullFileName );
- // True to read footprint filters section: true for CvPcb, false pro Pcbnew
+ // True to read footprint filters section: true for CvPcb, false for Pcbnew
netList_Reader.ReadLibpartSectionSetOpt( false );
bool success = netList_Reader.ReadNetList( netfile );
diff --git a/pcbnew/netlist_reader_common.cpp b/pcbnew/netlist_reader_common.cpp
index 1fc8454efb..b20baad8c1 100644
--- a/pcbnew/netlist_reader_common.cpp
+++ b/pcbnew/netlist_reader_common.cpp
@@ -166,8 +166,8 @@ bool NETLIST_READER::InitializeModules()
if( module )
{
// Update current module ( reference, value and "Time Stamp")
- module->m_Reference->m_Text = currcmp_info->m_Reference;
- module->m_Value->m_Text = currcmp_info->m_Value;
+ module->SetReference( currcmp_info->m_Reference );
+ module->SetValue(currcmp_info->m_Value );
module->SetPath( currcmp_info->m_TimeStamp );
}
else // not existing
@@ -176,11 +176,33 @@ bool NETLIST_READER::InitializeModules()
}
// clear pads netnames
+#if 1
+ // Clear only footprints found in netlist:
+ // This allow to have some footprints added by hand to the board
+ // left initialized
+ for( unsigned ii = 0; ii < m_componentsInNetlist.size(); ii++ )
+ {
+ COMPONENT_INFO* currcmp_info = m_componentsInNetlist[ii];
+ // We can used the reference to find the footprint, because
+ // it is now updated
+ wxString * idMod = &currcmp_info->m_Reference;
+
+ MODULE* module = FindModule( *idMod );
+ if( module )
+ {
+ for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
+ pad->SetNetname( wxEmptyString );
+ }
+ }
+
+#else
+ // Clear all footprints
for( MODULE* module = m_pcbframe->GetBoard()->m_Modules; module; module = module->Next() )
{
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
pad->SetNetname( wxEmptyString );
}
+#endif
return success;
}
@@ -310,7 +332,7 @@ void NETLIST_READER::RemoveExtraFootprints()
for( ii = 0; ii < m_componentsInNetlist.size(); ii++ )
{
COMPONENT_INFO* cmp_info = m_componentsInNetlist[ii];
- if( module->m_Reference->m_Text.CmpNoCase( cmp_info->m_Reference ) == 0 )
+ if( module->GetReference().CmpNoCase( cmp_info->m_Reference ) == 0 )
break; // Module is found in net list.
}
@@ -337,7 +359,7 @@ MODULE* NETLIST_READER::FindModule( const wxString& aId )
}
else // identification by Reference
{
- if( aId.CmpNoCase( module->m_Reference->m_Text ) == 0 )
+ if( aId.CmpNoCase( module->GetReference() ) == 0 )
return module;
}
}
@@ -483,7 +505,7 @@ bool NETLIST_READER::loadNewModules()
{
bool success = true;
#ifdef PCBNEW
- COMPONENT_INFO* ref, * cmp;
+ COMPONENT_INFO* ref_info, * cmp_info;
MODULE* Module = NULL;
wxPoint ModuleBestPosition;
BOARD* pcb = m_pcbframe->GetBoard();
@@ -502,17 +524,18 @@ bool NETLIST_READER::loadNewModules()
ModuleBestPosition.y += 5000;
}
- ref = cmp = m_newModulesList[0];
+ ref_info = cmp_info = m_newModulesList[0];
for( unsigned ii = 0; ii < m_newModulesList.size(); ii++ )
{
- cmp = m_newModulesList[ii];
+ cmp_info = m_newModulesList[ii];
- if( (ii == 0) || ( ref->m_Footprint != cmp->m_Footprint) )
+ if( (ii == 0) || ( ref_info->m_Footprint != cmp_info->m_Footprint) )
{
// New footprint : must be loaded from a library
- Module = m_pcbframe->GetModuleLibrary( wxEmptyString, cmp->m_Footprint, false );
- ref = cmp;
+ Module = m_pcbframe->GetModuleLibrary( wxEmptyString,
+ cmp_info->m_Footprint, false );
+ ref_info = cmp_info;
if( Module == NULL )
{
@@ -521,8 +544,8 @@ bool NETLIST_READER::loadNewModules()
{
wxString msg;
msg.Printf( _( "Component [%s]: footprint <%s> not found" ),
- GetChars( cmp->m_Reference ),
- GetChars( cmp->m_Footprint ) );
+ GetChars( cmp_info->m_Reference ),
+ GetChars( cmp_info->m_Footprint ) );
msg += wxT("\n");
m_messageWindow->AppendText( msg );
@@ -534,9 +557,9 @@ bool NETLIST_READER::loadNewModules()
/* Update schematic links : reference "Time Stamp" and schematic
* hierarchical path */
- Module->m_Reference->m_Text = cmp->m_Reference;
+ Module->SetReference( cmp_info->m_Reference );
Module->SetTimeStamp( GetNewTimeStamp() );
- Module->SetPath( cmp->m_TimeStamp );
+ Module->SetPath( cmp_info->m_TimeStamp );
}
else
{
@@ -550,9 +573,9 @@ bool NETLIST_READER::loadNewModules()
pcb->Add( newmodule, ADD_APPEND );
Module = newmodule;
- Module->m_Reference->m_Text = cmp->m_Reference;
+ Module->SetReference( cmp_info->m_Reference );
Module->SetTimeStamp( GetNewTimeStamp() );
- Module->SetPath( cmp->m_TimeStamp );
+ Module->SetPath( cmp_info->m_TimeStamp );
}
}
#endif