diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mainwindow.cpp | 12 | ||||
| -rw-r--r-- | src/mainwindow.h | 13 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index fb34fe2..c6df95c 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2086,6 +2086,18 @@ void MainWindow::onThreadsReady(const QVector<ThreadSummary> &threads, } m_model->appendBatch(threads); + + // Item 74. "Searching..." was set once in runQuery() and cleared only on + // queryFinished, so it went on claiming the query was running for the whole + // walk while rows were visibly arriving behind it. Measured cold against a + // 1.1 GB index: first rows at 642 ms, done at 5714 ms, five seconds of a + // slow query reading as a frozen one. + // + // The count comes from the model rather than from a running total, since + // that is the number of rows the user can actually see. Nothing about the + // timing changes; this only stops the bar from lying. + m_statusLabel->setText(tr("Searching... %n thread(s)", "", + m_model->rowCount(QModelIndex()))); } void MainWindow::onQueryFinished(int total, quint64 generation) diff --git a/src/mainwindow.h b/src/mainwindow.h index d861d72..80c7d2b 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -186,6 +186,19 @@ public: /// stale, so a test standing in for the worker has to know the current one. quint64 currentGenerationForTesting() const { return m_generation; } + /// Puts the window into the state refreshCurrentQuery() leaves it in, and + /// returns the generation the refresh's replies must carry. + /// + /// A test seam, because refreshCurrentQuery() returns early without a + /// worker and a bare window has none. It sets only what decides whether a + /// batch is a refresh's, not what the real function asks the worker to do. + quint64 beginRefreshForTesting() + { + m_refreshGeneration = ++m_generation; + m_refreshThreads.clear(); + return m_refreshGeneration; + } + /// The generation a database-stats reply must carry to be accepted. /// /// A test seam, for the same reason as the one above: onDatabaseStatsReady |
