Commit 4565308d authored by jean-pierre charras's avatar jean-pierre charras
Browse files

Eeschema: fix bug #919636

Pcbnew: 2 minor enhancements
parent ec307ef6
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -49,6 +49,11 @@
#define HELP_PLACE_GRAPHICLINES _( "Place graphic lines or polygons" )
#define HELP_PLACE_GRAPHICTEXTS _( "Place graphic text (comment)" )

#define HELP_ANNOTATE _( "Annotate the components in the schematic" )
#define HELP_RUN_LIB_EDITOR _( "Library editor - Create and edit components" )
#define HELP_RUN_LIB_VIEWER _( "Library browser - Browse components" )
#define HELP_GENERATE_BOM _( "Generate bill of materials and/or cross references" )
#define HELP_IMPORT_FOOTPRINTS _( "Import footprint selection from CvPcb in components footprint field" )

// Component editor:
#define HELP_ADD_PIN _( "Add pins to the component" )
+14 −14
Original line number Diff line number Diff line
@@ -458,29 +458,25 @@ void SCH_EDIT_FRAME::ReCreateMenuBar()
    // Menu Tools:
    wxMenu* toolsMenu = new wxMenu;

    // Library viewer
    AddMenuItem( toolsMenu,
                 ID_TO_LIBRARY,
                 _( "Library &Browser" ),
                 _( "Library browser" ),
                 KiBitmap( library_browse_xpm ) );


    // Library editor
    AddMenuItem( toolsMenu,
                 ID_TO_LIBRARY,
                 _( "Library &Editor" ),
                 _( "Library editor" ),
                 _( "Library &Editor" ), HELP_RUN_LIB_EDITOR,
                 KiBitmap( libedit_xpm ) );

    // Library viewer
    AddMenuItem( toolsMenu,
                 ID_TO_LIBVIEW,
                 _( "Library &Browser" ),  HELP_RUN_LIB_VIEWER,
                 KiBitmap( library_browse_xpm ) );

    // Separator
    toolsMenu->AppendSeparator();

    // Annotate
    AddMenuItem( toolsMenu,
                 ID_GET_ANNOTATE,
                 _( "&Annotate" ),
                 _( "Annotate the components in the schematic" ),
                 _( "&Annotate" ), HELP_ANNOTATE,
                 KiBitmap( annotate_xpm ) );

    // ERC
@@ -501,8 +497,8 @@ void SCH_EDIT_FRAME::ReCreateMenuBar()
    AddMenuItem( toolsMenu,
                 ID_GET_TOOLS,
                 _( "Generate Bill of &Materials" ),
                 _( "Generate bill of materials" ),
                 KiBitmap( tools_xpm ) );
                 HELP_GENERATE_BOM,
                 KiBitmap( bom_xpm ) );

    // Separator
    toolsMenu->AppendSeparator();
@@ -521,6 +517,10 @@ void SCH_EDIT_FRAME::ReCreateMenuBar()
                 _( "Run Pcbnew" ),
                 KiBitmap( pcbnew_xpm ) );

    AddMenuItem( toolsMenu, ID_BACKANNO_ITEMS,
                 _( "Import Footprint Selection" ),
                 HELP_IMPORT_FOOTPRINTS,
                 KiBitmap( import_footprint_names_xpm ) );

    // Help Menu:
    wxMenu* helpMenu = new wxMenu;
+5 −5
Original line number Diff line number Diff line
@@ -134,17 +134,17 @@ void SCH_EDIT_FRAME::ReCreateHToolbar()


    m_mainToolBar->AddTool( ID_TO_LIBRARY, wxEmptyString, KiBitmap( libedit_xpm ),
                            _( "Library editor - Create and edit components" ) );
                            HELP_RUN_LIB_EDITOR );

    m_mainToolBar->AddTool( ID_TO_LIBVIEW, wxEmptyString, KiBitmap( library_browse_xpm ),
                            _( "Library browser - Browse components" ) );
                            HELP_RUN_LIB_VIEWER );


    m_mainToolBar->AddSeparator();


    m_mainToolBar->AddTool( ID_GET_ANNOTATE, wxEmptyString, KiBitmap( annotate_xpm ),
                            _( "Annotate schematic" ) );
                            HELP_ANNOTATE );

    m_mainToolBar->AddTool( ID_GET_ERC, wxEmptyString, KiBitmap( erc_xpm ),
                            _( "Perform electric rules check" ) );
@@ -153,7 +153,7 @@ void SCH_EDIT_FRAME::ReCreateHToolbar()
                            _( "Generate netlist" ) );

    m_mainToolBar->AddTool( ID_GET_TOOLS, wxEmptyString, KiBitmap( bom_xpm ),
                            _( "Generate bill of materials and/or cross references" ) );
                            HELP_GENERATE_BOM );


    m_mainToolBar->AddSeparator();
@@ -167,7 +167,7 @@ void SCH_EDIT_FRAME::ReCreateHToolbar()

    m_mainToolBar->AddTool( ID_BACKANNO_ITEMS, wxEmptyString,
                            KiBitmap( import_footprint_names_xpm ),
                            _( "Back annotate component foot prints" ) );
                            HELP_IMPORT_FOOTPRINTS );

    // set icon paddings
    m_mainToolBar->SetToolBorderPadding(3); // padding
+44 −7
Original line number Diff line number Diff line
@@ -22,6 +22,11 @@ DIALOG_GLOBAL_DELETION::DIALOG_GLOBAL_DELETION( PCB_EDIT_FRAME* parent )
    : DIALOG_GLOBAL_DELETION_BASE( parent )
{
    m_Parent = parent;
    m_currentLayer = 0;
    m_TrackFilterAR->Enable( m_DelTracks->GetValue() );
    m_TrackFilterLocked->Enable( m_DelTracks->GetValue() );
    m_TrackFilterNormal->Enable( m_DelTracks->GetValue() );
    m_TrackFilterVias->Enable( m_DelTracks->GetValue() );
    SetFocus();

    GetSizer()->SetSizeHints(this);
@@ -32,9 +37,24 @@ DIALOG_GLOBAL_DELETION::DIALOG_GLOBAL_DELETION( PCB_EDIT_FRAME* parent )
void PCB_EDIT_FRAME::InstallPcbGlobalDeleteFrame( const wxPoint& pos )
{
    DIALOG_GLOBAL_DELETION dlg( this );
    dlg.SetCurrentLayer( getActiveLayer() );

    dlg.ShowModal();
}

void DIALOG_GLOBAL_DELETION::SetCurrentLayer( int aLayer )
{
    m_currentLayer = aLayer;
    m_textCtrlCurrLayer->SetValue( m_Parent->GetBoard()->GetLayerName( aLayer ) );
}

void DIALOG_GLOBAL_DELETION::OnCheckDeleteTracks( wxCommandEvent& event )
{
    m_TrackFilterAR->Enable( m_DelTracks->GetValue() );
    m_TrackFilterLocked->Enable( m_DelTracks->GetValue() );
    m_TrackFilterNormal->Enable( m_DelTracks->GetValue() );
    m_TrackFilterVias->Enable( m_DelTracks->GetValue() );
}

void DIALOG_GLOBAL_DELETION::AcceptPcbDelete( )
{
@@ -60,7 +80,7 @@ void DIALOG_GLOBAL_DELETION::AcceptPcbDelete( )
        {
            gen_rastnest = true;

            /* ZEG_ZONE items used in Zone filling selection are now deprecated :
            /* SEG_ZONE items used in Zone filling selection are now deprecated :
            * and are deleted but not put in undo buffer if exist
            */
            pcb->m_Zone.DeleteAll();
@@ -75,13 +95,19 @@ void DIALOG_GLOBAL_DELETION::AcceptPcbDelete( )
        }

        int masque_layer = 0;
        int layers_filter = ALL_LAYERS;
        if( m_rbLayersOption->GetSelection() != 0 )     // Use current layer only
            layers_filter = 1 << m_currentLayer;


        if( m_DelDrawings->GetValue() )
            masque_layer = (~EDGE_LAYER) & 0x1FFF0000;
            masque_layer = (~EDGE_LAYER) & ALL_NO_CU_LAYERS;

        if( m_DelBoardEdges->GetValue() )
            masque_layer |= EDGE_LAYER;

        layers_filter &= layers_filter;

        for( item = pcb->m_Drawings; item != NULL; item = nextitem )
        {
            nextitem = item->Next();
@@ -121,16 +147,27 @@ void DIALOG_GLOBAL_DELETION::AcceptPcbDelete( )
            if( !m_TrackFilterAR->GetValue() )
                track_mask_filter |= TRACK_AR;

            for( item = pcb->m_Track; item != NULL; item = nextitem )
            TRACK * nexttrack;
            for( TRACK *track = pcb->m_Track; track != NULL; track = nexttrack )
            {
                nextitem = item->Next();
                nexttrack = track->Next();

                if( (item->GetState( TRACK_LOCKED | TRACK_AR ) & track_mask_filter) != 0 )
                if( (track->GetState( TRACK_LOCKED | TRACK_AR ) & track_mask_filter) != 0 )
                    continue;

                itemPicker.m_PickedItem = item;
                if( (track->GetState( TRACK_LOCKED | TRACK_AR ) == 0) &&
                    !m_TrackFilterNormal->GetValue() )
                    continue;

                if( (track->Type() == PCB_VIA_T)  && !m_TrackFilterVias->GetValue() )
                    continue;

                if( (track->ReturnMaskLayer() & layers_filter) == 0 )
                    continue;

                itemPicker.m_PickedItem = track;
                pickersList.PushItem( itemPicker );
                item->UnLink();
                track->UnLink();
                gen_rastnest = true;
            }
        }
+3 −0
Original line number Diff line number Diff line
@@ -11,9 +11,11 @@ class DIALOG_GLOBAL_DELETION: public DIALOG_GLOBAL_DELETION_BASE
{
private:
	PCB_EDIT_FRAME * m_Parent;
    int m_currentLayer;

public:
    DIALOG_GLOBAL_DELETION( PCB_EDIT_FRAME* parent );
    void SetCurrentLayer( int aLayer );

private:
    void OnOkClick( wxCommandEvent& event )
@@ -27,6 +29,7 @@ private:
    }

	void AcceptPcbDelete();
	void OnCheckDeleteTracks( wxCommandEvent& event );

};

Loading