QmlProfiler: rendering event information popup next to cursor

Task-number: QTCREATORBUG-5538
Change-Id: I6cb4ac6924eda2588657dbea0d51166ad0c01340
Reviewed-on: http://codereview.qt.nokia.com/1948
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
This commit is contained in:
Christiaan Janssen
2011-07-21 13:25:34 +02:00
parent 9c554ba021
commit d319065645

View File

@@ -304,18 +304,34 @@ Rectangle {
rangeDetails.line = line
rangeDetails.type = Plotter.names[type]
var pos = mapToItem(rangeDetails.parent, x, y+height)
var preferredX = Math.max(10, pos.x - rangeDetails.width/2)
if (preferredX + rangeDetails.width > rangeDetails.parent.width)
preferredX = rangeDetails.parent.width - rangeDetails.width
var margin = 10;
var pos = mapToItem(rangeDetails.parent , x, y)
var preferredX = pos.x + margin;
// if over the right side of the window, render it left to the given pos
if (preferredX + rangeDetails.width + margin > rangeDetails.parent.width)
preferredX = pos.x - rangeDetails.width - margin;
// if window too narrow, put it at least in "margin" pixels
if (preferredX < margin)
preferredX = margin;
rangeDetails.x = preferredX
var preferredY = pos.y - rangeDetails.height/2;
if (preferredY + rangeDetails.height > root.height - 10)
preferredY = root.height - 10 - rangeDetails.height;
if (preferredY < 10)
preferredY=10;
// center on current item
var preferredY = pos.y + height/2 - rangeDetails.height/2;
// if too low, put it over the bottom of the window
if (preferredY + rangeDetails.height - margin > root.height)
preferredY = root.height - rangeDetails.height - margin;
// but never above the top of the window
if (preferredY < margin)
preferredY = margin;
rangeDetails.y = preferredY;
rangeDetails.visible = true
}