Loading pcbnew/edit.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -467,6 +467,24 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) SetCurItem( NULL ); // Outlines can have changed break; case ID_POPUP_PCB_ZONE_DUPLICATE: { ZONE_CONTAINER* zone = (ZONE_CONTAINER*) GetCurItem(); ZONE_CONTAINER* newZone = new ZONE_CONTAINER( m_Pcb ); newZone->Copy( zone ); ZONE_SETTINGS zoneSettings; zoneSettings << *zone; if( InvokeCopperZonesEditor( this, &zoneSettings ) ) { zoneSettings.ExportSetting( *newZone ); m_Pcb->Add( newZone ); newZone->Draw( m_canvas, &dc, GR_OR ); } else delete newZone; } break; case ID_POPUP_PCB_ZONE_ADD_SIMILAR_ZONE: m_canvas->MoveCursorToCrossHair(); m_canvas->SetAutoPanRequest( true ); Loading pcbnew/onrightclick.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -621,6 +621,9 @@ void PCB_EDIT_FRAME::createPopUpMenuForZones( ZONE_CONTAINER* edge_zone, wxMenu* } zones_menu->AppendSeparator(); AddMenuItem( zones_menu, ID_POPUP_PCB_ZONE_DUPLICATE, _( "Duplicate Zone" ), KiBitmap( add_zone_xpm ) ); AddMenuItem( zones_menu, ID_POPUP_PCB_ZONE_ADD_SIMILAR_ZONE, _( "Add Similar Zone" ), KiBitmap( add_zone_xpm ) ); Loading pcbnew/pcbnew_id.h +1 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,7 @@ enum pcbnew_ids ID_POPUP_PCB_FILL_ALL_ZONES, ID_POPUP_PCB_FILL_ZONE, ID_POPUP_PCB_DELETE_ZONE_CONTAINER, ID_POPUP_PCB_ZONE_DUPLICATE, ID_POPUP_PCB_ZONE_ADD_SIMILAR_ZONE, ID_POPUP_PCB_ZONE_ADD_CUTOUT_ZONE, ID_POPUP_PCB_DELETE_ZONE_CUTOUT, Loading Loading
pcbnew/edit.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -467,6 +467,24 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) SetCurItem( NULL ); // Outlines can have changed break; case ID_POPUP_PCB_ZONE_DUPLICATE: { ZONE_CONTAINER* zone = (ZONE_CONTAINER*) GetCurItem(); ZONE_CONTAINER* newZone = new ZONE_CONTAINER( m_Pcb ); newZone->Copy( zone ); ZONE_SETTINGS zoneSettings; zoneSettings << *zone; if( InvokeCopperZonesEditor( this, &zoneSettings ) ) { zoneSettings.ExportSetting( *newZone ); m_Pcb->Add( newZone ); newZone->Draw( m_canvas, &dc, GR_OR ); } else delete newZone; } break; case ID_POPUP_PCB_ZONE_ADD_SIMILAR_ZONE: m_canvas->MoveCursorToCrossHair(); m_canvas->SetAutoPanRequest( true ); Loading
pcbnew/onrightclick.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -621,6 +621,9 @@ void PCB_EDIT_FRAME::createPopUpMenuForZones( ZONE_CONTAINER* edge_zone, wxMenu* } zones_menu->AppendSeparator(); AddMenuItem( zones_menu, ID_POPUP_PCB_ZONE_DUPLICATE, _( "Duplicate Zone" ), KiBitmap( add_zone_xpm ) ); AddMenuItem( zones_menu, ID_POPUP_PCB_ZONE_ADD_SIMILAR_ZONE, _( "Add Similar Zone" ), KiBitmap( add_zone_xpm ) ); Loading
pcbnew/pcbnew_id.h +1 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,7 @@ enum pcbnew_ids ID_POPUP_PCB_FILL_ALL_ZONES, ID_POPUP_PCB_FILL_ZONE, ID_POPUP_PCB_DELETE_ZONE_CONTAINER, ID_POPUP_PCB_ZONE_DUPLICATE, ID_POPUP_PCB_ZONE_ADD_SIMILAR_ZONE, ID_POPUP_PCB_ZONE_ADD_CUTOUT_ZONE, ID_POPUP_PCB_DELETE_ZONE_CUTOUT, Loading