Commit c63a2b38 authored by charras's avatar charras
Browse files

Eeschema: fixing problems in Libedit for multi parts per package components when editing pins

(non consistent edit pin per pin option and erroneous pin number edition)
Pcbnew: fixing a problem in dialog design rules for small screens (768 pixels height); Better look on bigger screens
parent 706ba777
Loading
Loading
Loading
Loading
+5 −17
Original line number Original line Diff line number Diff line
@@ -219,21 +219,9 @@ void LIB_PIN::SetNumber( const wxString& number )
        m_Flags |= IS_CHANGED;
        m_Flags |= IS_CHANGED;
    }
    }
    
    
    if( GetParent() == NULL )
    /* Others pin numbers marked by EnableEditMode() are not modified
        return;
     * because each pin has its own number

     */
    LIB_PIN_LIST pinList;
    GetParent()->GetPins( pinList );

    for( size_t i = 0; i < pinList.size(); i++ )
    {
        if( ( pinList[i]->m_Flags & IS_LINKED ) == 0
            || pinList[i]->m_PinNum == m_PinNum )
            continue;

        pinList[i]->m_PinNum = m_PinNum;
        pinList[i]->m_Flags |= IS_CHANGED;
    }
}
}




@@ -480,7 +468,7 @@ void LIB_PIN::EnableEditMode( bool enable, bool editPinByPin )
        if( ( pinList[i]->m_Pos == m_Pos )
        if( ( pinList[i]->m_Pos == m_Pos )
            && ( pinList[i]->m_Orient == m_Orient )
            && ( pinList[i]->m_Orient == m_Orient )
            && ( !( m_Flags & IS_NEW ) )
            && ( !( m_Flags & IS_NEW ) )
            && !editPinByPin == false
            && editPinByPin == false
            && enable )
            && enable )
            pinList[i]->m_Flags |= IS_LINKED | IN_EDIT;
            pinList[i]->m_Flags |= IS_LINKED | IN_EDIT;
        else
        else
+2 −2
Original line number Original line Diff line number Diff line
@@ -482,8 +482,8 @@ public:
    /**
    /**
     * Set the pin number.
     * Set the pin number.
     *
     *
     * This will also all of the pin numbers marked by EnableEditMode().
     * Others pin numbers marked by EnableEditMode() are not modified
     *
     * because each pin has its own number
     * @param aNumber - New pin number.
     * @param aNumber - New pin number.
     */
     */
    void SetNumber( const wxString& aNumber );
    void SetNumber( const wxString& aNumber );
+1007 −1007

File changed.

Preview size limit exceeded, changes collapsed.

+2 −1
Original line number Original line Diff line number Diff line
@@ -252,6 +252,7 @@ another pin. Continue?" ) );
        LastPinOrient = CurrentPin->m_Orient;
        LastPinOrient = CurrentPin->m_Orient;
        LastPinType   = CurrentPin->m_PinType;
        LastPinType   = CurrentPin->m_PinType;
        LastPinShape  = CurrentPin->m_PinShape;
        LastPinShape  = CurrentPin->m_PinShape;
        if( !g_EditPinByPinIsOn )
            CreateImagePins( CurrentPin, m_unit, m_convert, m_showDeMorgan );
            CreateImagePins( CurrentPin, m_unit, m_convert, m_showDeMorgan );
        m_lastDrawItem = CurrentPin;
        m_lastDrawItem = CurrentPin;
        m_component->AddDrawItem( m_drawItem );
        m_component->AddDrawItem( m_drawItem );
+10 −2
Original line number Original line Diff line number Diff line
@@ -80,7 +80,8 @@ void WinEDA_LibeditFrame::EditGraphicSymbol( wxDC* DC, LIB_DRAW_ITEM* DrawItem )
    dialog.EnableApplyToAllUnits( component && component->GetPartCount() > 1 );
    dialog.EnableApplyToAllUnits( component && component->GetPartCount() > 1 );
    dialog.SetApplyToAllConversions( !m_drawSpecificConvert );
    dialog.SetApplyToAllConversions( !m_drawSpecificConvert );
    dialog.EnableApplyToAllConversions( component && component->HasConversion() );
    dialog.EnableApplyToAllConversions( component && component->HasConversion() );
    dialog.SetFillStyle( m_drawFillStyle );
//    dialog.SetFillStyle( m_drawFillStyle );   // could better to show the current setting
    dialog.SetFillStyle( DrawItem->m_Fill);
    dialog.EnableFillStyle( DrawItem->IsFillable() );
    dialog.EnableFillStyle( DrawItem->IsFillable() );


    if( dialog.ShowModal() == wxID_CANCEL )
    if( dialog.ShowModal() == wxID_CANCEL )
@@ -92,8 +93,15 @@ void WinEDA_LibeditFrame::EditGraphicSymbol( wxDC* DC, LIB_DRAW_ITEM* DrawItem )
    m_drawSpecificConvert = !dialog.GetApplyToAllConversions();
    m_drawSpecificConvert = !dialog.GetApplyToAllConversions();
    m_drawSpecificUnit    = !dialog.GetApplyToAllUnits();
    m_drawSpecificUnit    = !dialog.GetApplyToAllUnits();


#if 0
    /* TODO: see if m_drawFillStyle must retain the last fill option or not.
     * if the last is Filled, having next new graphic items created
     * with filled body is often bad.
     * currently m_drawFillStyle is left with the defualt value (not filled)
     */
    if( DrawItem->IsFillable() )
    if( DrawItem->IsFillable() )
        m_drawFillStyle = (FILL_T) dialog.GetFillStyle();
        m_drawFillStyle = (FILL_T) dialog.GetFillStyle();
#endif


    // Save copy for undo is done before place.
    // Save copy for undo is done before place.
    if( !( DrawItem->m_Flags & IS_NEW ) )
    if( !( DrawItem->m_Flags & IS_NEW ) )
@@ -110,7 +118,7 @@ void WinEDA_LibeditFrame::EditGraphicSymbol( wxDC* DC, LIB_DRAW_ITEM* DrawItem )
        DrawItem->m_Convert = 0;
        DrawItem->m_Convert = 0;


    if( DrawItem->IsFillable() )
    if( DrawItem->IsFillable() )
        DrawItem->m_Fill = m_drawFillStyle;
        DrawItem->m_Fill = (FILL_T) dialog.GetFillStyle();


    DrawItem->SetWidth( m_drawLineWidth );
    DrawItem->SetWidth( m_drawLineWidth );


Loading