EESchema dead code removal and other minor changes.

* Move code from function ClearProjectDrawList() into SCH_SCREEN object
  Clear() method.
* Delete eeschema/delsheet.cpp as none of the code in it is ever called.
* Move global spice and net list command line variables into SCH_EDIT_FRAME
  object as priviate members and provide access methods.
* Remove unnecessary header includes from eeschema/sheet.cpp.
* Minor coding policy fixes.
This commit is contained in:
Wayne Stambaugh 2011-06-15 14:44:24 -04:00
parent 182d3d4dfe
commit 48b2661baa
15 changed files with 82 additions and 163 deletions

View File

@ -25,7 +25,6 @@ set(EESCHEMA_SRCS
cross-probing.cpp cross-probing.cpp
dangling_ends.cpp dangling_ends.cpp
database.cpp database.cpp
delsheet.cpp
dialogs/dialog_color_config.cpp dialogs/dialog_color_config.cpp
dialogs/dialog_plot_schematic_DXF.cpp dialogs/dialog_plot_schematic_DXF.cpp
dialogs/dialog_plot_schematic_DXF_base.cpp dialogs/dialog_plot_schematic_DXF_base.cpp

View File

@ -1,94 +0,0 @@
/****************/
/* delsheet.cpp */
/****************/
#include "fctsys.h"
#include "appl_wxstruct.h"
#include "common.h"
#include "confirm.h"
#include "class_sch_screen.h"
#include "wxEeschemaStruct.h"
#include "general.h"
#include "protos.h"
#include "sch_sheet.h"
/* Free (delete) all schematic data (include the sub hierarchy sheets )
* for the hierarchical sheet FirstSheet
* FirstSheet is not deleted.
*/
void DeleteSubHierarchy( SCH_SHEET* FirstSheet, bool confirm_deletion )
{
EDA_ITEM* DrawStruct;
EDA_ITEM* EEDrawList;
wxString msg;
SCH_EDIT_FRAME* frame;
frame = (SCH_EDIT_FRAME*)wxGetApp().GetTopWindow();
if( FirstSheet == NULL )
return;
if( FirstSheet->Type() != SCH_SHEET_T )
{
DisplayError( NULL, wxT( "DeleteSubHierarchy error(): NOT a Sheet" ) );
return;
}
if( FirstSheet->GetScreen()->IsModify() && confirm_deletion )
{
msg.Printf( _( "Sheet %s (file %s) modified. Save it?" ),
FirstSheet->m_SheetName.GetData(),
FirstSheet->GetFileName().GetData() );
if( IsOK( NULL, msg ) )
{
frame->SaveEEFile( FirstSheet->GetScreen(), FILE_SAVE_AS );
}
}
/* free the sub hierarchy */
if( FirstSheet->GetScreen() )
{
EEDrawList = FirstSheet->GetScreen()->GetDrawItems();
while( EEDrawList != NULL )
{
DrawStruct = EEDrawList;
EEDrawList = EEDrawList->Next();
if( DrawStruct->Type() == SCH_SHEET_T )
{
DeleteSubHierarchy( (SCH_SHEET*) DrawStruct, confirm_deletion );
}
}
FirstSheet->GetScreen()->FreeDrawList();
}
}
/* free the draw list screen->EEDrawList and the subhierarchies
* clear the screen datas (filenames ..)
*/
bool ClearProjectDrawList( SCH_SCREEN* screen, bool confirm_deletion )
{
if( screen == NULL )
return TRUE;
screen->FreeDrawList();
/* Clear the screen datas */
screen->m_ScreenNumber = screen->m_NumberOfScreen = 1;
screen->m_Title.Empty();
screen->m_Revision.Empty();
screen->m_Company.Empty();
screen->m_Commentaire1.Empty();
screen->m_Commentaire2.Empty();
screen->m_Commentaire3.Empty();
screen->m_Commentaire4.Empty();
screen->m_Date = GenDate();
return TRUE;
}

View File

@ -10,6 +10,9 @@ class wxStaticLine;
class wxStdDialogButtonSizer; class wxStdDialogButtonSizer;
extern void SeedLayers();
// Specify the width and height of every (color-displaying / bitmap) button // Specify the width and height of every (color-displaying / bitmap) button
const int BUTT_SIZE_X = 16; const int BUTT_SIZE_X = 16;
const int BUTT_SIZE_Y = 16; const int BUTT_SIZE_Y = 16;

View File

@ -17,7 +17,7 @@
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "hotkeys.h" #include "hotkeys.h"
#include "dialogs/dialog_color_config.h"
#include "transform.h" #include "transform.h"
#include <wx/snglinst.h> #include <wx/snglinst.h>
@ -48,12 +48,6 @@ const wxString CompLibFileExtension( wxT( "lib" ) );
const wxString SymbolFileWildcard( wxT( "Kicad drawing symbol file (*.sym)|*.sym" ) ); const wxString SymbolFileWildcard( wxT( "Kicad drawing symbol file (*.sym)|*.sym" ) );
const wxString CompLibFileWildcard( wxT( "Kicad component library file (*.lib)|*.lib" ) ); const wxString CompLibFileWildcard( wxT( "Kicad component library file (*.lib)|*.lib" ) );
// command line to call the simulator (gnucap, spice..)
wxString g_SimulatorCommandLine;
// command line to call the simulator net lister (gnucap, spice..)
wxString g_NetListerCommandLine;
LayerStruct g_LayerDescr; /* layer colors. */ LayerStruct g_LayerDescr; /* layer colors. */
bool g_EditPinByPinIsOn = false; /* true to do not synchronize pins bool g_EditPinByPinIsOn = false; /* true to do not synchronize pins
@ -138,7 +132,7 @@ bool WinEDA_App::OnInit()
frame = new SCH_EDIT_FRAME( NULL, wxT( "EESchema" ), wxPoint( 0, 0 ), wxSize( 600, 400 ) ); frame = new SCH_EDIT_FRAME( NULL, wxT( "EESchema" ), wxPoint( 0, 0 ), wxSize( 600, 400 ) );
SetTopWindow( frame ); SetTopWindow( frame );
frame->Show( TRUE ); frame->Show( true );
if( CreateServer( frame, KICAD_SCH_PORT_SERVICE_NUMBER ) ) if( CreateServer( frame, KICAD_SCH_PORT_SERVICE_NUMBER ) )
{ {
@ -147,7 +141,7 @@ bool WinEDA_App::OnInit()
SetupServerFunction( RemoteCommand ); SetupServerFunction( RemoteCommand );
} }
frame->Zoom_Automatique( TRUE ); frame->Zoom_Automatique( true );
/* Load file specified in the command line. */ /* Load file specified in the command line. */
if( filename.IsOk() ) if( filename.IsOk() )
@ -156,6 +150,7 @@ bool WinEDA_App::OnInit()
if( filename.GetExt() != SchematicFileExtension ) if( filename.GetExt() != SchematicFileExtension )
filename.SetExt( SchematicFileExtension ); filename.SetExt( SchematicFileExtension );
wxSetWorkingDirectory( filename.GetPath() ); wxSetWorkingDirectory( filename.GetPath() );
if( frame->LoadOneEEProject( filename.GetFullPath(), false ) ) if( frame->LoadOneEEProject( filename.GetFullPath(), false ) )
@ -164,9 +159,9 @@ bool WinEDA_App::OnInit()
else else
{ {
// Read a default config file if no file to load. // Read a default config file if no file to load.
frame->LoadProjectFile( wxEmptyString, TRUE ); frame->LoadProjectFile( wxEmptyString, true );
frame->DrawPanel->Refresh( TRUE ); frame->DrawPanel->Refresh( true );
} }
return TRUE; return true;
} }

View File

@ -589,7 +589,7 @@ void SCH_EDIT_FRAME::LoadSettings()
// Load netlists options: // Load netlists options:
cfg->Read( SpiceNetNamesEntry, &g_OptNetListUseNames, false ); cfg->Read( SpiceNetNamesEntry, &g_OptNetListUseNames, false );
cfg->Read( SimulatorCommandEntry, &g_SimulatorCommandLine ); cfg->Read( SimulatorCommandEntry, &m_simulatorCommand );
/* Load find dialog session setting. */ /* Load find dialog session setting. */
cfg->Read( FindDialogPositionXEntry, &tmp, -1 ); cfg->Read( FindDialogPositionXEntry, &tmp, -1 );
@ -675,7 +675,7 @@ void SCH_EDIT_FRAME::SaveSettings()
// Save netlists options: // Save netlists options:
cfg->Write( SpiceNetNamesEntry, g_OptNetListUseNames ); cfg->Write( SpiceNetNamesEntry, g_OptNetListUseNames );
cfg->Write( SimulatorCommandEntry, g_SimulatorCommandLine ); cfg->Write( SimulatorCommandEntry, m_simulatorCommand );
/* Save find dialog session setting. */ /* Save find dialog session setting. */
cfg->Write( FindDialogPositionXEntry, m_findDialogPosition.x ); cfg->Write( FindDialogPositionXEntry, m_findDialogPosition.x );

View File

@ -146,9 +146,6 @@ extern const wxString SymbolFileWildcard;
extern const wxString CompLibFileExtension; extern const wxString CompLibFileExtension;
extern const wxString CompLibFileWildcard; extern const wxString CompLibFileWildcard;
extern wxString g_SimulatorCommandLine;
extern wxString g_NetListerCommandLine;
extern LayerStruct g_LayerDescr; extern LayerStruct g_LayerDescr;
extern bool g_EditPinByPinIsOn; /* True to prevent displacing extern bool g_EditPinByPinIsOn; /* True to prevent displacing

View File

@ -422,17 +422,16 @@ bool SCH_EDIT_FRAME::WriteNetListFile( int aFormat, const wxString& aFullFileNam
break; break;
// If user provided no plugin command line, return now. // If user provided no plugin command line, return now.
if( g_NetListerCommandLine.IsEmpty() ) if( m_netListerCommand.IsEmpty() )
break; break;
// build full command line from user's format string, e.g.: // build full command line from user's format string, e.g.:
// "xsltproc -o %O /usr/local/lib/kicad/plugins/netlist_form_pads-pcb.xsl %I" // "xsltproc -o %O /usr/local/lib/kicad/plugins/netlist_form_pads-pcb.xsl %I"
// becomes, after the user selects /tmp/s1.net as the output file from the file dialog: // becomes, after the user selects /tmp/s1.net as the output file from the file dialog:
// "xsltproc -o /tmp/s1.net /usr/local/lib/kicad/plugins/netlist_form_pads-pcb.xsl /tmp/s1.tmp" // "xsltproc -o /tmp/s1.net /usr/local/lib/kicad/plugins/netlist_form_pads-pcb.xsl /tmp/s1.tmp"
wxString commandLine = EXPORT_HELP::MakeCommandLine( wxString commandLine = EXPORT_HELP::MakeCommandLine( m_netListerCommand,
g_NetListerCommandLine, tmpFile.GetFullPath(),
tmpFile.GetFullPath(), aFullFileName );
aFullFileName );
D(printf("commandLine:'%s'\n", TO_UTF8( commandLine ) );) D(printf("commandLine:'%s'\n", TO_UTF8( commandLine ) );)

View File

@ -262,7 +262,7 @@ void NETLIST_DIALOG::InstallPageSpice()
page->m_CommandStringCtrl = new WinEDA_EnterText( page, page->m_CommandStringCtrl = new WinEDA_EnterText( page,
_( "Simulator command:" ), _( "Simulator command:" ),
g_SimulatorCommandLine, m_Parent->GetSimulatorCommand(),
page->m_LowBoxSizer, page->m_LowBoxSizer,
wxDefaultSize ); wxDefaultSize );
@ -436,7 +436,7 @@ void NETLIST_DIALOG::NetlistUpdateOpt()
{ {
int ii; int ii;
g_SimulatorCommandLine = m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue(); m_Parent->SetSimulatorCommand( m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue() );
m_Parent->m_NetlistFormat = NET_TYPE_PCBNEW; m_Parent->m_NetlistFormat = NET_TYPE_PCBNEW;
for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ ) for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ )
@ -512,13 +512,14 @@ void NETLIST_DIALOG::GenNetlist( wxCommandEvent& event )
m_Parent->ClearMsgPanel(); m_Parent->ClearMsgPanel();
if( CurrPage->m_CommandStringCtrl ) if( CurrPage->m_CommandStringCtrl )
g_NetListerCommandLine = CurrPage->m_CommandStringCtrl->GetValue(); m_Parent->SetNetListerCommand( CurrPage->m_CommandStringCtrl->GetValue() );
else else
g_NetListerCommandLine.Empty(); m_Parent->SetNetListerCommand( wxEmptyString );
bool addSubPrefix = false; bool addSubPrefix = false;
if( CurrPage->m_AddSubPrefix ) if( CurrPage->m_AddSubPrefix )
addSubPrefix = CurrPage->m_AddSubPrefix->GetValue(); addSubPrefix = CurrPage->m_AddSubPrefix->GetValue();
m_Parent->CreateNetlist( CurrPage->m_IdNetType, dlg.GetPath(), g_OptNetListUseNames, m_Parent->CreateNetlist( CurrPage->m_IdNetType, dlg.GetPath(), g_OptNetListUseNames,
addSubPrefix ); addSubPrefix );
@ -592,12 +593,12 @@ void NETLIST_DIALOG::RunSimulator( wxCommandEvent& event )
wxFileName fn; wxFileName fn;
wxString ExecFile, CommandLine; wxString ExecFile, CommandLine;
g_SimulatorCommandLine = m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue(); wxString tmp = m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue();
g_SimulatorCommandLine.Trim( false ); tmp.Trim( false );
g_SimulatorCommandLine.Trim( true ); tmp.Trim( true );
ExecFile = g_SimulatorCommandLine.BeforeFirst( ' ' ); m_Parent->SetSimulatorCommand( tmp );
ExecFile = tmp.BeforeFirst( ' ' );
CommandLine = g_SimulatorCommandLine.AfterFirst( ' ' ); CommandLine = tmp.AfterFirst( ' ' );
/* Calculate the netlist filename */ /* Calculate the netlist filename */
fn = g_RootSheet->GetScreen()->GetFileName(); fn = g_RootSheet->GetScreen()->GetFileName();
@ -609,8 +610,10 @@ void NETLIST_DIALOG::RunSimulator( wxCommandEvent& event )
CurrPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage(); CurrPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();
bool addSubPrefix = false; bool addSubPrefix = false;
if( CurrPage->m_AddSubPrefix ) if( CurrPage->m_AddSubPrefix )
addSubPrefix = CurrPage->m_AddSubPrefix->GetValue(); addSubPrefix = CurrPage->m_AddSubPrefix->GetValue();
if( ! m_Parent->CreateNetlist( CurrPage->m_IdNetType, fn.GetFullPath(), if( ! m_Parent->CreateNetlist( CurrPage->m_IdNetType, fn.GetFullPath(),
g_OptNetListUseNames,addSubPrefix ) ) g_OptNetListUseNames,addSubPrefix ) )
return; return;

View File

@ -67,8 +67,8 @@ public:
* Only one page can be created with selected = true. * Only one page can be created with selected = true.
*/ */
NETLIST_PAGE_DIALOG( wxNotebook* parent, const wxString& title, NETLIST_PAGE_DIALOG( wxNotebook* parent, const wxString& title,
int id_NetType, int idCheckBox, int idCreateFile, int id_NetType, int idCheckBox, int idCreateFile,
bool selected ); bool selected );
~NETLIST_PAGE_DIALOG() { }; ~NETLIST_PAGE_DIALOG() { };
}; };

View File

@ -32,9 +32,9 @@ wxString DataBaseGetName( EDA_DRAW_FRAME* frame, wxString& Keys, wxString& BufNa
bool SegmentIntersect( wxPoint aSegStart, wxPoint aSegEnd, wxPoint aTestPoint ); bool SegmentIntersect( wxPoint aSegStart, wxPoint aSegEnd, wxPoint aTestPoint );
/****************/ /*************************/
/* BUS_WIRE_JUNCTION.CPP */ /* BUS_WIRE_JUNCTION.CPP */
/****************/ /*************************/
void IncrementLabelMember( wxString& name ); void IncrementLabelMember( wxString& name );
@ -58,22 +58,21 @@ void DeleteItemsInList( EDA_DRAW_PANEL* panel, PICKED_ITEMS_LIST& aItemsList );
SCH_ITEM* DuplicateStruct( SCH_ITEM* DrawStruct, bool aClone = false ); SCH_ITEM* DuplicateStruct( SCH_ITEM* DrawStruct, bool aClone = false );
/***************/ /****************/
/* EEREDRAW.CPP */ /* EEREDRAW.CPP */
/***************/ /****************/
void DrawDanglingSymbol( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& pos, int Color ); void DrawDanglingSymbol( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& pos, int Color );
/**************/ /***********************************/
/* EELAYER.CPP */ /* dialogs/dialog_color_config.cpp */
/**************/ /***********************************/
void SeedLayers();
EDA_Colors ReturnLayerColor( int Layer ); EDA_Colors ReturnLayerColor( int Layer );
/**************/ /***************/
/* NETLIST.CPP */ /* NETLIST.CPP */
/**************/ /***************/
int IsBusLabel( const wxString& LabelDrawList ); int IsBusLabel( const wxString& LabelDrawList );
@ -84,25 +83,14 @@ void PlotDrawlist( PLOTTER* plotter, SCH_ITEM* drawlist );
/***************/ /***************/
/* DELSHEET.CPP */
/***************/
void DeleteSubHierarchy( SCH_SHEET* Sheet, bool confirm_deletion );
bool ClearProjectDrawList( SCH_SCREEN* FirstWindow, bool confirm_deletion );
/* free the draw list screen->GetDrawItems() and the subhierarchies
* clear the screen datas (filenames ..)
*/
/**************/
/* PINEDIT.CPP */ /* PINEDIT.CPP */
/**************/ /***************/
void InstallPineditFrame( LIB_EDIT_FRAME* parent, wxDC* DC, const wxPoint& pos ); void InstallPineditFrame( LIB_EDIT_FRAME* parent, wxDC* DC, const wxPoint& pos );
/**************/ /***************/
/* SELPART.CPP */ /* SELPART.CPP */
/**************/ /***************/
/** /**
* Function DisplayComponentsNamesInLib * Function DisplayComponentsNamesInLib
@ -139,9 +127,9 @@ CMP_LIBRARY* SelectLibraryFromList( EDA_DRAW_FRAME* frame );
*/ */
int GetNameOfPartToLoad( EDA_DRAW_FRAME* frame, CMP_LIBRARY* Lib, wxString& BufName ); int GetNameOfPartToLoad( EDA_DRAW_FRAME* frame, CMP_LIBRARY* Lib, wxString& BufName );
/**************/ /***************/
/* LIBARCH.CPP */ /* LIBARCH.CPP */
/**************/ /***************/
bool LibArchive( wxWindow* frame, const wxString& ArchFullFileName ); bool LibArchive( wxWindow* frame, const wxString& ArchFullFileName );

View File

@ -112,6 +112,23 @@ void SCH_SCREEN::DecRefCount()
} }
void SCH_SCREEN::Clear()
{
FreeDrawList();
/* Clear the project settings. */
m_ScreenNumber = m_NumberOfScreen = 1;
m_Title.Empty();
m_Revision.Empty();
m_Company.Empty();
m_Commentaire1.Empty();
m_Commentaire2.Empty();
m_Commentaire3.Empty();
m_Commentaire4.Empty();
m_Date = GenDate();
}
void SCH_SCREEN::FreeDrawList() void SCH_SCREEN::FreeDrawList()
{ {
SCH_ITEM* item; SCH_ITEM* item;

View File

@ -418,7 +418,7 @@ void SCH_EDIT_FRAME::OnCloseWindow( wxCloseEvent& Event )
&& (g_RootSheet->GetScreen()->GetDrawItems() != NULL) ) && (g_RootSheet->GetScreen()->GetDrawItems() != NULL) )
UpdateFileHistory( g_RootSheet->GetScreen()->GetFileName() ); UpdateFileHistory( g_RootSheet->GetScreen()->GetFileName() );
ClearProjectDrawList( g_RootSheet->GetScreen(), TRUE ); g_RootSheet->GetScreen()->Clear();
/* all sub sheets are deleted, only the main sheet is usable */ /* all sub sheets are deleted, only the main sheet is usable */
m_CurrentSheet->Clear(); m_CurrentSheet->Clear();

View File

@ -12,21 +12,16 @@
#include "fctsys.h" #include "fctsys.h"
#include "gr_basic.h" #include "gr_basic.h"
#include "common.h" #include "common.h"
#include "macros.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "confirm.h" #include "confirm.h"
#include "gestfich.h"
#include "wxEeschemaStruct.h" #include "wxEeschemaStruct.h"
#include "class_sch_screen.h" #include "class_sch_screen.h"
#include "general.h" #include "general.h"
#include "protos.h"
#include "sch_sheet.h" #include "sch_sheet.h"
#include "dialogs/dialog_sch_sheet_props.h" #include "dialogs/dialog_sch_sheet_props.h"
#include <boost/foreach.hpp>
bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC ) bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC )
{ {

View File

@ -87,6 +87,12 @@ public:
*/ */
void SetCurItem( SCH_ITEM* aItem ) { BASE_SCREEN::SetCurItem( (EDA_ITEM*) aItem ); } void SetCurItem( SCH_ITEM* aItem ) { BASE_SCREEN::SetCurItem( (EDA_ITEM*) aItem ); }
/**
* Function Clear
* deletes all draw items and clears the project settings.
*/
void Clear();
/** /**
* Free all the items from the schematic associated with the screen. * Free all the items from the schematic associated with the screen.
* *

View File

@ -115,6 +115,10 @@ private:
int m_repeatLabelDelta; ///< Repeat label number increment step. int m_repeatLabelDelta; ///< Repeat label number increment step.
SCH_COLLECTOR m_collectedItems; ///< List of collected items. SCH_COLLECTOR m_collectedItems; ///< List of collected items.
SCH_ITEM* m_undoItem; ///< Copy of the current item being edited. SCH_ITEM* m_undoItem; ///< Copy of the current item being edited.
wxString m_simulatorCommand; ///< Command line used to call the circuit
///< simulator (gnucap, spice, ...)
wxString m_netListerCommand; ///< Command line to call a custom net list
///< generator.
static int m_lastSheetPinType; ///< Last sheet pin type. static int m_lastSheetPinType; ///< Last sheet pin type.
static wxSize m_lastSheetPinTextSize; ///< Last sheet pin text size. static wxSize m_lastSheetPinTextSize; ///< Last sheet pin text size.
@ -827,8 +831,7 @@ public:
/** /**
* Load component libraries defined in project file. * Load component libraries defined in project file.
*/ */
void LoadLibraries( void ); void LoadLibraries( void );
/** /**
* Function PrintPage * Function PrintPage
@ -841,6 +844,14 @@ public:
virtual void PrintPage( wxDC* aDC, int aPrintMask, virtual void PrintPage( wxDC* aDC, int aPrintMask,
bool aPrintMirrorMode, void* aData = NULL ); bool aPrintMirrorMode, void* aData = NULL );
void SetSimulatorCommand( const wxString& aCommand ) { m_simulatorCommand = aCommand; }
wxString GetSimulatorCommand() const { return m_simulatorCommand; }
void SetNetListerCommand( const wxString& aCommand ) { m_netListerCommand = aCommand; }
wxString GetNetListerCommand() const { return m_netListerCommand; }
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };