--- a/src/qtgui/rclmain_w.cpp
+++ b/src/qtgui/rclmain_w.cpp
@@ -769,7 +769,13 @@
// Start a db query and set the reslist docsource
void RclMain::startSearch(RefCntr<Rcl::SearchData> sdata)
{
- LOGDEB(("RclMain::startSearch. Indexing %s\n", m_idxproc?"on":"off"));
+ LOGDEB(("RclMain::startSearch. Indexing %s Active %d\n",
+ m_idxproc?"on":"off", m_queryActive));
+ if (m_queryActive) {
+ LOGDEB(("startSearch: already active\n"));
+ return;
+ }
+ m_queryActive = true;
m_source = RefCntr<DocSequence>();
// The db may have been closed at the end of indexing
@@ -777,6 +783,7 @@
// If indexing is being performed, we reopen the db at each query.
if (!maybeOpenDb(reason, m_idxproc != 0)) {
QMessageBox::critical(0, "Recoll", QString(reason.c_str()));
+ m_queryActive = false;
return;
}
@@ -818,9 +825,8 @@
void RclMain::initiateQuery()
{
- if (m_queryActive || m_source.isNull())
- return;
- m_queryActive = true;
+ if (m_source.isNull())
+ return;
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
QueryThread qthr(m_source);