Commit 6efce74c authored by charras's avatar charras
Browse files

Eeschema: fixed bug when edit a component reference using the component dialog editor

Code cleaning and using DrawPanel->Refresh() instead of ReDraw() when possible.
parent 3432474c
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -139,10 +139,10 @@ check_find_package_result(OPENGL_FOUND "OpenGL")
# http://www.wxwidgets.org/manuals/2.8/wx_librarieslist.html
# http://www.wxwidgets.org/manuals/2.8/wx_librarieslist.html


if( KICAD_AUIMANAGER OR KICAD_AUITOOLBAR )
if( KICAD_AUIMANAGER OR KICAD_AUITOOLBAR )
    find_package(wxWidgets COMPONENTS gl html adv core net base aui QUIET)
    find_package(wxWidgets COMPONENTS gl aui adv html core net base QUIET)
#    find_package(wxWidgets COMPONENTS gl html adv core net base QUIET)
#    find_package(wxWidgets COMPONENTS gl adv html core net base QUIET)
else( KICAD_AUIMANAGER OR KICAD_AUITOOLBAR )
else( KICAD_AUIMANAGER OR KICAD_AUITOOLBAR )
    find_package(wxWidgets COMPONENTS gl html adv core net base QUIET)
    find_package(wxWidgets COMPONENTS gl adv html core net base QUIET)
endif( KICAD_AUIMANAGER OR KICAD_AUITOOLBAR )
endif( KICAD_AUIMANAGER OR KICAD_AUITOOLBAR )
check_find_package_result(wxWidgets_FOUND "wxWidgets")
check_find_package_result(wxWidgets_FOUND "wxWidgets")


+3 −4
Original line number Original line Diff line number Diff line
@@ -28,10 +28,6 @@ bool SCH_SCREEN::SchematicCleanUp( wxDC* DC )
    int       flag;
    int       flag;
    bool      Modify = FALSE;
    bool      Modify = FALSE;


    WinEDA_SchematicFrame* frame;

    frame = (WinEDA_SchematicFrame*) wxGetApp().GetTopWindow();

    DrawList = EEDrawList;
    DrawList = EEDrawList;
    for( ; DrawList != NULL; DrawList = DrawList->Next() )
    for( ; DrawList != NULL; DrawList = DrawList->Next() )
    {
    {
@@ -63,7 +59,10 @@ bool SCH_SCREEN::SchematicCleanUp( wxDC* DC )
        }
        }
    }
    }


    WinEDA_SchematicFrame* frame;
    frame = (WinEDA_SchematicFrame*) wxGetApp().GetTopWindow();
    frame->TestDanglingEnds( EEDrawList, DC );
    frame->TestDanglingEnds( EEDrawList, DC );

    return Modify;
    return Modify;
}
}


+6 −3
Original line number Original line Diff line number Diff line
@@ -279,7 +279,8 @@ void WinEDA_SchematicFrame::GeneralControle( wxDC* DC,


    if( screen->IsRefreshReq() )
    if( screen->IsRefreshReq() )
    {
    {
        RedrawActiveWindow( DC, TRUE );
        DrawPanel->Refresh( );
        wxSafeYield();
    }
    }


    if( oldpos != screen->m_Curseur )
    if( oldpos != screen->m_Curseur )
@@ -372,7 +373,8 @@ void WinEDA_LibeditFrame::GeneralControle( wxDC* DC,


    if( screen->IsRefreshReq() )
    if( screen->IsRefreshReq() )
    {
    {
        RedrawActiveWindow( DC, TRUE );
        DrawPanel->Refresh( );
        wxSafeYield();
    }
    }


    if( oldpos != screen->m_Curseur )
    if( oldpos != screen->m_Curseur )
@@ -464,7 +466,8 @@ void WinEDA_ViewlibFrame::GeneralControle( wxDC* DC,


    if( screen->IsRefreshReq() )
    if( screen->IsRefreshReq() )
    {
    {
        RedrawActiveWindow( DC, TRUE );
        DrawPanel->Refresh( );
        wxSafeYield();
    }
    }


    if( oldpos != screen->m_Curseur )
    if( oldpos != screen->m_Curseur )
+6 −0
Original line number Original line Diff line number Diff line
@@ -273,6 +273,12 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnOKButtonClick( wxCommandEvent& event
    // copy all the fields back, and change the length of m_Fields.
    // copy all the fields back, and change the length of m_Fields.
    m_Cmp->SetFields( m_FieldsBuf );
    m_Cmp->SetFields( m_FieldsBuf );
    
    
    // Reference has a specific initialisation, depending on the current active sheet
    // because for a given component, in a complexe hierarchy, there are more than one
    // reference.
    m_Cmp->SetRef( m_Parent->GetSheet(), m_FieldsBuf[REFERENCE].m_Text );


    m_Parent->GetScreen()->SetModify();
    m_Parent->GetScreen()->SetModify();


    m_Parent->TestDanglingEnds( m_Parent->GetScreen()->EEDrawList, NULL );
    m_Parent->TestDanglingEnds( m_Parent->GetScreen()->EEDrawList, NULL );
+1 −24
Original line number Original line Diff line number Diff line
@@ -224,33 +224,10 @@ Error: %s" ),
}
}




/* Create a new screen
 *
 * This screen is chained with OldScreen.  The timestamp value is assigned to
 * the parameter NewScreen-> TimeStamp
 */
SCH_SCREEN* WinEDA_SchematicFrame::CreateNewScreen( SCH_SCREEN* OldScreen,
                                                    int TimeStamp )
{
    SCH_SCREEN* NewScreen;

    NewScreen = new SCH_SCREEN();

    NewScreen->SetRefreshReq();
    if( OldScreen )
        NewScreen->m_Company = OldScreen->m_Company;
    NewScreen->m_TimeStamp = TimeStamp;

    NewScreen->SetBack( OldScreen );

    return NewScreen;
}


/**
/**
 *  Save the entire project and create an archive for components.
 *  Save the entire project and create an archive for components.
 *
 *
 *  The library archive name is <root_name>.cache.lib
 *  The library archive name is <root_name>-cache.lib
 */
 */
void WinEDA_SchematicFrame::SaveProject()
void WinEDA_SchematicFrame::SaveProject()
{
{
Loading