Commit db49e2a5 authored by charras's avatar charras
Browse files

some minor bug fixes and enhancements

parent 6a5d55bf
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -110,9 +110,10 @@ SCH_COMPONENT::SCH_COMPONENT( LIB_COMPONENT& libComponent, DrawSheetPath* sheet,

    if( msg.IsEmpty() )
        msg = wxT( "U" );
    msg += wxT( "?" );
    m_PrefixString = msg;

    // update the reference -- just the prefix for now.
    msg += wxT( "?" );
    SetRef( sheet, msg );

    /* Use the schematic component name instead of the library value field
+1 −0
Original line number Diff line number Diff line
@@ -656,6 +656,7 @@ void WinEDA_FindFrame::LocatePartInLibs( wxCommandEvent& event )

    BOOST_FOREACH( CMP_LIBRARY& lib, CMP_LIBRARY::GetLibraryList() )
    {
        nameList.Clear();
        lib.SearchEntryNames( nameList, Text );

        if( nameList.IsEmpty() )
+4 −2
Original line number Diff line number Diff line
@@ -200,10 +200,12 @@ SCH_COMPONENT* WinEDA_SchematicFrame::Load_Component( wxDC* DC,
    Component = new SCH_COMPONENT( *Entry, GetSheet(), unit, convert,
                                   GetScreen()->m_Curseur, true );

    DrawStructsInGhost( DrawPanel, DC, Component, wxPoint( 0, 0 ) );

    // Set the component value (that can differ from component name in lib, for aliases)
    Component->GetField( VALUE )->m_Text = Name;
    Component->DisplayInfo( this );

    DrawStructsInGhost( DrawPanel, DC, Component, wxPoint( 0, 0 ) );

    return Component;
}

+52 −43
Original line number Diff line number Diff line
@@ -558,7 +558,8 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
    {
        color = g_DesignSettings.m_LayerColor[m_Layer];

        if( g_DesignSettings.IsLayerVisible( m_Layer ) == false && ( color & HIGHT_LIGHT_FLAG ) != HIGHT_LIGHT_FLAG )
        if( g_DesignSettings.IsLayerVisible( m_Layer ) == false && ( color & HIGHT_LIGHT_FLAG ) !=
            HIGHT_LIGHT_FLAG )
            return;

        if( DisplayOpt.ContrastModeDisplay )
@@ -723,7 +724,8 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi

    color = g_DesignSettings.m_ViaColor[m_Shape];

    if( g_DesignSettings.IsElementVisible( VIAS_VISIBLE + m_Shape ) == false && ( color & HIGHT_LIGHT_FLAG ) != HIGHT_LIGHT_FLAG )
    if( g_DesignSettings.IsElementVisible( VIAS_VISIBLE + m_Shape ) == false
        && ( color & HIGHT_LIGHT_FLAG ) != HIGHT_LIGHT_FLAG )
        return;

    if( DisplayOpt.ContrastModeDisplay )
@@ -750,30 +752,36 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi


    rayon = m_Width >> 1;
    if( panel->GetScreen()->Scale( rayon ) <= 4 )
    // for small via size on screen (rayon < 4 pixels) draw a simplified shape
    int radius_in_pixels = panel->GetScreen()->Scale( rayon );
    bool fast_draw = false;

    // Vias are drawn as a filled circle or a double circle. The hole will be drawn later
    int drill_rayon = GetDrillValue() / 2;
    int inner_rayon = rayon - panel->GetScreen()->Unscale( 2 );
    if( radius_in_pixels < 3 )
    {
        GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, color );
        return;
        fast_draw = true;
        fillvia = false;
    }

    if( fillvia )
        GRFilledCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, 0, color, color );

    else
    {
        GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, color );

    int drill_rayon = GetDrillValue() / 2;
    int inner_rayon = rayon - panel->GetScreen()->Unscale( 2 );

        if ( fast_draw )
            return;
        GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
                  inner_rayon, color );
    }

    // Draw the via hole if the display option allows it
    if( DisplayOpt.m_DisplayViaMode != VIA_HOLE_NOT_SHOW )
    {
        if( (DisplayOpt.m_DisplayViaMode == ALL_VIA_HOLE_SHOW)          // Display all drill holes requested
           || ( (drill_rayon > 0 ) && !IsDrillDefault() ) )             // Or Display non default holes requested
        {
            if( drill_rayon < inner_rayon )                             // We can show the via hole
        {
            if( fillvia )
            {
@@ -801,12 +809,12 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi
            }
            else
            {
                if( drill_rayon < inner_rayon )         // We can show the via hole
                    GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
                              drill_rayon, color );
            }
        }
    }
    }

    if( DisplayOpt.ShowTrackClearanceMode == SHOW_CLEARANCE_ALWAYS )
        GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
@@ -912,6 +920,7 @@ void TRACK::DisplayInfo( WinEDA_DrawFrame* frame )
    }
}


/*
 * Function DisplayInfoBase
 * has knowledge about the frame and how and where to put status information