From fc9af6abb14ed651fb5d3743eaa4044a6864a5aa Mon Sep 17 00:00:00 2001 From: Jean-Francois Dockes Date: Tue, 15 May 2012 16:11:12 +0200 Subject: [PATCH] GUI crash: protect against starting simultaneous queries --- src/qtgui/rclmain_w.cpp | 4 +++- src/qtgui/rclmain_w.h | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/qtgui/rclmain_w.cpp b/src/qtgui/rclmain_w.cpp index 99d437d6..390e023b 100644 --- a/src/qtgui/rclmain_w.cpp +++ b/src/qtgui/rclmain_w.cpp @@ -800,8 +800,9 @@ class QueryThread : public QThread { void RclMain::initiateQuery() { - if (m_source.isNull()) + if (m_queryActive || m_source.isNull()) return; + m_queryActive = true; QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); QueryThread qthr(m_source); @@ -846,6 +847,7 @@ void RclMain::initiateQuery() statusBar()->showMessage(msg, 0); QApplication::restoreOverrideCursor(); + m_queryActive = false; emit(resultsReady()); } diff --git a/src/qtgui/rclmain_w.h b/src/qtgui/rclmain_w.h index 3710ac95..0928d209 100644 --- a/src/qtgui/rclmain_w.h +++ b/src/qtgui/rclmain_w.h @@ -70,7 +70,8 @@ public: m_idAllStem(0), m_idxproc(0), m_sortspecnochange(false), - m_indexerState(IXST_RUNNINGNOTMINE) + m_indexerState(IXST_RUNNINGNOTMINE), + m_queryActive(false) { setupUi(this); init(); @@ -174,6 +175,7 @@ private: DocSeqSortSpec m_sortspec; RefCntr m_source; IndexerState m_indexerState; + bool m_queryActive; // If set on init, will be displayed either through ext app, or // preview (if no ext app set)