Skip to content
Permalink
Browse files

disable error hooks when querying for plugin metadata

git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@9651 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
wonder
wonder committed Nov 17, 2008
1 parent 15b4c2c commit 1f7e72b602ff1fd07de7d0f06492bc729f24fa8a
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 1f7e72b

Please sign in to comment.
You can’t perform that action at this time.