Exceptions handled on board Load/Save
This commit is contained in:
parent
55c0eafd6f
commit
42fad8a754
|
@ -39,6 +39,9 @@
|
|||
%ignore BOARD_ITEM::ZeroOffset;
|
||||
%ignore D_PAD::m_PadSketchModePenSize;
|
||||
|
||||
// rename the Add method of classes to Add native, so we will handle
|
||||
// the Add method in python
|
||||
|
||||
%rename(AddNative) *::Add;
|
||||
|
||||
// this is what it must be included in the wrapper .cxx code to compile
|
||||
|
@ -102,6 +105,8 @@
|
|||
%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
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
* @brief Scripting helper functions for pcbnew functionality
|
||||
*/
|
||||
|
||||
#include <Python.h>
|
||||
|
||||
#include <pcbnew_scripting_helpers.h>
|
||||
#include <pcbnew.h>
|
||||
|
@ -35,6 +36,8 @@
|
|||
#include <class_board.h>
|
||||
#include <kicad_string.h>
|
||||
#include <io_mgr.h>
|
||||
#include <macros.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
static PCB_EDIT_FRAME *PcbEditFrame=NULL;
|
||||
|
||||
|
@ -56,11 +59,14 @@ BOARD* LoadBoard(wxString& aFileName)
|
|||
|
||||
BOARD* LoadBoard(wxString& aFileName,IO_MGR::PCB_FILE_T aFormat)
|
||||
{
|
||||
static char ExceptionError[256];
|
||||
#ifdef USE_NEW_PCBNEW_LOAD
|
||||
try{
|
||||
return IO_MGR::Load(aFormat,aFileName);
|
||||
} catch (IO_ERROR)
|
||||
} catch (IO_ERROR e)
|
||||
{
|
||||
sprintf(ExceptionError, "%s\n", TO_UTF8(e.errorText) );
|
||||
PyErr_SetString(PyExc_IOError,ExceptionError);
|
||||
return NULL;
|
||||
}
|
||||
#else
|
||||
|
@ -77,7 +83,7 @@ bool SaveBoard(wxString& aFilename, BOARD* aBoard)
|
|||
bool SaveBoard(wxString& aFileName, BOARD* aBoard,
|
||||
IO_MGR::PCB_FILE_T aFormat)
|
||||
{
|
||||
|
||||
static char ExceptionError[256];
|
||||
#ifdef USE_NEW_PCBNEW_LOAD
|
||||
aBoard->m_Status_Pcb &= ~CONNEXION_OK;
|
||||
aBoard->SynchronizeNetsAndNetClasses();
|
||||
|
@ -101,8 +107,11 @@ bool SaveBoard(wxString& aFileName, BOARD* aBoard,
|
|||
IO_MGR::Save( aFormat, aFileName, aBoard, &props );
|
||||
return true;
|
||||
}
|
||||
catch (IO_ERROR)
|
||||
catch (IO_ERROR e)
|
||||
{
|
||||
sprintf(ExceptionError, "%s\n", TO_UTF8(e.errorText) );
|
||||
PyErr_SetString(PyExc_IOError,ExceptionError);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -82,6 +82,7 @@
|
|||
/* exception handling */
|
||||
|
||||
/* the IO_ERROR exception handler, not working yet... */
|
||||
/*
|
||||
%exception
|
||||
{
|
||||
try {
|
||||
|
@ -92,7 +93,7 @@
|
|||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
%include <dlist.h>
|
||||
|
|
Loading…
Reference in New Issue