Exceptions handled on board Load/Save

This commit is contained in:
Miguel Angel Ajo 2012-04-20 23:20:56 +02:00
parent 55c0eafd6f
commit 42fad8a754
3 changed files with 21 additions and 6 deletions

View File

@ -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

View File

@ -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;
}

View File

@ -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>