QmlProfiler: Make TimeDisplay and TimeMarks declarative

Create the vertical elements only once and stretch them over the whole
vertical space, but keep all horizontal elements distinct per model.
Also, add horizontal elements to the labels group and rename that
accordingly, so that we don't need a third Flickable or ListView

Change-Id: I4fe3bd526767e8ff5d0ebcd70e9343f65fcc787f
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
QmlProfiler: Separate expanded and collapsed row heights and counts

We'll need to access both of them when building the scene graph. This
change also clarifies the dynamics between expanding categories and
row heights and offsets.

Change-Id: I2e2bf488ad973c95d05f230bf6fff63598f39bf2
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
QmlProfiler: Optimize row lookup in timeline renderer

If the category is collapsed we just have to divide by defaultRowHeight
as rows cannot be resized then.

Change-Id: I147363a879c9756030b6b7da5cbce7fc2f3e9b47
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
QmlProfiler: Use Flickable's pixelAligned property

This is much cleaner than manually casting contentX and contentWidth
to int. Also, it actually forwards the int-aligned dimensions to the
TimelineRenderer.

Change-Id: I7dad8eeabf1f3b70c5e725a82a2926b3db6f1b16
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
QmlProfiler: Don't modify height of timeline items based on row height

When precomputing all timeline items in advance we cannot react to
height changes later

Change-Id: Ib038fb59581fe8367c1c550839a728f371005ab6
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
QmlProfiler: more precise event selection in timeline

Generate a score for each candidate event and choose the one with the
best score in the end.

Change-Id: I463e87d2e6cb4e182f7febda7182ae8abf304e04
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>