diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-15 09:42:27 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-15 09:42:27 +0200 |
| commit | 8f40c0b6dce67cefa1edce0b865c9a3885d39717 (patch) | |
| tree | 3f8d6a7d38c1b92eea2140ad911765187c1d4f3b /src/tagrules.cpp | |
| parent | deec4e1bbf2a6af6f3f86043080fd5b4df535e03 (diff) | |
| download | qtmaildir-8f40c0b6dce67cefa1edce0b865c9a3885d39717.tar.gz qtmaildir-8f40c0b6dce67cefa1edce0b865c9a3885d39717.zip | |
fix(status): count threads as they arrive instead of "Searching..."
Item 74. runQuery() set the status bar once and only queryFinished cleared
it, so the bar kept claiming a query was running for the whole walk while
rows were visibly arriving behind it. Measured cold against a 1.1 GB index:
the first batch reaches the model at 642 ms and the walk finishes at 5714 ms,
so five seconds of a slow query read as a frozen one.
onThreadsReady now sets the bar from the model's own row count after each
batch, which is the number of rows the user can actually see. No timing
changes; this only stops the bar from lying.
The refresh branch returns before the new line, so a background refresh stays
silent exactly as onQueryFinished already keeps it. That silence has its own
test, which fails when the write is moved above the guard.
beginRefreshForTesting() is a new seam: refreshCurrentQuery() returns early
without a worker and a bare window has none, so a test cannot otherwise reach
the refresh path.
Diffstat (limited to 'src/tagrules.cpp')
0 files changed, 0 insertions, 0 deletions
