diff --git a/python/gui/auto_generated/codeeditors/qgscodeeditorsql.sip.in b/python/gui/auto_generated/codeeditors/qgscodeeditorsql.sip.in index 06ea7ef510f4..25cc0fe20625 100644 --- a/python/gui/auto_generated/codeeditors/qgscodeeditorsql.sip.in +++ b/python/gui/auto_generated/codeeditors/qgscodeeditorsql.sip.in @@ -31,6 +31,9 @@ code autocompletion. Constructor for QgsCodeEditorSQL %End + + virtual ~QgsCodeEditorSQL(); + void setFields( const QgsFields &fields ); %Docstring Set field names to be added to the lexer API. diff --git a/src/gui/codeeditors/qgscodeeditorsql.cpp b/src/gui/codeeditors/qgscodeeditorsql.cpp index 7b313bcc9970..1920c35cf166 100644 --- a/src/gui/codeeditors/qgscodeeditorsql.cpp +++ b/src/gui/codeeditors/qgscodeeditorsql.cpp @@ -34,6 +34,14 @@ QgsCodeEditorSQL::QgsCodeEditorSQL( QWidget *parent ) QgsCodeEditorSQL::initializeLexer(); // avoid cppcheck warning by explicitly specifying namespace } +QgsCodeEditorSQL::~QgsCodeEditorSQL() +{ + if ( mApis ) + { + mApis->cancelPreparation( ); + } +} + void QgsCodeEditorSQL::initializeLexer() { QFont font = lexerFont(); diff --git a/src/gui/codeeditors/qgscodeeditorsql.h b/src/gui/codeeditors/qgscodeeditorsql.h index ef73eb0e6f17..4199fc069e42 100644 --- a/src/gui/codeeditors/qgscodeeditorsql.h +++ b/src/gui/codeeditors/qgscodeeditorsql.h @@ -39,6 +39,9 @@ class GUI_EXPORT QgsCodeEditorSQL : public QgsCodeEditor //! Constructor for QgsCodeEditorSQL QgsCodeEditorSQL( QWidget *parent SIP_TRANSFERTHIS = nullptr ); + + virtual ~QgsCodeEditorSQL(); + /** * Set field names to be added to the lexer API. * diff --git a/tests/src/gui/testqgsqueryresultwidget.cpp b/tests/src/gui/testqgsqueryresultwidget.cpp index cd9ed597300c..6b240920514b 100644 --- a/tests/src/gui/testqgsqueryresultwidget.cpp +++ b/tests/src/gui/testqgsqueryresultwidget.cpp @@ -105,8 +105,6 @@ void TestQgsQueryResultWidget::testWidgetCrash() QTimer::singleShot( 1, d.get(), [ & ] { exited = true; } ); while ( ! exited ) QgsApplication::processEvents(); - // This prevents a crash in Qsci internal thread - std::this_thread::sleep_for( std::chrono::seconds( 1 ) ); }