Loading CHANGELOG.txt +3 −4 Original line number Diff line number Diff line Loading @@ -7,12 +7,11 @@ email address. 2009-Sep-10 UPDATE Dick Hollenbeck <dick@softplc.com> ================================================================================ ++pcbnew More NETCLASS work, started on the UI also. Almost done. Put NETCLASS support Finished initial NETCLASS work, along with UI. Put NETCLASS support into DRC. Fixed DRC dialog so progress during DRC is sensible and visible. The specctra_export probably still needs a little work regarding VIAs. Don't install this version of PCBNEW if you need stability. You can compile and look but I would not install it quite yet. I compiled wxformbuilder from source, so you may need to upgrade to load my *.fbp files. I compiled wxformbuilder from source, so you may need to upgrade to load my *.fbp files. Jean-Pierre @ todo: pcbnew/zones_test_and_combine_areas.cpp needs to use NETCLASS and not g_DesignSettings.m_TrackClearance Loading pcbnew/dialog_design_rules.cpp +27 −29 Original line number Diff line number Diff line Loading @@ -84,6 +84,9 @@ void DIALOG_DESIGN_RULES::Init() // copy all NETs into m_AllNets by adding them as NETCUPs. // @todo go fix m_Pcb->SynchronizeNetsAndNetClasses() so that the netcode==0 is not present in the BOARD::m_NetClasses NETCLASS* netclass; NETCLASSES& netclasses = m_Pcb->m_NetClasses; Loading Loading @@ -116,7 +119,7 @@ static bool sortByClassThenName( NETCUP* a, NETCUP* b ) if( a->clazz < b->clazz ) return true; if( a->net < a->net ) if( a->net < b->net ) return true; return false; Loading Loading @@ -179,16 +182,14 @@ void DIALOG_DESIGN_RULES::setRowItem( wxListCtrl* aListCtrl, int aRow, NETCUP* a */ void DIALOG_DESIGN_RULES::FillListBoxWithNetNames( wxListCtrl* aListCtrl, const wxString& aNetClass ) { aListCtrl->ClearAll(); #if 0 // out of time for troubleshooting this now. aListCtrl->DeleteAllItems(); PNETCUPS ptrList; // get a subset of m_AllNets in pointer form, sorted as desired. makePointers( &ptrList, aNetClass ); #if defined(DEBUG) #if 0 && defined(DEBUG) int r = 0; for( PNETCUPS::iterator i = ptrList.begin(); i!=ptrList.end(); ++i, ++r ) { Loading @@ -206,9 +207,6 @@ void DIALOG_DESIGN_RULES::FillListBoxWithNetNames( wxListCtrl* aListCtrl, const } aListCtrl->Show(); #endif } Loading Loading @@ -469,42 +467,42 @@ void DIALOG_DESIGN_RULES::OnRightCBSelection( wxCommandEvent& event ) } /* Called on clicking the "<<<" or Copy Right to Left button: * Selected items are moved from the right list to the left list */ void DIALOG_DESIGN_RULES::OnRightToLeftCopyButton( wxCommandEvent& event ) void DIALOG_DESIGN_RULES::moveSelectedItems( wxListCtrl* src, const wxString& newClassName ) { wxString oldClassName = m_leftClassChoice->GetStringSelection(); wxString newClassName = m_rightClassChoice->GetStringSelection(); wxASSERT( oldClassName != wxEmptyString ); wxASSERT( newClassName != wxEmptyString ); wxListItem item; wxString netName; for( int row = 0; row < m_rightListCtrl->GetItemCount(); ++row ) for( int row = 0; row < src->GetItemCount(); ++row ) { if( !m_rightListCtrl->GetItemState( row, wxLIST_STATE_SELECTED ) ) if( !src->GetItemState( row, wxLIST_STATE_SELECTED ) ) continue; /* @todo: get the netName, call setNetClass() wxString netName = m_rightListCtrl->OnGetItemText( row, 0 ); item.SetColumn( 0 ); item.SetId( row ); src->GetItem( item ); netName = item.GetText(); setNetClass( netName, newClassName == wildCard ? NETCLASS::Default : newClassName ); */ } } void DIALOG_DESIGN_RULES::OnRightToLeftCopyButton( wxCommandEvent& event ) { wxString newClassName = m_leftClassChoice->GetStringSelection(); moveSelectedItems( m_rightListCtrl, newClassName ); FillListBoxWithNetNames( m_leftListCtrl, m_leftClassChoice->GetStringSelection() ); FillListBoxWithNetNames( m_rightListCtrl, m_rightClassChoice->GetStringSelection() ); } /* Called on clicking the ">>>" or Copy Left to Right button: * Selected items are moved from the left list to the right list */ void DIALOG_DESIGN_RULES::OnLeftToRightCopyButton( wxCommandEvent& event ) { // @todo factor code from above, or combine the two functions. wxString newClassName = m_rightClassChoice->GetStringSelection(); moveSelectedItems( m_leftListCtrl, newClassName ); FillListBoxWithNetNames( m_leftListCtrl, m_leftClassChoice->GetStringSelection() ); FillListBoxWithNetNames( m_rightListCtrl, m_rightClassChoice->GetStringSelection() ); Loading pcbnew/dialog_design_rules.h +56 −52 Original line number Diff line number Diff line Loading @@ -15,15 +15,17 @@ struct NETCUP clazz = aClass; } wxString net; wxString clazz; wxString net; ///< a net name wxString clazz; ///< a class name }; typedef std::vector<NETCUP> NETCUPS; typedef std::vector<NETCUP*> PNETCUPS; class DIALOG_DESIGN_RULES : public DIALOG_DESIGN_RULES_BASE { private: static const wxString wildCard; Loading Loading @@ -77,6 +79,8 @@ class DIALOG_DESIGN_RULES : public DIALOG_DESIGN_RULES_BASE static void setRowItem( wxListCtrl* aListCtrl, int aRow, NETCUP* aNetAndClass ); void moveSelectedItems( wxListCtrl* src, const wxString& newClassName ); public: DIALOG_DESIGN_RULES( WinEDA_PcbFrame* parent ); Loading pcbnew/dialog_design_rules_base.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ DIALOG_DESIGN_RULES_BASE::DIALOG_DESIGN_RULES_BASE( wxWindow* parent, wxWindowID m_leftClassChoice->SetSelection( 0 ); leftNetSelectBoxSizer->Add( m_leftClassChoice, 0, wxALL|wxEXPAND, 5 ); m_leftListCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES ); m_leftListCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_VRULES ); m_leftListCtrl->SetMinSize( wxSize( 220,-1 ) ); leftNetSelectBoxSizer->Add( m_leftListCtrl, 1, wxALL|wxEXPAND, 5 ); Loading Loading @@ -131,14 +131,14 @@ DIALOG_DESIGN_RULES_BASE::DIALOG_DESIGN_RULES_BASE( wxWindow* parent, wxWindowID m_rightClassChoice->SetSelection( 0 ); rghtNetSelectBoxSizer->Add( m_rightClassChoice, 0, wxALL|wxEXPAND, 5 ); m_rightListCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES ); m_rightListCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_VRULES ); m_rightListCtrl->SetMinSize( wxSize( 220,-1 ) ); rghtNetSelectBoxSizer->Add( m_rightListCtrl, 1, wxALL|wxEXPAND, 5 ); sbSizer4->Add( rghtNetSelectBoxSizer, 1, wxALL|wxEXPAND, 5 ); sbSizer4->Add( rghtNetSelectBoxSizer, 0, wxALL|wxEXPAND, 5 ); bMainSizer->Add( sbSizer4, 1, wxALL|wxEXPAND, 5 ); bMainSizer->Add( sbSizer4, 2, wxALL|wxEXPAND, 5 ); wxStaticBoxSizer* sbSizer2; sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Messages:") ), wxHORIZONTAL ); Loading pcbnew/dialog_design_rules_base.fbp +5 −5 Original line number Diff line number Diff line Loading @@ -88,7 +88,7 @@ <property name="border">5</property> <property name="flag">wxALL|wxEXPAND</property> <property name="proportion">1</property> <object class="wxStaticBoxSizer" expanded="1"> <object class="wxStaticBoxSizer" expanded="0"> <property name="id">wxID_ANY</property> <property name="label">Net Classes:</property> <property name="minimum_size"></property> Loading Loading @@ -399,7 +399,7 @@ <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxALL|wxEXPAND</property> <property name="proportion">1</property> <property name="proportion">2</property> <object class="wxStaticBoxSizer" expanded="0"> <property name="id">wxID_ANY</property> <property name="label">Membership:</property> Loading Loading @@ -492,7 +492,7 @@ <property name="permission">protected</property> <property name="pos"></property> <property name="size"></property> <property name="style">wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES</property> <property name="style">wxLC_HRULES|wxLC_REPORT|wxLC_VRULES</property> <property name="subclass"></property> <property name="tooltip"></property> <property name="validator_data_type"></property> Loading Loading @@ -802,7 +802,7 @@ <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxALL|wxEXPAND</property> <property name="proportion">1</property> <property name="proportion">0</property> <object class="wxBoxSizer" expanded="1"> <property name="minimum_size"></property> <property name="name">rghtNetSelectBoxSizer</property> Loading Loading @@ -883,7 +883,7 @@ <property name="permission">protected</property> <property name="pos"></property> <property name="size"></property> <property name="style">wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES</property> <property name="style">wxLC_HRULES|wxLC_REPORT|wxLC_VRULES</property> <property name="subclass"></property> <property name="tooltip"></property> <property name="validator_data_type"></property> Loading Loading
CHANGELOG.txt +3 −4 Original line number Diff line number Diff line Loading @@ -7,12 +7,11 @@ email address. 2009-Sep-10 UPDATE Dick Hollenbeck <dick@softplc.com> ================================================================================ ++pcbnew More NETCLASS work, started on the UI also. Almost done. Put NETCLASS support Finished initial NETCLASS work, along with UI. Put NETCLASS support into DRC. Fixed DRC dialog so progress during DRC is sensible and visible. The specctra_export probably still needs a little work regarding VIAs. Don't install this version of PCBNEW if you need stability. You can compile and look but I would not install it quite yet. I compiled wxformbuilder from source, so you may need to upgrade to load my *.fbp files. I compiled wxformbuilder from source, so you may need to upgrade to load my *.fbp files. Jean-Pierre @ todo: pcbnew/zones_test_and_combine_areas.cpp needs to use NETCLASS and not g_DesignSettings.m_TrackClearance Loading
pcbnew/dialog_design_rules.cpp +27 −29 Original line number Diff line number Diff line Loading @@ -84,6 +84,9 @@ void DIALOG_DESIGN_RULES::Init() // copy all NETs into m_AllNets by adding them as NETCUPs. // @todo go fix m_Pcb->SynchronizeNetsAndNetClasses() so that the netcode==0 is not present in the BOARD::m_NetClasses NETCLASS* netclass; NETCLASSES& netclasses = m_Pcb->m_NetClasses; Loading Loading @@ -116,7 +119,7 @@ static bool sortByClassThenName( NETCUP* a, NETCUP* b ) if( a->clazz < b->clazz ) return true; if( a->net < a->net ) if( a->net < b->net ) return true; return false; Loading Loading @@ -179,16 +182,14 @@ void DIALOG_DESIGN_RULES::setRowItem( wxListCtrl* aListCtrl, int aRow, NETCUP* a */ void DIALOG_DESIGN_RULES::FillListBoxWithNetNames( wxListCtrl* aListCtrl, const wxString& aNetClass ) { aListCtrl->ClearAll(); #if 0 // out of time for troubleshooting this now. aListCtrl->DeleteAllItems(); PNETCUPS ptrList; // get a subset of m_AllNets in pointer form, sorted as desired. makePointers( &ptrList, aNetClass ); #if defined(DEBUG) #if 0 && defined(DEBUG) int r = 0; for( PNETCUPS::iterator i = ptrList.begin(); i!=ptrList.end(); ++i, ++r ) { Loading @@ -206,9 +207,6 @@ void DIALOG_DESIGN_RULES::FillListBoxWithNetNames( wxListCtrl* aListCtrl, const } aListCtrl->Show(); #endif } Loading Loading @@ -469,42 +467,42 @@ void DIALOG_DESIGN_RULES::OnRightCBSelection( wxCommandEvent& event ) } /* Called on clicking the "<<<" or Copy Right to Left button: * Selected items are moved from the right list to the left list */ void DIALOG_DESIGN_RULES::OnRightToLeftCopyButton( wxCommandEvent& event ) void DIALOG_DESIGN_RULES::moveSelectedItems( wxListCtrl* src, const wxString& newClassName ) { wxString oldClassName = m_leftClassChoice->GetStringSelection(); wxString newClassName = m_rightClassChoice->GetStringSelection(); wxASSERT( oldClassName != wxEmptyString ); wxASSERT( newClassName != wxEmptyString ); wxListItem item; wxString netName; for( int row = 0; row < m_rightListCtrl->GetItemCount(); ++row ) for( int row = 0; row < src->GetItemCount(); ++row ) { if( !m_rightListCtrl->GetItemState( row, wxLIST_STATE_SELECTED ) ) if( !src->GetItemState( row, wxLIST_STATE_SELECTED ) ) continue; /* @todo: get the netName, call setNetClass() wxString netName = m_rightListCtrl->OnGetItemText( row, 0 ); item.SetColumn( 0 ); item.SetId( row ); src->GetItem( item ); netName = item.GetText(); setNetClass( netName, newClassName == wildCard ? NETCLASS::Default : newClassName ); */ } } void DIALOG_DESIGN_RULES::OnRightToLeftCopyButton( wxCommandEvent& event ) { wxString newClassName = m_leftClassChoice->GetStringSelection(); moveSelectedItems( m_rightListCtrl, newClassName ); FillListBoxWithNetNames( m_leftListCtrl, m_leftClassChoice->GetStringSelection() ); FillListBoxWithNetNames( m_rightListCtrl, m_rightClassChoice->GetStringSelection() ); } /* Called on clicking the ">>>" or Copy Left to Right button: * Selected items are moved from the left list to the right list */ void DIALOG_DESIGN_RULES::OnLeftToRightCopyButton( wxCommandEvent& event ) { // @todo factor code from above, or combine the two functions. wxString newClassName = m_rightClassChoice->GetStringSelection(); moveSelectedItems( m_leftListCtrl, newClassName ); FillListBoxWithNetNames( m_leftListCtrl, m_leftClassChoice->GetStringSelection() ); FillListBoxWithNetNames( m_rightListCtrl, m_rightClassChoice->GetStringSelection() ); Loading
pcbnew/dialog_design_rules.h +56 −52 Original line number Diff line number Diff line Loading @@ -15,15 +15,17 @@ struct NETCUP clazz = aClass; } wxString net; wxString clazz; wxString net; ///< a net name wxString clazz; ///< a class name }; typedef std::vector<NETCUP> NETCUPS; typedef std::vector<NETCUP*> PNETCUPS; class DIALOG_DESIGN_RULES : public DIALOG_DESIGN_RULES_BASE { private: static const wxString wildCard; Loading Loading @@ -77,6 +79,8 @@ class DIALOG_DESIGN_RULES : public DIALOG_DESIGN_RULES_BASE static void setRowItem( wxListCtrl* aListCtrl, int aRow, NETCUP* aNetAndClass ); void moveSelectedItems( wxListCtrl* src, const wxString& newClassName ); public: DIALOG_DESIGN_RULES( WinEDA_PcbFrame* parent ); Loading
pcbnew/dialog_design_rules_base.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ DIALOG_DESIGN_RULES_BASE::DIALOG_DESIGN_RULES_BASE( wxWindow* parent, wxWindowID m_leftClassChoice->SetSelection( 0 ); leftNetSelectBoxSizer->Add( m_leftClassChoice, 0, wxALL|wxEXPAND, 5 ); m_leftListCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES ); m_leftListCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_VRULES ); m_leftListCtrl->SetMinSize( wxSize( 220,-1 ) ); leftNetSelectBoxSizer->Add( m_leftListCtrl, 1, wxALL|wxEXPAND, 5 ); Loading Loading @@ -131,14 +131,14 @@ DIALOG_DESIGN_RULES_BASE::DIALOG_DESIGN_RULES_BASE( wxWindow* parent, wxWindowID m_rightClassChoice->SetSelection( 0 ); rghtNetSelectBoxSizer->Add( m_rightClassChoice, 0, wxALL|wxEXPAND, 5 ); m_rightListCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES ); m_rightListCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_VRULES ); m_rightListCtrl->SetMinSize( wxSize( 220,-1 ) ); rghtNetSelectBoxSizer->Add( m_rightListCtrl, 1, wxALL|wxEXPAND, 5 ); sbSizer4->Add( rghtNetSelectBoxSizer, 1, wxALL|wxEXPAND, 5 ); sbSizer4->Add( rghtNetSelectBoxSizer, 0, wxALL|wxEXPAND, 5 ); bMainSizer->Add( sbSizer4, 1, wxALL|wxEXPAND, 5 ); bMainSizer->Add( sbSizer4, 2, wxALL|wxEXPAND, 5 ); wxStaticBoxSizer* sbSizer2; sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Messages:") ), wxHORIZONTAL ); Loading
pcbnew/dialog_design_rules_base.fbp +5 −5 Original line number Diff line number Diff line Loading @@ -88,7 +88,7 @@ <property name="border">5</property> <property name="flag">wxALL|wxEXPAND</property> <property name="proportion">1</property> <object class="wxStaticBoxSizer" expanded="1"> <object class="wxStaticBoxSizer" expanded="0"> <property name="id">wxID_ANY</property> <property name="label">Net Classes:</property> <property name="minimum_size"></property> Loading Loading @@ -399,7 +399,7 @@ <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxALL|wxEXPAND</property> <property name="proportion">1</property> <property name="proportion">2</property> <object class="wxStaticBoxSizer" expanded="0"> <property name="id">wxID_ANY</property> <property name="label">Membership:</property> Loading Loading @@ -492,7 +492,7 @@ <property name="permission">protected</property> <property name="pos"></property> <property name="size"></property> <property name="style">wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES</property> <property name="style">wxLC_HRULES|wxLC_REPORT|wxLC_VRULES</property> <property name="subclass"></property> <property name="tooltip"></property> <property name="validator_data_type"></property> Loading Loading @@ -802,7 +802,7 @@ <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxALL|wxEXPAND</property> <property name="proportion">1</property> <property name="proportion">0</property> <object class="wxBoxSizer" expanded="1"> <property name="minimum_size"></property> <property name="name">rghtNetSelectBoxSizer</property> Loading Loading @@ -883,7 +883,7 @@ <property name="permission">protected</property> <property name="pos"></property> <property name="size"></property> <property name="style">wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES</property> <property name="style">wxLC_HRULES|wxLC_REPORT|wxLC_VRULES</property> <property name="subclass"></property> <property name="tooltip"></property> <property name="validator_data_type"></property> Loading