diff options
Diffstat (limited to 'plugins/qmlprofiler/qml')
27 files changed, 0 insertions, 2381 deletions
diff --git a/plugins/qmlprofiler/qml/Detail.qml b/plugins/qmlprofiler/qml/Detail.qml deleted file mode 100644 index 7bc28178d9..0000000000 --- a/plugins/qmlprofiler/qml/Detail.qml +++ /dev/null @@ -1,59 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -import QtQuick 1.0 -import Monitor 1.0 - -Item { - id: detail - property string label - property string content - - height: childrenRect.height+2 - width: childrenRect.width - Item { - id: guideline - x: 70 - width: 5 - } - Text { - y: 1 - id: lbl - text: label - font.pixelSize: 12 - font.bold: true - } - Text { - text: content - font.pixelSize: 12 - anchors.baseline: lbl.baseline - anchors.left: guideline.right - textFormat: Text.PlainText - } -} diff --git a/plugins/qmlprofiler/qml/Label.qml b/plugins/qmlprofiler/qml/Label.qml deleted file mode 100644 index afc96b92f1..0000000000 --- a/plugins/qmlprofiler/qml/Label.qml +++ /dev/null @@ -1,168 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -import QtQuick 1.0 - -Item { - id: labelContainer - property string text: qmlProfilerModelProxy.categoryLabel(modelIndex, categoryIndex) - property bool expanded: false - property int categoryIndex: qmlProfilerModelProxy.correctedCategoryIndexForModel(modelIndex, index) - property int modelIndex: qmlProfilerModelProxy.modelIndexForCategory(index); - - property variant descriptions: [] - property variant extdescriptions: [] - property variant eventIds: [] - - visible: qmlProfilerModelProxy.categoryDepth(modelIndex, categoryIndex) > 0; - - height: root.singleRowHeight - width: 150 - - onExpandedChanged: { - qmlProfilerModelProxy.setExpanded(modelIndex, categoryIndex, expanded); - backgroundMarks.requestRedraw(); - getDescriptions(); - updateHeight(); - } - - Component.onCompleted: { - updateHeight(); - } - - function updateHeight() { - if (expanded != qmlProfilerModelProxy.expanded(modelIndex, categoryIndex)) - expanded = qmlProfilerModelProxy.expanded(modelIndex, categoryIndex); - height = root.singleRowHeight * qmlProfilerModelProxy.categoryDepth(modelIndex, categoryIndex); - } - - function getDescriptions() { - visible = qmlProfilerModelProxy.categoryDepth(modelIndex, categoryIndex) > 0; - if (!visible) - return; - - var desc=[]; - var ids=[]; - var extdesc=[]; - var labelList = qmlProfilerModelProxy.getLabelsForCategory(modelIndex, categoryIndex); - for (var i = 0; i < labelList.length; i++ ) { - desc[i] = labelList[i].description; - ids[i] = labelList[i].id; - extdesc[i] = labelList[i].displayName + ":" + labelList[i].description; - } - descriptions = desc; - eventIds = ids; - extdescriptions = extdesc; - updateHeight(); - } - - Connections { - target: qmlProfilerModelProxy - onExpandedChanged: { - updateHeight(); - } - - onStateChanged: { - getDescriptions(); - } - } - - Text { - id: txt - x: 5 - font.pixelSize: 12 - text: labelContainer.text - color: "#232323" - height: root.singleRowHeight - width: 140 - verticalAlignment: Text.AlignVCenter - } - - Rectangle { - height: 1 - width: parent.width - color: "#999999" - anchors.bottom: parent.bottom - z: 2 - } - - Column { - y: root.singleRowHeight - visible: expanded - Repeater { - model: descriptions.length - Rectangle { - width: labelContainer.width - height: root.singleRowHeight - color: "#eaeaea" - border.width: 1 - border.color:"#c8c8c8" - Text { - height: root.singleRowHeight - x: 5 - width: 140 - text: descriptions[index] - textFormat: Text.PlainText - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter - } - MouseArea { - anchors.fill: parent - hoverEnabled: true - onEntered: changeToolTip(extdescriptions[index]); - onExited: changeToolTip(""); - onClicked: { - if (mouse.modifiers & Qt.ShiftModifier) - view.selectPrevFromId(modelIndex,eventIds[index]); - else - view.selectNextFromId(modelIndex,eventIds[index]); - } - } - } - } - } - - Image { - //visible: descriptions.length > 0 - visible: true - source: expanded ? "arrow_down.png" : "arrow_right.png" - x: parent.width - 12 - y: root.singleRowHeight / 2 - height / 2 - MouseArea { - anchors.fill: parent - anchors.rightMargin: -10 - anchors.leftMargin: -10 - anchors.topMargin: -10 - anchors.bottomMargin: -10 - onClicked: { - expanded = !expanded; - } - } - } -} diff --git a/plugins/qmlprofiler/qml/MainView.qml b/plugins/qmlprofiler/qml/MainView.qml deleted file mode 100644 index 2c9c2df308..0000000000 --- a/plugins/qmlprofiler/qml/MainView.qml +++ /dev/null @@ -1,605 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -import QtQuick 1.0 -import Monitor 1.0 - -Rectangle { - id: root - - // ***** properties - - property int candidateHeight: 0 - property int scrollY: 0 - height: Math.max( candidateHeight, labels.height + 2 ) - - property int singleRowHeight: 30 - - property bool dataAvailable: true - property int eventCount: 0 - property real progress: 0 - - property alias selectionLocked : view.selectionLocked - signal updateLockButton - property alias selectedItem: view.selectedItem - signal selectedEventChanged(int eventId) - property bool lockItemSelection : false - -/* property variant names: [ qsTr("Painting"), - qsTr("Compiling"), - qsTr("Creating"), - qsTr("Binding"), - qsTr("Handling Signal")] - property variant colors : [ "#99CCB3", "#99CCCC", "#99B3CC", - "#9999CC", "#CC99B3", "#CC99CC", "#CCCC99", "#CCB399" ] - */ - - property variant mainviewTimePerPixel : 0 - - signal updateCursorPosition - property string fileName: "" - property int lineNumber: -1 - property int columnNumber: 0 - - signal updateRangeButton - property bool selectionRangeMode: false - - property bool selectionRangeReady: selectionRange.ready - property variant selectionRangeStart: selectionRange.startTime - property variant selectionRangeEnd: selectionRange.startTime + selectionRange.duration - - signal changeToolTip(string text) - signal updateVerticalScroll(int newPosition) - - property bool recordingEnabled: false - property bool appKilled : false - - property date recordingStartDate - property real elapsedTime - - // ***** connections with external objects - Connections { - target: zoomControl - onRangeChanged: { - var startTime = zoomControl.startTime(); - var endTime = zoomControl.endTime(); - var duration = Math.abs(endTime - startTime); - - mainviewTimePerPixel = duration / root.width; - - backgroundMarks.updateMarks(startTime, endTime); - view.updateFlickRange(startTime, endTime); - if (duration > 0) { - var candidateWidth = qmlProfilerModelProxy.traceDuration() * - flick.width / duration; - if (flick.contentWidth !== candidateWidth) - flick.contentWidth = candidateWidth; - } - - } - } - - - Connections { - target: qmlProfilerModelProxy - onCountChanged: { - eventCount = qmlProfilerModelProxy.count(); - if (eventCount === 0) - root.clearAll(); - if (eventCount > 1) { - root.progress = Math.min(1.0, - (qmlProfilerModelProxy.lastTimeMark() - - qmlProfilerModelProxy.traceStartTime()) / root.elapsedTime * 1e-9 ); - } else { - root.progress = 0; - } - } - onStateChanged: { - switch (qmlProfilerModelProxy.getState()) { - case 0: { - root.clearAll(); - break; - } - case 1: { - root.dataAvailable = false; - break; - } - case 2: { - root.progress = 0.9; // jump to 90% - break; - } - } - } - onDataAvailable: { - view.clearData(); - zoomControl.setRange(0,0); - progress = 1.0; - dataAvailable = true; - view.visible = true; - view.requestPaint(); - zoomControl.setRange(qmlProfilerModelProxy.traceStartTime(), - qmlProfilerModelProxy.traceStartTime() + - qmlProfilerModelProxy.traceDuration()/10); - } - } - - - // ***** functions - function gotoSourceLocation(file,line,column) { - if (file !== undefined) { - root.fileName = file; - root.lineNumber = line; - root.columnNumber = column; - root.updateCursorPosition(); - } - } - - function clearData() { - view.clearData(); - dataAvailable = false; - appKilled = false; - eventCount = 0; - hideRangeDetails(); - selectionRangeMode = false; - updateRangeButton(); - zoomControl.setRange(0,0); - } - - function clearDisplay() { - clearData(); - view.visible = false; - } - - function clearAll() { - clearDisplay(); - elapsedTime = 0; - } - - function nextEvent() { - view.selectNext(); - } - - function prevEvent() { - view.selectPrev(); - } - - function updateWindowLength(absoluteFactor) { - var windowLength = view.endTime - view.startTime; - if (qmlProfilerModelProxy.traceEndTime() <= qmlProfilerModelProxy.traceStartTime() || - windowLength <= 0) - return; - var currentFactor = windowLength / qmlProfilerModelProxy.traceDuration(); - updateZoom(absoluteFactor / currentFactor); - } - - function updateZoom(relativeFactor) { - var min_length = 1e5; // 0.1 ms - var windowLength = view.endTime - view.startTime; - if (windowLength < min_length) - windowLength = min_length; - var newWindowLength = windowLength * relativeFactor; - - if (newWindowLength > qmlProfilerModelProxy.traceDuration()) { - newWindowLength = qmlProfilerModelProxy.traceDuration(); - relativeFactor = newWindowLength / windowLength; - } - if (newWindowLength < min_length) { - newWindowLength = min_length; - relativeFactor = newWindowLength / windowLength; - } - - var fixedPoint = (view.startTime + view.endTime) / 2; - - if (view.selectedItem !== -1) { - // center on selected item if it's inside the current screen - var newFixedPoint = qmlProfilerModelProxy.getStartTime(view.selectedModel, view.selectedItem); - if (newFixedPoint >= view.startTime && newFixedPoint < view.endTime) - fixedPoint = newFixedPoint; - } - - - var startTime = fixedPoint - relativeFactor*(fixedPoint - view.startTime); - zoomControl.setRange(startTime, startTime + newWindowLength); - } - - function updateZoomCentered(centerX, relativeFactor) - { - var min_length = 1e5; // 0.1 ms - var windowLength = view.endTime - view.startTime; - if (windowLength < min_length) - windowLength = min_length; - var newWindowLength = windowLength * relativeFactor; - - if (newWindowLength > qmlProfilerModelProxy.traceDuration()) { - newWindowLength = qmlProfilerModelProxy.traceDuration(); - relativeFactor = newWindowLength / windowLength; - } - if (newWindowLength < min_length) { - newWindowLength = min_length; - relativeFactor = newWindowLength / windowLength; - } - - var fixedPoint = (centerX - flick.x) * windowLength / flick.width + view.startTime; - var startTime = fixedPoint - relativeFactor*(fixedPoint - view.startTime); - zoomControl.setRange(startTime, startTime + newWindowLength); - } - - function recenter( centerPoint ) { - var windowLength = view.endTime - view.startTime; - var newStart = Math.floor(centerPoint - windowLength/2); - if (newStart < 0) - newStart = 0; - if (newStart + windowLength > qmlProfilerModelProxy.traceEndTime()) - newStart = qmlProfilerModelProxy.traceEndTime() - windowLength; - zoomControl.setRange(newStart, newStart + windowLength); - } - - function recenterOnItem( modelIndex, itemIndex ) - { - if (itemIndex === -1) - return; - - // if item is outside of the view, jump back to its position - if (qmlProfilerModelProxy.getEndTime(modelIndex, itemIndex) < view.startTime || - qmlProfilerModelProxy.getStartTime(modelIndex, itemIndex) > view.endTime) { - recenter((qmlProfilerModelProxy.getStartTime(modelIndex, itemIndex) + - qmlProfilerModelProxy.getEndTime(modelIndex, itemIndex)) / 2); - } - - } - - function wheelZoom(wheelCenter, wheelDelta) { - if (qmlProfilerModelProxy.traceEndTime() > qmlProfilerModelProxy.traceStartTime() && - wheelDelta !== 0) { - if (wheelDelta>0) - updateZoomCentered(wheelCenter, 1/1.2); - else - updateZoomCentered(wheelCenter, 1.2); - } - } - - function hideRangeDetails() { - rangeDetails.visible = false; - rangeDetails.duration = ""; - rangeDetails.label = ""; - //rangeDetails.type = ""; - rangeDetails.file = ""; - rangeDetails.line = -1; - rangeDetails.column = 0; - rangeDetails.isBindingLoop = false; - } - - function selectNextByHash(hash) { - var eventId = qmlProfilerModelProxy.getEventIdForHash(hash); - if (eventId !== -1) { - selectNextById(eventId); - } - } - - function selectNextById(eventId) - { - // this is a slot responding to events from the other pane - // which tracks only events from the basic model - if (!lockItemSelection) { - lockItemSelection = true; - var modelIndex = qmlProfilerModelProxy.basicModelIndex(); - var itemIndex = view.nextItemFromId( modelIndex, eventId ); - // select an item, lock to it, and recenter if necessary - if (view.selectedItem != itemIndex || view.selectedModel != modelIndex) { - view.selectedModel = modelIndex; - view.selectedItem = itemIndex; - if (itemIndex !== -1) { - view.selectionLocked = true; - recenterOnItem(modelIndex, itemIndex); - } - } - lockItemSelection = false; - } - } - - // ***** slots - onSelectionRangeModeChanged: { - selectionRangeControl.enabled = selectionRangeMode; - selectionRange.reset(selectionRangeMode); - } - - onSelectionLockedChanged: { - updateLockButton(); - } - - onSelectedItemChanged: { - if (selectedItem != -1 && !lockItemSelection) { - lockItemSelection = true; - // update in other views - var eventLocation = qmlProfilerModelProxy.getEventLocation(view.selectedModel, view.selectedItem); - gotoSourceLocation(eventLocation.file, eventLocation.line, eventLocation.column); - lockItemSelection = false; - } - } - - onRecordingEnabledChanged: { - if (recordingEnabled) { - recordingStartDate = new Date(); - elapsedTime = 0; - } else { - elapsedTime = (new Date() - recordingStartDate)/1000.0; - } - } - - - // ***** child items - TimeMarks { - id: backgroundMarks - y: labels.y - height: flick.height - anchors.left: flick.left - anchors.right: flick.right - } - - Flickable { - id: flick - anchors.top: parent.top - anchors.topMargin: labels.y - anchors.right: parent.right - anchors.left: labels.right - height: root.height - contentWidth: 0; - contentHeight: labels.height - flickableDirection: Flickable.HorizontalFlick - - onContentXChanged: { - if (Math.round(view.startX) !== contentX) - view.startX = contentX; - } - - clip:true - - MouseArea { - id: selectionRangeDrag - enabled: selectionRange.ready - anchors.fill: selectionRange - drag.target: selectionRange - drag.axis: "XAxis" - drag.minimumX: 0 - drag.maximumX: flick.contentWidth - selectionRange.width - onPressed: { - selectionRange.isDragging = true; - } - onReleased: { - selectionRange.isDragging = false; - } - onDoubleClicked: { - zoomControl.setRange(selectionRange.startTime, - selectionRange.startTime + selectionRange.duration); - root.selectionRangeMode = false; - root.updateRangeButton(); - } - } - - - SelectionRange { - id: selectionRange - visible: root.selectionRangeMode - height: root.height - z: 2 - } - - TimelineRenderer { - id: view - - profilerModelProxy: qmlProfilerModelProxy - - x: flick.contentX - width: flick.width - height: root.height - - property variant startX: 0 - onStartXChanged: { - var newStartTime = Math.round(startX * (endTime - startTime) / flick.width) + - qmlProfilerModelProxy.traceStartTime(); - if (Math.abs(newStartTime - startTime) > 1) { - var newEndTime = Math.round((startX+flick.width) * - (endTime - startTime) / - flick.width) + - qmlProfilerModelProxy.traceStartTime(); - zoomControl.setRange(newStartTime, newEndTime); - } - - if (Math.round(startX) !== flick.contentX) - flick.contentX = startX; - } - - function updateFlickRange(start, end) { - if (start !== startTime || end !== endTime) { - startTime = start; - endTime = end; - var newStartX = (startTime - qmlProfilerModelProxy.traceStartTime()) * - flick.width / (endTime-startTime); - if (Math.abs(newStartX - startX) >= 1) - startX = newStartX; - } - } - - onSelectedItemChanged: { - if (selectedItem !== -1) { - // display details - rangeDetails.showInfo(qmlProfilerModelProxy.getEventDetails(selectedModel, selectedItem)); - rangeDetails.setLocation(qmlProfilerModelProxy.getEventLocation(selectedModel, selectedItem)); - - // center view (horizontally) - var windowLength = view.endTime - view.startTime; - var eventStartTime = qmlProfilerModelProxy.getStartTime(selectedModel, selectedItem); - var eventEndTime = eventStartTime + - qmlProfilerModelProxy.getDuration(selectedModel, selectedItem); - - if (eventEndTime < view.startTime || eventStartTime > view.endTime) { - var center = (eventStartTime + eventEndTime)/2; - var from = Math.min(qmlProfilerModelProxy.traceEndTime()-windowLength, - Math.max(0, Math.floor(center - windowLength/2))); - - zoomControl.setRange(from, from + windowLength); - - } - - // center view (vertically) - var itemY = view.getYPosition(selectedModel, selectedItem); - if (itemY < root.scrollY) { - root.updateVerticalScroll(itemY); - } else - if (itemY + root.singleRowHeight > - root.scrollY + root.candidateHeight) { - root.updateVerticalScroll(itemY + root.singleRowHeight - - root.candidateHeight); - } - - } else { - root.hideRangeDetails(); - } - } - - onItemPressed: { - var location = qmlProfilerModelProxy.getEventLocation(modelIndex, pressedItem); - if (location.hasOwnProperty("file")) // not empty - root.gotoSourceLocation(location.file, location.line, location.column); - } - - // hack to pass mouse events to the other mousearea if enabled - startDragArea: selectionRangeDrag.enabled ? selectionRangeDrag.x : - -flick.contentX - endDragArea: selectionRangeDrag.enabled ? - selectionRangeDrag.x + selectionRangeDrag.width : - -flick.contentX-1 - } - MouseArea { - id: selectionRangeControl - enabled: false - width: flick.width - height: root.height - x: flick.contentX - hoverEnabled: enabled - z: 2 - - onReleased: { - selectionRange.releasedOnCreation(); - } - onPressed: { - selectionRange.pressedOnCreation(); - } - onMousePositionChanged: { - selectionRange.movedOnCreation(); - } - } - } - - SelectionRangeDetails { - id: selectionRangeDetails - visible: root.selectionRangeMode - startTime: selectionRange.startTimeString - duration: selectionRange.durationString - endTime: selectionRange.endTimeString - showDuration: selectionRange.width > 1 - } - - RangeDetails { - id: rangeDetails - } - - Rectangle { - id: labels - width: 150 - color: "#dcdcdc" - height: col.height - - property int rowCount: qmlProfilerModelProxy.categories(); - - Column { - id: col - Repeater { - model: labels.rowCount - delegate: Label { } - } - } - } - - Rectangle { - id: labelsTail - anchors.top: labels.bottom - anchors.bottom: root.bottom - width: labels.width - color: labels.color - } - - // Gradient borders - Item { - anchors.left: labels.right - width: 6 - anchors.top: root.top - anchors.bottom: root.bottom - Rectangle { - x: parent.width - transformOrigin: Item.TopLeft - rotation: 90 - width: parent.height - height: parent.width - gradient: Gradient { - GradientStop { position: 0.0; color: "#00000000"; } - GradientStop { position: 1.0; color: "#86000000"; } - } - } - } - - Item { - anchors.right: root.right - width: 6 - anchors.top: root.top - anchors.bottom: root.bottom - Rectangle { - x: parent.width - transformOrigin: Item.TopLeft - rotation: 90 - width: parent.height - height: parent.width - gradient: Gradient { - GradientStop { position: 0.0; color: "#86000000"; } - GradientStop { position: 1.0; color: "#00000000"; } - } - } - } - - Rectangle { - y: root.scrollY + root.candidateHeight - height - height: 6 - width: root.width - x: 0 - gradient: Gradient { - GradientStop { position: 0.0; color: "#00000000"; } - GradientStop { position: 1.0; color: "#86000000"; } - } - } -} diff --git a/plugins/qmlprofiler/qml/Overview.js b/plugins/qmlprofiler/qml/Overview.js deleted file mode 100644 index 4ef2187b43..0000000000 --- a/plugins/qmlprofiler/qml/Overview.js +++ /dev/null @@ -1,181 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -.pragma library - -var qmlProfilerModelProxy = 0; - -//draw background of the graph -function drawGraph(canvas, ctxt, region) -{ - ctxt.fillStyle = "#eaeaea"; - ctxt.fillRect(0, 0, canvas.width, canvas.height); -} - -//draw the actual data to be graphed -function drawData(canvas, ctxt, region) -{ - if ((!qmlProfilerModelProxy) || qmlProfilerModelProxy.count() == 0) - return; - - var width = canvas.width; - var bump = 10; - var height = canvas.height - bump; - - var typeCount = qmlProfilerModelProxy.visibleCategories(); - var blockHeight = height / typeCount; - - var spacing = width / qmlProfilerModelProxy.traceDuration(); - - var modelRowStart = 0; - for (var modelIndex = 0; modelIndex < qmlProfilerModelProxy.modelCount(); modelIndex++) { - for (var ii = 0; ii < qmlProfilerModelProxy.count(modelIndex); ++ii) { - - var xx = (qmlProfilerModelProxy.getStartTime(modelIndex,ii) - - qmlProfilerModelProxy.traceStartTime()) * spacing; - if (xx > region.x + region.width) - continue; - - var eventWidth = qmlProfilerModelProxy.getDuration(modelIndex,ii) * spacing; - if (xx + eventWidth < region.x) - continue; - - if (eventWidth < 1) - eventWidth = 1; - - xx = Math.round(xx); - - var rowNumber = modelRowStart + qmlProfilerModelProxy.getEventCategoryInModel(modelIndex, ii); - - var itemHeight = qmlProfilerModelProxy.getHeight(modelIndex,ii) * blockHeight; - var yy = (rowNumber + 1) * blockHeight - itemHeight ; - - var itemColor = qmlProfilerModelProxy.getColorRGB(modelIndex, ii); - ctxt.fillStyle = "rgb("+itemColor[0]+","+itemColor[1]+","+itemColor[2]+")"; - ctxt.fillRect(xx, bump + yy, eventWidth, itemHeight); - } - modelRowStart += qmlProfilerModelProxy.categoryCount(modelIndex); - } - - // binding loops - ctxt.strokeStyle = "orange"; - ctxt.lineWidth = 2; - var radius = 1; - modelRowStart = 0; - for (modelIndex = 0; modelIndex < qmlProfilerModelProxy.modelCount(); modelIndex++) { - for (ii = 0; ii < qmlProfilerModelProxy.count(modelIndex); ++ii) { - if (qmlProfilerModelProxy.getBindingLoopDest(modelIndex,ii) >= 0) { - var xcenter = Math.round(qmlProfilerModelProxy.getStartTime(modelIndex,ii) + - qmlProfilerModelProxy.getDuration(modelIndex,ii) - - qmlProfilerModelProxy.traceStartTime()) * spacing; - var ycenter = Math.round(bump + (modelRowStart + - qmlProfilerModelProxy.getEventCategoryInModel(modelIndex, ii)) * - blockHeight + blockHeight/2); - ctxt.arc(xcenter, ycenter, radius, 0, 2*Math.PI, true); - ctxt.stroke(); - } - } - modelRowStart += qmlProfilerModelProxy.categoryCount(modelIndex); - } - -} - -function drawTimeBar(canvas, ctxt, region) -{ - if (!qmlProfilerModelProxy) - return; - - var width = canvas.width; - var height = 10; - var startTime = qmlProfilerModelProxy.traceStartTime(); - var endTime = qmlProfilerModelProxy.traceEndTime(); - - var totalTime = qmlProfilerModelProxy.traceDuration(); - var spacing = width / totalTime; - - var initialBlockLength = 120; - var timePerBlock = Math.pow(2, Math.floor( Math.log( totalTime / width * - initialBlockLength ) / Math.LN2 ) ); - var pixelsPerBlock = timePerBlock * spacing; - var pixelsPerSection = pixelsPerBlock / 5; - var blockCount = width / pixelsPerBlock; - - var realStartTime = Math.floor(startTime/timePerBlock) * timePerBlock; - var realStartPos = (startTime-realStartTime) * spacing; - - var timePerPixel = timePerBlock/pixelsPerBlock; - - ctxt.fillStyle = "#000000"; - ctxt.font = "6px sans-serif"; - - ctxt.fillStyle = "#cccccc"; - ctxt.fillRect(0, 0, width, height); - for (var ii = 0; ii < blockCount+1; ii++) { - var x = Math.floor(ii*pixelsPerBlock - realStartPos); - - // block boundary - ctxt.strokeStyle = "#525252"; - ctxt.beginPath(); - ctxt.moveTo(x, height/2); - ctxt.lineTo(x, height); - ctxt.stroke(); - - // block time label - ctxt.fillStyle = "#000000"; - var timeString = prettyPrintTime((ii+0.5)*timePerBlock + realStartTime); - ctxt.textAlign = "center"; - ctxt.fillText(timeString, x + pixelsPerBlock/2, height/2 + 3); - } - - ctxt.fillStyle = "#808080"; - ctxt.fillRect(0, height-1, width, 1); -} - -function prettyPrintTime( t ) -{ - if (t <= 0) return "0"; - if (t<1000) return t+" ns"; - t = t/1000; - if (t<1000) return t+" μs"; - t = Math.floor(t/100)/10; - if (t<1000) return t+" ms"; - t = Math.floor(t)/1000; - if (t<60) return t+" s"; - var m = Math.floor(t/60); - t = Math.floor(t - m*60); - return m+"m"+t+"s"; -} - -function plot(canvas, ctxt, region) -{ - drawGraph(canvas, ctxt, region); - drawData(canvas, ctxt, region); - drawTimeBar(canvas, ctxt, region); - -} diff --git a/plugins/qmlprofiler/qml/Overview.qml b/plugins/qmlprofiler/qml/Overview.qml deleted file mode 100644 index d90e1e6c7d..0000000000 --- a/plugins/qmlprofiler/qml/Overview.qml +++ /dev/null @@ -1,126 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -import QtQuick 1.0 -import Monitor 1.0 -import "Overview.js" as Plotter - -Canvas2D { - id: canvas - - // ***** properties - height: 50 - property bool dataReady: false - property variant startTime : 0 - property variant endTime : 0 - - // ***** functions - function clearDisplay() - { - dataReady = false; - requestRedraw(); - } - - function updateRange() { - var newStartTime = Math.round(rangeMover.x * qmlProfilerModelProxy.traceDuration() / width) + qmlProfilerModelProxy.traceStartTime(); - var newEndTime = Math.round((rangeMover.x + rangeMover.width) * qmlProfilerModelProxy.traceDuration() / width) + qmlProfilerModelProxy.traceStartTime(); - if (startTime !== newStartTime || endTime !== newEndTime) { - zoomControl.setRange(newStartTime, newEndTime); - } - - } - - // ***** connections to external objects - Connections { - target: zoomControl - onRangeChanged: { - if (qmlProfilerModelProxy) { - startTime = zoomControl.startTime(); - endTime = zoomControl.endTime(); - var newRangeX = (startTime - qmlProfilerModelProxy.traceStartTime()) * width / qmlProfilerModelProxy.traceDuration(); - if (rangeMover.x !== newRangeX) - rangeMover.x = newRangeX; - var newWidth = (endTime-startTime) * width / qmlProfilerModelProxy.traceDuration(); - if (rangeMover.width !== newWidth) - rangeMover.width = newWidth; - } - } - } - - Connections { - target: qmlProfilerModelProxy - onDataAvailable: { - dataReady = true; - requestRedraw(); - } - } - - - // ***** slots - onDrawRegion: { - Plotter.qmlProfilerModelProxy = qmlProfilerModelProxy; - if (dataReady) { - Plotter.plot(canvas, ctxt, region); - } else { - Plotter.drawGraph(canvas, ctxt, region) //just draw the background - } - } - - // ***** child items - MouseArea { - anchors.fill: canvas - function jumpTo(posX) { - var newX = posX - rangeMover.width/2; - if (newX < 0) - newX = 0; - if (newX + rangeMover.width > canvas.width) - newX = canvas.width - rangeMover.width; - rangeMover.x = newX; - updateRange(); - } - - onPressed: { - jumpTo(mouse.x); - } - onMousePositionChanged: { - jumpTo(mouse.x); - } - } - - RangeMover { - id: rangeMover - visible: dataReady - } - - Rectangle { - height: 1 - width: parent.width - color: "#858585" - } -} diff --git a/plugins/qmlprofiler/qml/RangeDetails.qml b/plugins/qmlprofiler/qml/RangeDetails.qml deleted file mode 100644 index a0fb3e8d77..0000000000 --- a/plugins/qmlprofiler/qml/RangeDetails.qml +++ /dev/null @@ -1,235 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -import QtQuick 1.0 -import Monitor 1.0 - -Item { - id: rangeDetails - - property string duration - property string label - property string dialogTitle - property string file - property int line - property int column - property bool isBindingLoop - - property bool locked: view.selectionLocked - - width: col.width + 45 - height: col.height + 30 - z: 1 - visible: false - x: 200 - y: 25 - - property int yoffset: root.scrollY - onYoffsetChanged: { - y = relativey + yoffset - fitInView(); - } - property int relativey : y - yoffset - onYChanged: relativey = y - yoffset - - // keep inside view - Connections { - target: root - onWidthChanged: fitInView(); - onCandidateHeightChanged: fitInView(); - } - - //property variant eventInfo - - ListModel { - id: eventInfo - } - - function showInfo(eventData) { - eventInfo.clear(); - rangeDetails.dialogTitle = eventData[0]["title"]; - for (var i = 1; i < eventData.length; i++) { - for (var k in eventData[i]) { - eventInfo.append({"key": k, "value":eventData[i][k]}); - } - } - rangeDetails.visible = true; - } - - function setLocation(location) { - if (location.hasOwnProperty("file")) { // not empty - file = location.file; - line = location.line; - column = location.column; - } else { - // reset to default values - file = ""; - line = 0; - column = -1; - } - } - - function fitInView() { - // don't reposition if it does not fit - if (root.width < width || root.candidateHeight < height) - return; - - if (x + width > root.width) - x = root.width - width; - if (x < 0) - x = 0; - if (y - yoffset + height > root.candidateHeight) - y = root.candidateHeight - height + yoffset; - if (y < yoffset) - y = yoffset; - } - - // shadow - BorderImage { - property int px: 4 - source: "dialog_shadow.png" - - border { - left: px; top: px - right: px; bottom: px - } - width: parent.width + 2*px - 1 - height: parent.height - x: -px + 1 - y: px + 1 - } - - // title bar - Rectangle { - width: parent.width - height: 20 - color: "#55a3b8" - radius: 5 - border.width: 1 - border.color: "#a0a0a0" - } - Item { - width: parent.width+1 - height: 11 - y: 10 - clip: true - Rectangle { - width: parent.width-1 - height: 15 - y: -5 - color: "#55a3b8" - border.width: 1 - border.color: "#a0a0a0" - } - } - - //title - Text { - id: typeTitle - text: " "+rangeDetails.dialogTitle - font.bold: true - height: 18 - y: 2 - verticalAlignment: Text.AlignVCenter - width: parent.width - color: "white" - } - - // Details area - Rectangle { - color: "white" - width: parent.width - height: col.height + 10 - y: 20 - border.width: 1 - border.color: "#a0a0a0" - - //details - Column { - id: col - x: 10 - y: 5 - - Repeater { - model: eventInfo - Detail { - label: key - content: value - } - } - } - } - - MouseArea { - width: col.width + 45 - height: col.height + 30 - drag.target: parent - drag.minimumX: 0 - drag.maximumX: root.width - parent.width - drag.minimumY: yoffset - drag.maximumY: root.candidateHeight - parent.height + yoffset - onClicked: { - root.gotoSourceLocation(file, line, column); - root.recenterOnItem(view.selectedModel, view.selectedItem); - } - } - - Image { - id: lockIcon - source: locked?"lock_closed.png" : "lock_open.png" - anchors.top: closeIcon.top - anchors.right: closeIcon.left - anchors.rightMargin: 4 - width: 8 - height: 12 - MouseArea { - anchors.fill: parent - onClicked: { - root.selectionLocked = !root.selectionLocked; - } - } - } - - - Text { - id: closeIcon - x: col.width + 30 - y: 4 - text:"X" - color: "white" - MouseArea { - anchors.fill: parent - onClicked: { - root.hideRangeDetails(); - view.selectedItem = -1; - } - } - } - -} diff --git a/plugins/qmlprofiler/qml/RangeMover.qml b/plugins/qmlprofiler/qml/RangeMover.qml deleted file mode 100644 index 18226d8d25..0000000000 --- a/plugins/qmlprofiler/qml/RangeMover.qml +++ /dev/null @@ -1,203 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -import QtQuick 1.0 - -Rectangle { - id: rangeMover - - - property color rangeColor:"#444a64b8" - property color borderColor:"#cc4a64b8" - property color dragMarkerColor: "#4a64b8" - width: 20 - height: 50 - - color: rangeColor - - property bool dragStarted: false - onXChanged: { - if (dragStarted) canvas.updateRange() - } - - MouseArea { - anchors.fill: parent - drag.target: rangeMover - drag.axis: "XAxis" - drag.minimumX: 0 - drag.maximumX: canvas.width - rangeMover.width - onPressed: { - parent.dragStarted = true; - } - onReleased: { - parent.dragStarted = false; - } - } - - Rectangle { - id: leftRange - - // used for dragging the borders - property real initialX: 0 - property real initialWidth: 0 - - x: 0 - height: parent.height - width: 1 - color: borderColor - - Rectangle { - id: leftBorderHandle - height: parent.height - x: -width - width: 7 - color: "#869cd1" - visible: false - Image { - source: "range_handle.png" - x: 2 - width: 4 - height: 9 - fillMode: Image.Tile - y: rangeMover.height / 2 - 4 - } - } - - states: State { - name: "highlighted" - PropertyChanges { - target: leftBorderHandle - visible: true - } - } - - onXChanged: { - if (x !== 0) { - rangeMover.width = initialWidth - x; - rangeMover.x = initialX + x; - x = 0; - canvas.updateRange(); - } - } - - MouseArea { - x: -10 - width: 13 - y: 0 - height: parent.height - - drag.target: leftRange - drag.axis: "XAxis" - drag.minimumX: -parent.initialX - drag.maximumX: parent.initialWidth - 2 - - hoverEnabled: true - - onEntered: { - parent.state = "highlighted"; - } - onExited: { - if (!pressed) parent.state = ""; - } - onReleased: { - if (!containsMouse) parent.state = ""; - } - onPressed: { - parent.initialX = rangeMover.x; - parent.initialWidth = rangeMover.width; - } - } - } - - Rectangle { - id: rightRange - - x: rangeMover.width - height: parent.height - width: 1 - color: borderColor - - Rectangle { - id: rightBorderHandle - height: parent.height - x: 1 - width: 7 - color: "#869cd1" - visible: false - Image { - source: "range_handle.png" - x: 2 - width: 4 - height: 9 - fillMode: Image.Tile - y: rangeMover.height / 2 - 4 - } - } - - states: State { - name: "highlighted" - PropertyChanges { - target: rightBorderHandle - visible: true - } - } - - onXChanged: { - if (x!=rangeMover.width) { - rangeMover.width = x; - canvas.updateRange(); - } - } - - MouseArea { - x: -3 - width: 13 - y: 0 - height: parent.height - - drag.target: rightRange - drag.axis: "XAxis" - drag.minimumX: 1 - drag.maximumX: canvas.width - rangeMover.x - - hoverEnabled: true - - onEntered: { - parent.state = "highlighted"; - } - onExited: { - if (!pressed) parent.state = ""; - } - onReleased: { - if (!containsMouse) parent.state = ""; - } - } - } - -} diff --git a/plugins/qmlprofiler/qml/SelectionRange.qml b/plugins/qmlprofiler/qml/SelectionRange.qml deleted file mode 100644 index b302de614a..0000000000 --- a/plugins/qmlprofiler/qml/SelectionRange.qml +++ /dev/null @@ -1,297 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -import QtQuick 1.0 - -Rectangle { - id: selectionRange - - width: 1 - color: "transparent" - - property bool ready: visible && creationState === 3 - - property color rangeColor:"#444a64b8" - property color pressedColor:"#664a64b8" - property color borderColor:"#aa4a64b8" - property color dragMarkerColor: "#4a64b8" - property color singleLineColor: "#4a64b8" - - property string startTimeString: detailedPrintTime(startTime) - property string endTimeString: detailedPrintTime(startTime+duration) - property string durationString: detailedPrintTime(duration) - - property variant startTime: x * selectionRange.viewTimePerPixel + qmlProfilerModelProxy.traceStartTime() - property variant duration: width * selectionRange.viewTimePerPixel - property variant viewTimePerPixel: 1 - property variant creationState : 0 - - property variant x1 - property variant x2 - property variant x3: Math.min(x1, x2) - property variant x4: Math.max(x1, x2) - - property bool isDragging: false - - Connections { - target: zoomControl - onRangeChanged: { - var oldTimePerPixel = selectionRange.viewTimePerPixel; - selectionRange.viewTimePerPixel = Math.abs(zoomControl.endTime() - zoomControl.startTime()) / flick.width; - if (creationState === 3 && oldTimePerPixel != selectionRange.viewTimePerPixel) { - selectionRange.x = x * oldTimePerPixel / selectionRange.viewTimePerPixel; - selectionRange.width = width * oldTimePerPixel / selectionRange.viewTimePerPixel; - } - } - } - - onCreationStateChanged: { - switch (creationState) { - case 0: color = "transparent"; break; - case 1: color = singleLineColor; break; - default: color = rangeColor; break; - } - } - - onIsDraggingChanged: { - if (isDragging) - color = pressedColor; - else - color = rangeColor; - } - - function reset(setVisible) { - width = 1; - creationState = 0; - visible = setVisible; - } - - function setPos(pos) { - switch (creationState) { - case 1: { - width = 1; - x1 = pos; - x2 = pos; - x = pos; - break; - } - case 2: { - x2 = pos; - x = x3; - width = x4-x3; - break; - } - default: return; - } - } - - - function detailedPrintTime( t ) - { - if (t <= 0) return "0"; - if (t<1000) return t+" ns"; - t = Math.floor(t/1000); - if (t<1000) return t+" μs"; - if (t<1e6) return (t/1000) + " ms"; - return (t/1e6) + " s"; - } - - // creation control - function releasedOnCreation() { - if (selectionRange.creationState === 2) { - flick.interactive = true; - selectionRange.creationState = 3; - selectionRangeControl.enabled = false; - } - } - - function pressedOnCreation() { - if (selectionRange.creationState === 1) { - flick.interactive = false; - selectionRange.setPos(selectionRangeControl.mouseX + flick.contentX); - selectionRange.creationState = 2; - } - } - - function movedOnCreation() { - if (selectionRange.creationState === 0) { - selectionRange.creationState = 1; - } - - if (!root.eventCount) - return; - - if (!selectionRangeControl.pressed && selectionRange.creationState==3) - return; - - if (selectionRangeControl.pressed) { - selectionRange.setPos(selectionRangeControl.mouseX + flick.contentX); - } else { - selectionRange.setPos(selectionRangeControl.mouseX + flick.contentX); - } - } - - Rectangle { - id: leftBorder - - visible: selectionRange.creationState === 3 - - // used for dragging the borders - property real initialX: 0 - property real initialWidth: 0 - - x: 0 - height: parent.height - width: 1 - color: borderColor - - Rectangle { - id: leftBorderHandle - height: parent.height - x: -width - width: 9 - color: "#869cd1" - visible: false - Image { - source: "range_handle.png" - x: 4 - width: 4 - height: 63 - fillMode: Image.Tile - y: root.scrollY + root.candidateHeight / 2 - 32 - } - } - - states: State { - name: "highlighted" - PropertyChanges { - target: leftBorderHandle - visible: true - } - } - - onXChanged: if (x != 0) { - selectionRange.width = initialWidth - x; - selectionRange.x = initialX + x; - x = 0; - } - - MouseArea { - x: -12 - width: 15 - y: 0 - height: parent.height - - drag.target: leftBorder - drag.axis: "XAxis" - drag.minimumX: -parent.initialX - drag.maximumX: parent.initialWidth - 2 - - hoverEnabled: true - - onEntered: parent.state = "highlighted" - onExited: { - if (!pressed) parent.state = ""; - } - onReleased: { - if (!containsMouse) parent.state = "" ; - } - onPressed: { - parent.initialX = selectionRange.x; - parent.initialWidth = selectionRange.width; - } - } - } - - Rectangle { - id: rightBorder - - visible: selectionRange.creationState === 3 - - x: selectionRange.width - height: parent.height - width: 1 - color: borderColor - - Rectangle { - id: rightBorderHandle - height: parent.height - x: 1 - width: 9 - color: "#869cd1" - visible: false - Image { - source: "range_handle.png" - x: 2 - width: 4 - height: 63 - fillMode: Image.Tile - y: root.scrollY + root.candidateHeight / 2 - 32 - } - } - - states: State { - name: "highlighted" - PropertyChanges { - target: rightBorderHandle - visible: true - } - } - - onXChanged: { - if (x != selectionRange.width) { - selectionRange.width = x; - } - } - - MouseArea { - x: -3 - width: 15 - y: 0 - height: parent.height - - drag.target: rightBorder - drag.axis: "XAxis" - drag.minimumX: 1 - drag.maximumX: flick.contentWidth - selectionRange.x - - hoverEnabled: true - - onEntered: { - parent.state = "highlighted"; - } - onExited: { - if (!pressed) parent.state = ""; - } - onReleased: { - if (!containsMouse) parent.state = ""; - } - } - } -} diff --git a/plugins/qmlprofiler/qml/SelectionRangeDetails.qml b/plugins/qmlprofiler/qml/SelectionRangeDetails.qml deleted file mode 100644 index 5af24af14d..0000000000 --- a/plugins/qmlprofiler/qml/SelectionRangeDetails.qml +++ /dev/null @@ -1,189 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -import QtQuick 1.0 -import Monitor 1.0 - -Item { - id: selectionRangeDetails - - property string startTime - property string endTime - property string duration - property bool showDuration - - width: 170 - height: col.height + 30 - z: 1 - visible: false - x: 200 - y: 125 - - property int yoffset: root.scrollY - onYoffsetChanged: { - y = relativey + yoffset - fitInView(); - } - property int relativey : y - yoffset - onYChanged: relativey = y - yoffset - - // keep inside view - Connections { - target: root - onWidthChanged: fitInView(); - onCandidateHeightChanged: fitInView(); - } - - function fitInView() { - // don't reposition if it does not fit - if (root.width < width || root.candidateHeight < height) - return; - - if (x + width > root.width) - x = root.width - width; - if (x < 0) - x = 0; - if (y + height - yoffset > root.candidateHeight) - y = root.candidateHeight - height + yoffset; - if (y < yoffset) - y = yoffset; - } - - // shadow - BorderImage { - property int px: 4 - source: "dialog_shadow.png" - - border { - left: px; top: px - right: px; bottom: px - } - width: parent.width + 2*px - 1 - height: parent.height - x: -px + 1 - y: px + 1 - } - - // title bar - Rectangle { - width: parent.width - height: 20 - color: "#4a64b8" - radius: 5 - border.width: 1 - border.color: "#a0a0a0" - } - Item { - width: parent.width+1 - height: 11 - y: 10 - clip: true - Rectangle { - width: parent.width-1 - height: 15 - y: -5 - color: "#4a64b8" - border.width: 1 - border.color: "#a0a0a0" - } - } - - //title - Text { - id: typeTitle - text: " "+qsTr("Selection") - font.bold: true - height: 18 - y: 2 - verticalAlignment: Text.AlignVCenter - width: parent.width - color: "white" - } - - // Details area - Rectangle { - color: "white" - width: parent.width - height: col.height + 10 - y: 20 - border.width: 1 - border.color: "#a0a0a0" - Column { - id: col - x: 10 - y: 5 - Detail { - label: qsTr("Start") - content: selectionRangeDetails.startTime - } - Detail { - label: qsTr("End") - visible: selectionRangeDetails.showDuration - content: selectionRangeDetails.endTime - } - Detail { - label: qsTr("Duration") - visible: selectionRangeDetails.showDuration - content: selectionRangeDetails.duration - } - } - } - - MouseArea { - width: col.width + 45 - height: col.height + 30 - drag.target: parent - drag.minimumX: 0 - drag.maximumX: root.width - parent.width - drag.minimumY: yoffset - drag.maximumY: root.candidateHeight - parent.height + yoffset - onClicked: { - if ((selectionRange.x < flick.contentX) ^ (selectionRange.x+selectionRange.width > flick.contentX + flick.width)) { - root.recenter(selectionRange.startTime + selectionRange.duration/2); - } - } - } - - Text { - id: closeIcon - x: selectionRangeDetails.width - 14 - y: 4 - text:"X" - color: "white" - MouseArea { - anchors.fill: parent - anchors.leftMargin: -8 - onClicked: { - root.selectionRangeMode = false; - root.updateRangeButton(); - } - } - } - -} diff --git a/plugins/qmlprofiler/qml/TimeDisplay.qml b/plugins/qmlprofiler/qml/TimeDisplay.qml deleted file mode 100644 index 2f5a8bfaaf..0000000000 --- a/plugins/qmlprofiler/qml/TimeDisplay.qml +++ /dev/null @@ -1,140 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -import QtQuick 1.0 -import Monitor 1.0 - -Canvas2D { - id: timeDisplay - - property variant startTime : 0 - property variant endTime : 0 - property variant timePerPixel: 0 - - - Component.onCompleted: { - requestRedraw(); - } - onWidthChanged: { - requestRedraw(); - } - onHeightChanged: { - requestRedraw(); - } - - Connections { - target: zoomControl - onRangeChanged: { - startTime = zoomControl.startTime(); - endTime = zoomControl.endTime(); - requestRedraw(); - } - } - - onDrawRegion: { - ctxt.fillStyle = "white"; - ctxt.fillRect(0, 0, width, height); - - var totalTime = endTime - startTime; - var spacing = width / totalTime; - - var initialBlockLength = 120; - var timePerBlock = Math.pow(2, Math.floor( Math.log( totalTime / width * initialBlockLength ) / Math.LN2 ) ); - var pixelsPerBlock = timePerBlock * spacing; - var pixelsPerSection = pixelsPerBlock / 5; - var blockCount = width / pixelsPerBlock; - - var realStartTime = Math.floor(startTime/timePerBlock) * timePerBlock; - var realStartPos = (startTime-realStartTime) * spacing; - - timePerPixel = timePerBlock/pixelsPerBlock; - - var initialColor = Math.floor(realStartTime/timePerBlock) % 2; - - ctxt.fillStyle = "#000000"; - ctxt.font = "8px sans-serif"; - for (var ii = 0; ii < blockCount+1; ii++) { - var x = Math.floor(ii*pixelsPerBlock - realStartPos); - - ctxt.fillStyle = (ii+initialColor)%2 ? "#E6E6E6":"white"; - ctxt.fillRect(x, 0, pixelsPerBlock, height); - - ctxt.strokeStyle = "#B0B0B0"; - ctxt.beginPath(); - ctxt.moveTo(x, 0); - ctxt.lineTo(x, height); - ctxt.stroke(); - - ctxt.fillStyle = "#000000"; - ctxt.fillText(prettyPrintTime(ii*timePerBlock + realStartTime), x + 5, height/2 + 5); - } - - ctxt.strokeStyle = "#525252"; - ctxt.beginPath(); - ctxt.moveTo(0, height-1); - ctxt.lineTo(width, height-1); - ctxt.stroke(); - - // gradient borders - var gradientDark = "rgba(0, 0, 0, 0.53125)"; - var gradientClear = "rgba(0, 0, 0, 0)"; - var grad = ctxt.createLinearGradient(0, 0, 0, 6); - grad.addColorStop(0,gradientDark); - grad.addColorStop(1,gradientClear); - ctxt.fillStyle = grad; - ctxt.fillRect(0, 0, width, 6); - - grad = ctxt.createLinearGradient(0, 0, 6, 0); - grad.addColorStop(0,gradientDark); - grad.addColorStop(1,gradientClear); - ctxt.fillStyle = grad; - ctxt.fillRect(0, 0, 6, height); - - grad = ctxt.createLinearGradient(width, 0, width-6, 0); - grad.addColorStop(0,gradientDark); - grad.addColorStop(1,gradientClear); - ctxt.fillStyle = grad; - ctxt.fillRect(width-6, 0, 6, height); - } - - function prettyPrintTime( t ) - { - if (t <= 0) return "0"; - if (t<1000) return t+" ns"; - t = t/1000; - if (t<1000) return t+" μs"; - t = Math.floor(t/100)/10; - if (t<1000) return t+" ms"; - t = Math.floor(t)/1000; - if (t<60) return t+" s"; - var m = Math.floor(t/60); - t = Math.floor(t - m*60); - return m+"m"+t+"s"; - } -} diff --git a/plugins/qmlprofiler/qml/TimeMarks.qml b/plugins/qmlprofiler/qml/TimeMarks.qml deleted file mode 100644 index 977e733e20..0000000000 --- a/plugins/qmlprofiler/qml/TimeMarks.qml +++ /dev/null @@ -1,148 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -import QtQuick 1.0 -import Monitor 1.0 - -Canvas2D { - id: timeDisplay - - property variant startTime - property variant endTime - property variant timePerPixel - - Component.onCompleted: { - requestRedraw(); - } - - onWidthChanged: { - requestRedraw(); - } - onHeightChanged: { - requestRedraw(); - } - - Connections { - target: labels - onHeightChanged: { requestRedraw(); } - } - - onDrawRegion: { - drawBackgroundBars( ctxt, region ); - - var totalTime = endTime - startTime; - var spacing = width / totalTime; - - var initialBlockLength = 120; - var timePerBlock = Math.pow(2, Math.floor( Math.log( totalTime / width * initialBlockLength ) / Math.LN2 ) ); - var pixelsPerBlock = timePerBlock * spacing; - var pixelsPerSection = pixelsPerBlock / 5; - var blockCount = width / pixelsPerBlock; - - var realStartTime = Math.floor(startTime/timePerBlock) * timePerBlock; - var realStartPos = (startTime-realStartTime) * spacing; - - timePerPixel = timePerBlock/pixelsPerBlock; - - - ctxt.fillStyle = "#000000"; - ctxt.font = "8px sans-serif"; - for (var ii = 0; ii < blockCount+1; ii++) { - var x = Math.floor(ii*pixelsPerBlock - realStartPos); - ctxt.strokeStyle = "#B0B0B0"; - ctxt.beginPath(); - ctxt.moveTo(x, 0); - ctxt.lineTo(x, height); - ctxt.stroke(); - - ctxt.strokeStyle = "#CCCCCC"; - for (var jj=1; jj < 5; jj++) { - var xx = Math.floor(ii*pixelsPerBlock + jj*pixelsPerSection - realStartPos); - ctxt.beginPath(); - ctxt.moveTo(xx, 0); - ctxt.lineTo(xx, height); - ctxt.stroke(); - } - } - - - // gray off out-of-bounds areas - var rectWidth; - if (startTime < qmlProfilerModelProxy.traceStartTime()) { - ctxt.fillStyle = "rgba(127,127,127,0.2)"; - rectWidth = (qmlProfilerModelProxy.traceStartTime() - startTime) * spacing; - ctxt.fillRect(0, 0, rectWidth, height); - } - if (endTime > qmlProfilerModelProxy.traceEndTime()) { - ctxt.fillStyle = "rgba(127,127,127,0.2)"; - var rectX = (qmlProfilerModelProxy.traceEndTime() - startTime) * spacing; - rectWidth = (endTime - qmlProfilerModelProxy.traceEndTime()) * spacing; - ctxt.fillRect(rectX, 0, rectWidth, height); - } - - } - - function updateMarks(start, end) { - if (startTime !== start || endTime !== end) { - startTime = start; - endTime = end; - requestRedraw(); - } - } - - function drawBackgroundBars( ctxt, region ) { - // TODO: redraw when amount of data changes - var colorIndex = true; - // row background - for (var y=0; y < labels.height; y+= root.singleRowHeight) { - ctxt.fillStyle = colorIndex ? "#f0f0f0" : "white"; - ctxt.strokeStyle = colorIndex ? "#f0f0f0" : "white"; - ctxt.fillRect(0, y, width, root.singleRowHeight); - colorIndex = !colorIndex; - } - - // separators - var cumulatedHeight = 0; - for (var modelIndex = 0; modelIndex < qmlProfilerModelProxy.modelCount(); modelIndex++) { - for (var i=0; i<qmlProfilerModelProxy.categoryCount(modelIndex); i++) { - cumulatedHeight += root.singleRowHeight * qmlProfilerModelProxy.categoryDepth(modelIndex, i); - - ctxt.strokeStyle = "#B0B0B0"; - ctxt.beginPath(); - ctxt.moveTo(0, cumulatedHeight); - ctxt.lineTo(width, cumulatedHeight); - ctxt.stroke(); - } - } - - // bottom - ctxt.fillStyle = "#f5f5f5"; - ctxt.fillRect(0, labels.height, width, height - labels.height); - } -} diff --git a/plugins/qmlprofiler/qml/arrow_down.png b/plugins/qmlprofiler/qml/arrow_down.png Binary files differdeleted file mode 100644 index 94300b5944..0000000000 --- a/plugins/qmlprofiler/qml/arrow_down.png +++ /dev/null diff --git a/plugins/qmlprofiler/qml/arrow_right.png b/plugins/qmlprofiler/qml/arrow_right.png Binary files differdeleted file mode 100644 index e124813da3..0000000000 --- a/plugins/qmlprofiler/qml/arrow_right.png +++ /dev/null diff --git a/plugins/qmlprofiler/qml/clean_pane_small.png b/plugins/qmlprofiler/qml/clean_pane_small.png Binary files differdeleted file mode 100644 index 583b567703..0000000000 --- a/plugins/qmlprofiler/qml/clean_pane_small.png +++ /dev/null diff --git a/plugins/qmlprofiler/qml/dialog_shadow.png b/plugins/qmlprofiler/qml/dialog_shadow.png Binary files differdeleted file mode 100644 index 2d697325c3..0000000000 --- a/plugins/qmlprofiler/qml/dialog_shadow.png +++ /dev/null diff --git a/plugins/qmlprofiler/qml/ico_next.png b/plugins/qmlprofiler/qml/ico_next.png Binary files differdeleted file mode 100644 index dad2f241c2..0000000000 --- a/plugins/qmlprofiler/qml/ico_next.png +++ /dev/null diff --git a/plugins/qmlprofiler/qml/ico_prev.png b/plugins/qmlprofiler/qml/ico_prev.png Binary files differdeleted file mode 100644 index 7794d3d291..0000000000 --- a/plugins/qmlprofiler/qml/ico_prev.png +++ /dev/null diff --git a/plugins/qmlprofiler/qml/ico_rangeselected.png b/plugins/qmlprofiler/qml/ico_rangeselected.png Binary files differdeleted file mode 100644 index c6a422461a..0000000000 --- a/plugins/qmlprofiler/qml/ico_rangeselected.png +++ /dev/null diff --git a/plugins/qmlprofiler/qml/ico_rangeselection.png b/plugins/qmlprofiler/qml/ico_rangeselection.png Binary files differdeleted file mode 100644 index f303a21c8c..0000000000 --- a/plugins/qmlprofiler/qml/ico_rangeselection.png +++ /dev/null diff --git a/plugins/qmlprofiler/qml/ico_selectionmode.png b/plugins/qmlprofiler/qml/ico_selectionmode.png Binary files differdeleted file mode 100644 index ac23d47b26..0000000000 --- a/plugins/qmlprofiler/qml/ico_selectionmode.png +++ /dev/null diff --git a/plugins/qmlprofiler/qml/ico_zoom.png b/plugins/qmlprofiler/qml/ico_zoom.png Binary files differdeleted file mode 100644 index 9235535eaa..0000000000 --- a/plugins/qmlprofiler/qml/ico_zoom.png +++ /dev/null diff --git a/plugins/qmlprofiler/qml/lock_closed.png b/plugins/qmlprofiler/qml/lock_closed.png Binary files differdeleted file mode 100644 index e6f86fa753..0000000000 --- a/plugins/qmlprofiler/qml/lock_closed.png +++ /dev/null diff --git a/plugins/qmlprofiler/qml/lock_open.png b/plugins/qmlprofiler/qml/lock_open.png Binary files differdeleted file mode 100644 index ab6c820dfb..0000000000 --- a/plugins/qmlprofiler/qml/lock_open.png +++ /dev/null diff --git a/plugins/qmlprofiler/qml/qmlprofiler.qrc b/plugins/qmlprofiler/qml/qmlprofiler.qrc deleted file mode 100644 index ab3f8598da..0000000000 --- a/plugins/qmlprofiler/qml/qmlprofiler.qrc +++ /dev/null @@ -1,30 +0,0 @@ -<RCC> - <qresource prefix="/qmlprofiler"> - <file>Detail.qml</file> - <file>Label.qml</file> - <file>MainView.qml</file> - <file>RangeDetails.qml</file> - <file>RangeMover.qml</file> - <file>TimeDisplay.qml</file> - <file>clean_pane_small.png</file> - <file>recordOff.png</file> - <file>recordOn.png</file> - <file>lock_closed.png</file> - <file>lock_open.png</file> - <file>TimeMarks.qml</file> - <file>Overview.qml</file> - <file>Overview.js</file> - <file>SelectionRange.qml</file> - <file>SelectionRangeDetails.qml</file> - <file>arrow_down.png</file> - <file>arrow_right.png</file> - <file>dialog_shadow.png</file> - <file>range_handle.png</file> - <file>ico_selectionmode.png</file> - <file>ico_zoom.png</file> - <file>ico_prev.png</file> - <file>ico_next.png</file> - <file>ico_rangeselection.png</file> - <file>ico_rangeselected.png</file> - </qresource> -</RCC> diff --git a/plugins/qmlprofiler/qml/range_handle.png b/plugins/qmlprofiler/qml/range_handle.png Binary files differdeleted file mode 100644 index f44fb3337f..0000000000 --- a/plugins/qmlprofiler/qml/range_handle.png +++ /dev/null diff --git a/plugins/qmlprofiler/qml/recordOff.png b/plugins/qmlprofiler/qml/recordOff.png Binary files differdeleted file mode 100644 index d50c0183c0..0000000000 --- a/plugins/qmlprofiler/qml/recordOff.png +++ /dev/null diff --git a/plugins/qmlprofiler/qml/recordOn.png b/plugins/qmlprofiler/qml/recordOn.png Binary files differdeleted file mode 100644 index ed5e8912c3..0000000000 --- a/plugins/qmlprofiler/qml/recordOn.png +++ /dev/null |