Commit 5157657e authored by Miguel Angel Ajo's avatar Miguel Angel Ajo

merged to last testing, also added automatic file extension detection on save/load

parent aef92a34
...@@ -235,8 +235,6 @@ public: ...@@ -235,8 +235,6 @@ public:
*/ */
bool Read_GPCB_Descr( const wxString& CmpFullFileName ); bool Read_GPCB_Descr( const wxString& CmpFullFileName );
int Read_3D_Descr( LINE_READER* aReader );
/* drawing functions */ /* drawing functions */
void Draw( EDA_DRAW_PANEL* aPanel, void Draw( EDA_DRAW_PANEL* aPanel,
......
...@@ -294,13 +294,6 @@ public: ...@@ -294,13 +294,6 @@ public:
*/ */
NETCLASS* Find( const wxString& aName ) const; NETCLASS* Find( const wxString& aName ) const;
/**
* Function Save
* writes the data structures for this object out to a FILE in "*.brd" format.
* @param aFile The FILE to write to.
* @return bool - true if success writing else false.
*/
bool Save( FILE* aFile ) const;
}; };
#endif // CLASS_NETCLASS_H #endif // CLASS_NETCLASS_H
...@@ -45,9 +45,12 @@ ...@@ -45,9 +45,12 @@
def Save(self,filename,format = None): def Save(self,filename,format = None):
if format is None: if format is None:
return SaveBoard(filename,self) str_filename = str(filename)
else: if str_filename.endswith(".brd"):
return SaveBoard(filename,self,format) format = IO_MGR.LEGACY
if str_filename.endswith(".kicad_brd"):
format = IO_MGR.KICAD
return SaveBoard(filename,self,format)
# #
# add function, clears the thisown to avoid python from deleting # add function, clears the thisown to avoid python from deleting
...@@ -90,4 +93,4 @@ ...@@ -90,4 +93,4 @@
def GetShapeStr(self): def GetShapeStr(self):
return self.ShowShape(self.GetShape()) return self.ShowShape(self.GetShape())
} }
} }
\ No newline at end of file
...@@ -34,9 +34,9 @@ for y in range (0,10): ...@@ -34,9 +34,9 @@ for y in range (0,10):
# save the PCB to disk # save the PCB to disk
pcb.Save("/tmp/my2.kicad_brd") pcb.Save("/tmp/my2.kicad_brd")
pcb.Save("/tmp/my2.brd",IO_MGR.LEGACY) pcb.Save("/tmp/my2.brd")
pcb = LoadBoard("/tmp/my2.brd",IO_MGR.LEGACY) pcb = LoadBoard("/tmp/my2.brd")
print map( lambda x: x.GetReference() , list(pcb.GetModules())) print map( lambda x: x.GetReference() , list(pcb.GetModules()))
......
...@@ -73,12 +73,11 @@ ...@@ -73,12 +73,11 @@
BOARD *GetBoard(); /* get current editor board */ BOARD *GetBoard(); /* get current editor board */
%} %}
#ifdef BUILD_WITH_PLUGIN
%{ %{
#include <io_mgr.h> #include <io_mgr.h>
#include <kicad_plugin.h> #include <kicad_plugin.h>
%} %}
#endif
%include <class_board_item.h> %include <class_board_item.h>
%include <class_board_connected_item.h> %include <class_board_connected_item.h>
...@@ -104,15 +103,14 @@ ...@@ -104,15 +103,14 @@
%include <pcbnew_scripting_helpers.h> %include <pcbnew_scripting_helpers.h>
#ifdef BUILD_WITH_PLUGIN
// ignore RELEASER as nested classes are still unsupported by swig
%ignore IO_MGR::RELEASER;
%include <io_mgr.h>
%include <kicad_plugin.h>
#endif
// ignore RELEASER as nested classes are still unsupported by swig
%ignore IO_MGR::RELEASER;
%include <io_mgr.h>
%include <kicad_plugin.h>
%include "board.i" %include "board.i"
%include "module.i" %include "module.i"
%include "units.i" %include "units.i"
...@@ -54,13 +54,20 @@ void ScriptingSetPcbEditFrame(PCB_EDIT_FRAME *aPCBEdaFrame) ...@@ -54,13 +54,20 @@ void ScriptingSetPcbEditFrame(PCB_EDIT_FRAME *aPCBEdaFrame)
BOARD* LoadBoard(wxString& aFileName) BOARD* LoadBoard(wxString& aFileName)
{ {
return LoadBoard(aFileName,IO_MGR::KICAD);
if (aFileName.EndsWith(wxT(".kicad_brd")))
return LoadBoard(aFileName,IO_MGR::KICAD);
else if (aFileName.EndsWith(wxT(".brd")))
return LoadBoard(aFileName,IO_MGR::LEGACY);
// as fall back for any other kind use the legacy format
return LoadBoard(aFileName,IO_MGR::LEGACY);
} }
BOARD* LoadBoard(wxString& aFileName,IO_MGR::PCB_FILE_T aFormat) BOARD* LoadBoard(wxString& aFileName,IO_MGR::PCB_FILE_T aFormat)
{ {
static char ExceptionError[256]; static char ExceptionError[256];
#ifdef USE_NEW_PCBNEW_LOAD
try{ try{
return IO_MGR::Load(aFormat,aFileName); return IO_MGR::Load(aFormat,aFileName);
} catch (IO_ERROR e) } catch (IO_ERROR e)
...@@ -69,10 +76,7 @@ BOARD* LoadBoard(wxString& aFileName,IO_MGR::PCB_FILE_T aFormat) ...@@ -69,10 +76,7 @@ BOARD* LoadBoard(wxString& aFileName,IO_MGR::PCB_FILE_T aFormat)
PyErr_SetString(PyExc_IOError,ExceptionError); PyErr_SetString(PyExc_IOError,ExceptionError);
return NULL; return NULL;
} }
#else
fprintf(stderr,"Warning, LoadBoard not implemented without USE_NEW_PCBNEW_LOAD\n");
return NULL;
#endif
} }
bool SaveBoard(wxString& aFilename, BOARD* aBoard) bool SaveBoard(wxString& aFilename, BOARD* aBoard)
...@@ -84,7 +88,6 @@ bool SaveBoard(wxString& aFileName, BOARD* aBoard, ...@@ -84,7 +88,6 @@ bool SaveBoard(wxString& aFileName, BOARD* aBoard,
IO_MGR::PCB_FILE_T aFormat) IO_MGR::PCB_FILE_T aFormat)
{ {
static char ExceptionError[256]; static char ExceptionError[256];
#ifdef USE_NEW_PCBNEW_LOAD
aBoard->m_Status_Pcb &= ~CONNEXION_OK; aBoard->m_Status_Pcb &= ~CONNEXION_OK;
aBoard->SynchronizeNetsAndNetClasses(); aBoard->SynchronizeNetsAndNetClasses();
aBoard->SetCurrentNetClass( aBoard->m_NetClasses.GetDefault()->GetName() ); aBoard->SetCurrentNetClass( aBoard->m_NetClasses.GetDefault()->GetName() );
...@@ -115,11 +118,6 @@ bool SaveBoard(wxString& aFileName, BOARD* aBoard, ...@@ -115,11 +118,6 @@ bool SaveBoard(wxString& aFileName, BOARD* aBoard,
return false; return false;
} }
#else
fprintf(stderr,"Warning, SaveBoard not implemented without USE_NEW_PCBNEW_LOAD\n");
return false;
#endif
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment