mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
disable error hooks when querying for plugin metadata
git-svn-id: http://svn.osgeo.org/qgis/trunk@9651 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
parent
edd6c414f0
commit
22dfe17c62
@ -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__
|
||||
|
Loading…
x
Reference in New Issue
Block a user