Skip to content
Permalink
Browse files
disable error hooks when querying for plugin metadata
git-svn-id: http://svn.osgeo.org/qgis/trunk@9651 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
wonder committed Nov 17, 2008
1 parent edd6c41 commit 22dfe17c62267534e408b9bbf60e9a5bd112c1b5
Showing with 13 additions and 1 deletion.
  1. +11 −1 src/python/qgspythonutilsimpl.cpp
  2. +2 −0 src/python/qgspythonutilsimpl.h
@@ -147,6 +147,11 @@ void QgsPythonUtilsImpl::installErrorHook()
runString( "sys.excepthook = qgis_except_hook" );
}

void QgsPythonUtilsImpl::uninstallErrorHook()
{
runString( "sys.excepthook = sys.__excepthook__" );
}

void QgsPythonUtilsImpl::installConsoleHooks()
{
runString( "sys.displayhook = console_display_hook\n" );
@@ -419,12 +424,15 @@ QString QgsPythonUtilsImpl::getPluginMetadata( QString pluginName, QString funct
QString command = pluginName + "." + function + "()";
QString retval = "???";

// temporary disable error hook - UI will handle this gracefully
uninstallErrorHook();
PyObject* obj = PyRun_String( command.toLocal8Bit().data(), Py_eval_input, mMainDict, mMainDict );

if ( PyErr_Occurred() )
{
PyErr_Print(); // just print it to console
PyErr_Clear();
return "__error__";
retval = "__error__";
}
else if ( PyString_Check( obj ) )
{
@@ -436,6 +444,8 @@ QString QgsPythonUtilsImpl::getPluginMetadata( QString pluginName, QString funct
retval = "__error__";
}
Py_XDECREF( obj );

installErrorHook();
return retval;
}

@@ -112,6 +112,8 @@ class QgsPythonUtilsImpl : public QgsPythonUtils

void installErrorHook();

void uninstallErrorHook();

QString getTraceback();

//! reference to module __main__

0 comments on commit 22dfe17

Please sign in to comment.