Remove '<colorrole role="PlaceholderText">' elements from UI files
which are apparently added by the designer in newer Qt versions but
break compatibility with older ones.
This fixes https://github.com/Martchus/tageditor/issues/50.
When keeping the QJSEngine tied to the main thread the garbage
collector will run on the main thread's event loop. This leads to
crashes when trying to allocate memory within the engine from
another thread (`QV4::PersistentValueStorage::allocate()`).
The Qt documentation does not mention that the garbage collector
might run on the event loop of the thread tied to the JSEngine.
I expected it only to run after or before allocations/deletions
within the thread calling the engine's methods. There is already
an issue regarding the lack of documentation:
https://bugreports.qt.io/browse/QTBUG-57227
I found no way to obtain the QThread object for a thread started
with Qt Concurrent. The possibility I found was calling
`QThread::currentThread()` from the concurrent thread once it has
already been started. However, when the concurrent thread has
been started it might already be too late to move the engine.
Adding further synchronization to solve this is an overkill so
I resorted to using QThread directly.
This PR adds a fallback to a self-crafted URL if the XML which is
supposed to contain it broken.
That's required because it seems that the XML is sometimes not
generated correctly (e.g. missing "+" character in song name which
has the plus sign in it).
* Trigger auto-insert also when query results are available
* Allow to refresh when new search criteria has been (automatically)
inserted
So it is at least a little bit more convenient to use.
* Move query options into menu so it is possible to add more
without being limited by available space
* Trigger the last query action when hitting the enter key
* Change order of elements; I guess it looks better with buttons
and fields to be used at the top