void DatabaseQuery::runQuery() { DatabaseQueryRequest *request = takeRequest(); if (request) { QThread *thread = new QThread(); connect(thread, SIGNAL(finished()), SLOT(threadFinished())); thread->start(); request->moveToThread(thread); connect( request, SIGNAL(requestCompleted()), SLOT(finishQuery()) ); connect( request, SIGNAL(resultsReady(DataStore)), SLOT(addResult(DataStore)) ); connect( request, SIGNAL(errorMessageBox(QString,QString)), SIGNAL(errorMessageBox(QString,QString)) ); QMetaObject::invokeMethod(request, "start", Qt::QueuedConnection); } }
void SqlAsynchronousExecutor::run() { m_query->exec(); emit finishQuery(m_query, this); }