Scan the top directory to collect paths for the threads. This
way we don't launch threads for paths without subdirs. Secondly,
large trees like usually $HOME will be scanned by multiple threads
at first.
Nevertheless, ParallelDirScanner can be improved still as threads may
run quickly out of work, so we may end up with only one anyway again
Sigh. quazip changed the lib name, include locations, etc. from version 1.
Some distributions only have 0.9. Some only 1.x and so some packages break,
so they simply patch it when building the package.
Luckily, nothing we use from quazip is affected from an API perspective.
So detect if there is quazip1, then use pkg-config to link that, else do it like before.
Not entirely ideal, since we may want to search for 'cake', and look at
a preview for 'cake.txt' even if there is no 'cake' inside.
But this will do for now
Switch to QCoreApplication, since the ipc worker is not a GUI application.
We can also remove some vows this ways. Furthermore, disable connect() syscall
explicitly.
Mountpaths indicate mount points of external devices. Files
located under such paths should not be removed on sync, because
they may have not been deleted, but are just inaccessible right now.
This makes sense in general, however it also avoids a race condition.
The dirscanner may finish before the filescanworkers for the files
run, this then signals the whole indexer has finished.
Add implicit AND booleans at the end.
This fixes a number of issues in LooqsQuery:
(1) A query like a b c p:(something) would fail, because
a b c get merged into one word. This happens at the end.
lonewords are special and do not become a token immediatly. So previous
logic to add implicit ANDs does not apply.
(2) Negations were also broken with lonewords.
(3) The TokenType enum fields were too narrow to be useful for the bitmask
Independent of that, add support for 'limit:'