@@ -675,6 +675,7 @@ PythonQtObjectPtr PythonQt::importModule(const QString& name)
675
675
676
676
QVariant PythonQt::evalCode (PyObject* object, PyObject* pycode) {
677
677
QVariant result;
678
+ this ->resetErrorFlag ();
678
679
if (pycode) {
679
680
PyObject* dict = NULL ;
680
681
if (PyModule_Check (object)) {
@@ -703,6 +704,7 @@ QVariant PythonQt::evalScript(PyObject* object, const QString& script, int start
703
704
QVariant result;
704
705
PythonQtObjectPtr p;
705
706
PyObject* dict = NULL ;
707
+ this ->resetErrorFlag ();
706
708
if (PyModule_Check (object)) {
707
709
dict = PyModule_GetDict (object);
708
710
} else if (PyDict_Check (object)) {
@@ -722,6 +724,7 @@ QVariant PythonQt::evalScript(PyObject* object, const QString& script, int start
722
724
void PythonQt::evalFile (PyObject* module, const QString& filename)
723
725
{
724
726
PythonQtObjectPtr code = parseFile (filename);
727
+ this ->resetErrorFlag ();
725
728
if (code) {
726
729
evalCode (module, code);
727
730
} else {
@@ -733,6 +736,7 @@ PythonQtObjectPtr PythonQt::parseFile(const QString& filename)
733
736
{
734
737
PythonQtObjectPtr p;
735
738
p.setNewRef (PythonQtImport::getCodeFromPyc (filename));
739
+ this ->resetErrorFlag ();
736
740
if (!p) {
737
741
handleError ();
738
742
}
@@ -1022,6 +1026,7 @@ QVariant PythonQt::call(PyObject* callable, const QVariantList& args)
1022
1026
QVariant r;
1023
1027
PythonQtObjectPtr result;
1024
1028
result.setNewRef (callAndReturnPyObject (callable, args));
1029
+ this ->resetErrorFlag ();
1025
1030
if (result) {
1026
1031
r = PythonQtConv::PyObjToQVariant (result);
1027
1032
} else {
@@ -1243,6 +1248,14 @@ bool PythonQt::errorOccured()const
1243
1248
return PythonQt::priv ()->_ErrorOccured ;
1244
1249
}
1245
1250
1251
+ void PythonQt::resetErrorFlag ()
1252
+ {
1253
+ if (PythonQt::self ())
1254
+ {
1255
+ PythonQt::priv ()->_ErrorOccured = false ;
1256
+ }
1257
+ }
1258
+
1246
1259
void PythonQt::addSysPath (const QString& path)
1247
1260
{
1248
1261
PythonQtObjectPtr sys;
@@ -1568,6 +1581,7 @@ PythonQtInstanceWrapper* PythonQtPrivate::findWrapperAndRemoveUnused(void* obj)
1568
1581
PythonQtObjectPtr PythonQtPrivate::createModule (const QString& name, PyObject* pycode)
1569
1582
{
1570
1583
PythonQtObjectPtr result;
1584
+ PythonQt::self ()->resetErrorFlag ();
1571
1585
if (pycode) {
1572
1586
result.setNewRef (PyImport_ExecCodeModule ((char *)name.toLatin1 ().data (), pycode));
1573
1587
} else {
@@ -1747,4 +1761,4 @@ void PythonQtPrivate::shellClassDeleted( void* shellClass )
1747
1761
// if the wrapper is a QObject, we do not handle this here,
1748
1762
// it will be handled by the QPointer<> to the QObject, which becomes NULL
1749
1763
// via the QObject destructor.
1750
- }
1764
+ }
0 commit comments