1. Keep 'separator' a QLatin1String.
- saves at least two memory allocations
- necessitates carrying the \n previously prepended to it
around explicitly
2. Start adding to 'textToCopy' with op+=
- saves one allocation, costs one -> ±0
- preallocates more capacity than if we started with
assignment
3. Collapse three unconditional op+= into one
- more efficient usage of QStringBuilder
4. Don't collect button texts in a separate variable, but
append to 'textToCopy' directly.
- saves at least one memory allocation, probably more
since the growth increments of 'textToCopy' should
be larger (due to more content) than those of a new
variable.
Also replace index-based iteration over the buttons with
C++11 range-for over a const QList. Avoids the detach that
happened previously, due to use of op[] instead of at(),
but frankly, I was just too lazy to separate this change.
Change-Id: I27a46a6a163c16d773124f140e085325b17ce5d1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>