This represents the newly entered data for each keystroke. This is often a single added character, but for cases like pasting text it can be more complex.
The PDF API reference doesn't specify any algorithm to use.
The algorithm used here works by iterating through both strings from the start until the first different character is encountered. Then the rest of the new text is considered the difference.
This doesn't produce the theoretically optimal/minimal diff, but seems to work well enough for practical application.
When text is removed the diff is empty
This makes them run on the faster CI servers that normally run linux.yml.
There are also 3 servers so this brings better parallelism.
Not all custom jobs are suitable to run there, but these in particular
should be fine.
Disable a few new warnings in clang-tidy
bugprone-implicit-widening-of-multiplication-result and
bugprone-easily-swappable-parameters seem like would be nice to fix, but
no time now
Removes the smooth property of PageItem since it was never set and clazy
was complaining about it not having a NOTIFY signal
Remove two signals that already exist in parent class
Fix C++11 detach in range-loop
It's desktop unless you're building for Android where the default it's
mobile.
You can still manually specify which UI you want and you'll get that
regardless of the platform
Only require KParts if we're building the desktop UI
Two small changes in CI:
* Stop pretending we have a macOS CI
* Add Android CI
- libkexiv2, khtml and kjs would be nice but we don't have Android builds
yet
apt-get uses several fsync() calls on each package it installs, and that's
very slow, especially on non-SSD. eatmydata turns fsync into no-op, which
makes package installation much faster (it can cause corruption if there's
power loss or similar, but that doesn't matter in CI where we throw away
the whole container anyway).
Currently the build_ubuntu_20_04 job in GitLab CI takes 8-9 minutes to
install dependencies. Using eatmydata it went down to 2 minutes.