You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							103 lines
						
					
					
						
							2.7 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							103 lines
						
					
					
						
							2.7 KiB
						
					
					
				| /** | |
|  * @file pcbnew/initpcb.cpp | |
|  */ | |
| 
 | |
| #include <fctsys.h> | |
| #include <confirm.h> | |
| #include <wxPcbStruct.h> | |
|  | |
| #include <class_board.h> | |
|  | |
| #include <pcbnew.h> | |
| #include <module_editor_frame.h> | |
|  | |
| 
 | |
| bool PCB_EDIT_FRAME::Clear_Pcb( bool aQuery ) | |
| { | |
|     if( GetBoard() == NULL ) | |
|         return false; | |
| 
 | |
|     if( aQuery && GetScreen()->IsModify() && !GetBoard()->IsEmpty() ) | |
|     { | |
|         if( !IsOK( this, | |
|                    _( "Current Board will be lost and this operation cannot be undone. Continue ?" ) ) ) | |
|             return false; | |
|     } | |
| 
 | |
|     // Clear undo and redo lists because we want a full deletion | |
|     GetScreen()->ClearUndoRedoList(); | |
|     GetScreen()->ClrModify(); | |
| 
 | |
|     // Items visibility flags will be set becuse a new board will be created. | |
|     // Grid and ratsnest can be left to their previous state | |
|     bool showGrid = IsElementVisible( GRID_VISIBLE ); | |
|     bool showRats = IsElementVisible( RATSNEST_VISIBLE ); | |
| 
 | |
|     // delete the old BOARD and create a new BOARD so that the default | |
|     // layer names are put into the BOARD. | |
|     SetBoard( new BOARD() ); | |
|     SetElementVisibility( GRID_VISIBLE, showGrid ); | |
|     SetElementVisibility( RATSNEST_VISIBLE, showRats ); | |
| 
 | |
|     SetCurItem( NULL ); | |
| 
 | |
|     // clear filename, to avoid overwriting an old file | |
|     GetBoard()->SetFileName( wxEmptyString ); | |
| 
 | |
|     // preserve grid size accross call to InitDataPoints() | |
|  | |
| //  wxRealPoint gridsize = GetScreen()->GetGridSize(); | |
|     GetScreen()->InitDataPoints( GetPageSizeIU() ); | |
| //  GetScreen()->SetGrid( gridsize ); | |
|  | |
|     GetBoard()->ResetHighLight(); | |
| 
 | |
|     // Enable all layers (SetCopperLayerCount() will adjust the copper layers enabled) | |
|     GetBoard()->SetEnabledLayers( LSET().set() ); | |
| 
 | |
|     // Default copper layers count set to 2: double layer board | |
|     GetBoard()->SetCopperLayerCount( 2 ); | |
| 
 | |
|     // Update display | |
|     GetBoard()->SetVisibleLayers( LSET().set() ); | |
| 
 | |
|     ReFillLayerWidget(); | |
| 
 | |
|     Zoom_Automatique( false ); | |
| 
 | |
|     return true; | |
| } | |
| 
 | |
| 
 | |
| bool FOOTPRINT_EDIT_FRAME::Clear_Pcb( bool aQuery ) | |
| { | |
|     if( GetBoard() == NULL ) | |
|         return false; | |
| 
 | |
|     if( aQuery && GetScreen()->IsModify() && !GetBoard()->IsEmpty() ) | |
|     { | |
|         if( !IsOK( this, | |
|                    _( "Current Footprint will be lost and this operation cannot be undone. Continue ?" ) ) ) | |
|             return false; | |
|     } | |
| 
 | |
|     // Clear undo and redo lists | |
|     GetScreen()->ClearUndoRedoList(); | |
| 
 | |
|     // Delete the current footprint | |
|     GetBoard()->m_Modules.DeleteAll(); | |
| 
 | |
|     // init pointeurs  et variables | |
|     GetBoard()->SetFileName( wxEmptyString ); | |
| 
 | |
|     SetCurItem( NULL ); | |
| 
 | |
|     // preserve grid size accross call to InitDataPoints() | |
| //    wxRealPoint gridsize = GetScreen()->GetGridSize(); | |
|     GetScreen()->InitDataPoints( GetPageSizeIU() ); | |
| //    GetScreen()->SetGrid( gridsize ); | |
|  | |
|     Zoom_Automatique( false ); | |
| 
 | |
|     return true; | |
| }
 |