Imported Upstream version 1.0.1
[gammaray-debian.git] / qmldebugcontrol / qml / RangeDetails.qml
blob7b4207f0afe7e3600e8f6decf9449a885e3c1d0d
1 /**************************************************************************
2 **
3 ** This file is part of Qt Creator
4 **
5 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
6 **
7 ** Contact: Nokia Corporation (info@qt.nokia.com)
8 **
9 **
10 ** GNU Lesser General Public License Usage
12 ** This file may be used under the terms of the GNU Lesser General Public
13 ** License version 2.1 as published by the Free Software Foundation and
14 ** appearing in the file LICENSE.LGPL included in the packaging of this file.
15 ** Please review the following information to ensure the GNU Lesser General
16 ** Public License version 2.1 requirements will be met:
17 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
19 ** In addition, as a special exception, Nokia gives you certain additional
20 ** rights. These rights are described in the Nokia Qt LGPL Exception
21 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
23 ** Other Usage
25 ** Alternatively, this file may be used in accordance with the terms and
26 ** conditions contained in a signed written agreement between you and Nokia.
28 ** If you have questions regarding the use of this file, please contact
29 ** Nokia at info@qt.nokia.com.
31 **************************************************************************/
33 import QtQuick 1.0
34 import Monitor 1.0
35 import "MainView.js" as Plotter
37 BorderImage {
38     id: rangeDetails
40     property string duration    //###int?
41     property string label
42     property string type
43     property string file
44     property int line
46     source: "popup.png"
47     border {
48         left: 10; top: 10
49         right: 20; bottom: 20
50     }
52     width: col.width + 45
53     height: childrenRect.height + 30
54     z: 1
55     visible: false
57     //title
58     Text {
59         id: typeTitle
60         text: rangeDetails.type
61         font.bold: true
62         y: 10
63         anchors.horizontalCenter: parent.horizontalCenter
64         anchors.horizontalCenterOffset: -5
65     }
67     //details
68     Column {
69         id: col
70         anchors.top: typeTitle.bottom
71         x: 2
72         Detail {
73             label: "Duration"
74             content: rangeDetails.duration < 1000 ?
75                         rangeDetails.duration + "μs" :
76                         Math.floor(rangeDetails.duration/10)/100 + "ms"
77         }
78         Detail {
79             opacity: content.length !== 0 ? 1 : 0
80             label: "Details"
81             content: {
82                 var inputString = rangeDetails.label;
83                 if (inputString.length > 7 && inputString.substring(0,7) == "file://") {
84                     var pos = inputString.lastIndexOf("/");
85                     return inputString.substr(pos+1);
86                 }
87                 // transform code blocks into oneliners
88                 inputString = inputString.replace("\n", " ");
90                 var maxLen = 40;
91                 if (inputString.length > maxLen)
92                     inputString = inputString.substring(0,maxLen)+"...";
94                 return inputString;
95             }
96         }
97         Detail {
98             opacity: content.length !== 0 ? 1 : 0
99             label: "Location"
100             content: {
101                 var file = rangeDetails.file
102                 var pos = file.lastIndexOf("/")
103                 if (pos != -1)
104                     file = file.substr(pos+1)
105                 return (file.length !== 0) ? (file + ":" + rangeDetails.line) : "";
106             }
107             onLinkActivated: Qt.openUrlExternally(url)
108         }
109     }