Commit 32ff2421 authored by charras's avatar charras
Browse files

Pcbnew: fixed an inconsistency in DRC. (see changelog)

fixed others very minor bugs.
parent 47692df7
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -4,6 +4,15 @@ KiCad ChangeLog 2010
Please add newer entries at the top, list the date and your name with
email address.

2010-apr-08, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++Pcbnew:
    Drc: take in account the clearance "local parameters" for pads that have local parameters.
         Until now, only NETCLASS clearance values were used.
         (local parameters are used in zone filling)
         But because a pad (or a footprint) can have a specific clearance value
         Drc used now this value, and NETCLASS value only if no local value specified.

2010-mar-31, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++Pcbnew
+2 −2
Original line number Diff line number Diff line
@@ -6,10 +6,10 @@
#endif

#ifndef KICAD_BUILD_VERSION
#define KICAD_BUILD_VERSION "(2010-03-30 SVN 2479)"
#define KICAD_BUILD_VERSION "(2010-04-08 SVN 25xx)"
#endif

#define VERSION_STABILITY "final"
#define VERSION_STABILITY "unstable"

/** Function GetBuildVersion()
 * Return the build date and version
+10 −26
Original line number Diff line number Diff line
@@ -143,6 +143,7 @@ void GERBER_LAYER_WIDGET::onPopupSelection( wxCommandEvent& event )
    int     rowCount;
    int     menuId = event.GetId();
    bool    visible;
    int     visibleLayers = 0;

    switch( menuId )
    {
@@ -153,36 +154,19 @@ void GERBER_LAYER_WIDGET::onPopupSelection( wxCommandEvent& event )
    case ID_SHOW_NO_COPPERS:
        visible = false;
    L_change_coppers:
        int lastCu = -1;
        rowCount = GetLayerRowCount();
        for( int row=rowCount-1;  row>=0;  --row )
        {
            wxCheckBox* cb = (wxCheckBox*) getLayerComp( row, 3 );
            int layer = getDecodedId( cb->GetId() );
            if( IsValidCopperLayerIndex( layer ) )
            {
                lastCu = row;
                break;
            }
        }

        for( int row=0; row < rowCount; ++row )
        {
            wxCheckBox* cb = (wxCheckBox*) getLayerComp( row, 3 );
            int layer = getDecodedId( cb->GetId() );

            if( IsValidCopperLayerIndex( layer ) )
            {
            cb->SetValue( visible );

                bool isLastCopperLayer = (row==lastCu);

                OnLayerVisible( layer, visible, isLastCopperLayer );

                if( isLastCopperLayer )
                    break;
            }
            if( visible )
                visibleLayers |= (1 << row);
            else
                visibleLayers &= ~(1 << row);
        }

        myframe->GetBoard()->SetVisibleLayers( visibleLayers );
        myframe->DrawPanel->Refresh();
        break;
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@
!define COPYRIGHT "Kicad Team (Jean-Pierre Charras et all)"
!define COMMENTS ""
!define HELP_WEB_SITE "http://groups.yahoo.com/group/kicad-users/"
!define DEVEL_WEB_SITE "http://groups.yahoo.com/group/kicad-devel/"
!define DEVEL_WEB_SITE "https://launchpad.net/~kicad-developers/"
!define WINGS3D_WEB_SITE "http://www.wings3d.com"

!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
+5 −15
Original line number Diff line number Diff line
@@ -78,27 +78,17 @@ int BOARD_CONNECTED_ITEM::GetClearance( BOARD_CONNECTED_ITEM* aItem ) const
    // and a call to wxASSERT can crash the application.
    if( myclass )
    {
        int myClearance  = myclass->GetClearance();
        // @todo : after GetNetClass() is reliably not returning NULL, remove the
        // tests for if( myclass ) and if( hisclass )
        // tests for if( myclass )

        if( aItem )
        {
            NETCLASS*   hisclass = aItem->GetNetClass();
            if( hisclass )
            {
                int hisClearance = hisclass->GetClearance();
                int myClearance  = myclass->GetClearance();
            int hisClearance = aItem->GetClearance();
            return max( hisClearance, myClearance );
        }
            else
            {
#ifdef __WXDEBUG__
                wxLogWarning(wxT("BOARD_CONNECTED_ITEM::GetClearance(): NULL hisclass") );
#endif
            }
        }

        return myclass->GetClearance();
        return myClearance;
    }
    else
    {
Loading