From 23fabcd8a6c5fd5aee05e804fd42d01ddf4145cb Mon Sep 17 00:00:00 2001 From: arkpar Date: Thu, 5 Feb 2015 16:25:25 +0100 Subject: [PATCH] got rid of flickable in debugger pane --- mix/qml/Debugger.qml | 94 ++++++++++++++++++++++++------------------ mix/qml/js/Debugger.js | 5 ++- 2 files changed, 57 insertions(+), 42 deletions(-) diff --git a/mix/qml/Debugger.qml b/mix/qml/Debugger.qml index 502f3242e..acce5355c 100644 --- a/mix/qml/Debugger.qml +++ b/mix/qml/Debugger.qml @@ -104,18 +104,17 @@ Rectangle { } } - Flickable { + ScrollView { property int firstColumnWidth: 180 property int secondColumnWidth: 250 id: debugScrollArea - flickableDirection: Flickable.VerticalFlick + //flickableDirection: Flickable.VerticalFlick anchors.fill: parent - contentHeight: 4000 - contentWidth: parent.width - Rectangle - { - color: "transparent" - anchors.fill: parent + //contentHeight: 4000 + //width: parent.width + //contentWidth: parent.width + //color: "transparent" + ColumnLayout { property int sideMargin: 10 @@ -124,13 +123,17 @@ Rectangle { anchors.topMargin: 15 anchors.left: parent.left; anchors.leftMargin: machineStates.sideMargin - anchors.right: parent.right; - anchors.rightMargin: machineStates.sideMargin - anchors.fill: parent - Layout.fillWidth: true - Layout.fillHeight: true + width: debugScrollArea.width - machineStates.sideMargin * 2 - 20; + + function updateHeight() { + machineStates.height = transactionLog.childrenRect.height + buttonRow.childrenRect.height + assemblyCodeRow.childrenRect.height + + callStackRect.childrenRect.height + storageRect.childrenRect.height + memoryRect.childrenRect.height + callDataRect.childrenRect.height + 120; + } + + Component.onCompleted: updateHeight(); TransactionLog { + id: transactionLog Layout.fillWidth: true height: 250 } @@ -272,61 +275,74 @@ Rectangle { border.color: "#deddd9" color: "white" anchors.top: parent.top - ListView { + TableView { + id: statesList anchors.fill: parent anchors.leftMargin: 3 anchors.rightMargin: 3 anchors.topMargin: 3 anchors.bottomMargin: 3 clip: true - id: statesList - delegate: renderDelegate - highlight: highlightBar - //highlightFollowsCurrentItem: false + headerDelegate: null + itemDelegate: renderDelegate model: ListModel {} + TableViewColumn { + role: "line" + width: debugScrollArea.firstColumnWidth - 10 + } + } Component { id: highlightBar Rectangle { radius: 4 - height: statesList.currentItem.height - width: statesList.currentItem.width; + anchors.fill: parent y: statesList.currentItem.y color: "#4A90E2" - //Behavior on y { - // PropertyAnimation { properties: "y"; easing.type: Easing.InOutQuad; duration: 50} - //} } } Component { id: renderDelegate + Item { + + Rectangle { + radius: 4 + anchors.fill: parent + color: "#4A90E2" + visible: styleData.selected; + } + RowLayout { id: wrapperItem height: 20 - width: parent.width + //width: parent.width + anchors.fill: parent spacing: 5 + + Text { anchors.left: parent.left anchors.leftMargin: 10 width: 15 color: "#b2b3ae" - text: line.split(' ')[0] + text: styleData.value.split(' ')[0] font.family: "monospace" font.pointSize: 9 - id: id wrapMode: Text.NoWrap + id: id } Text { + anchors.left: id.right; wrapMode: Text.NoWrap - color: parent.ListView.isCurrentItem ? "white" : "black" + color: styleData.selected ? "white" : "black" font.family: "monospace" - text: line.replace(line.split(' ')[0], '') - anchors.left: id.right + text: styleData.value.replace(styleData.value.split(' ')[0], '') font.pointSize: 9 } } + } } } @@ -443,8 +459,6 @@ Rectangle { } orientation: Qt.Vertical - width: debugPanel.width - 2 * machineStates.sideMargin - Rectangle { @@ -454,6 +468,7 @@ Rectangle { width: parent.width Layout.minimumHeight: 120 Layout.maximumHeight: 400 + onHeightChanged: machineStates.updateHeight(); CallStack { anchors.fill: parent id: callStack @@ -461,15 +476,14 @@ Rectangle { } } - Rectangle { id: storageRect color: "transparent" width: parent.width Layout.minimumHeight: 25 - Layout.maximumHeight: 223 - height: 25 + Layout.maximumHeight: 800 + onHeightChanged: machineStates.updateHeight(); DebugInfoList { id: storage @@ -545,10 +559,10 @@ Rectangle { { id: memoryRect; color: "transparent" - height: 25 width: parent.width Layout.minimumHeight: 25 - Layout.maximumHeight: 223 + Layout.maximumHeight: 800 + onHeightChanged: machineStates.updateHeight(); DebugInfoList { id: memoryDump anchors.fill: parent @@ -567,10 +581,10 @@ Rectangle { { id: callDataRect color: "transparent" - height: 25 width: parent.width Layout.minimumHeight: 25 - Layout.maximumHeight: 223 + Layout.maximumHeight: 800 + onHeightChanged: machineStates.updateHeight(); DebugInfoList { id: callDataDump anchors.fill: parent @@ -586,12 +600,12 @@ Rectangle { } Rectangle { + id: bottomRect; width: parent.width - Layout.minimumHeight: 25 + Layout.minimumHeight: 20 color: "transparent" } } } - } } } diff --git a/mix/qml/js/Debugger.js b/mix/qml/js/Debugger.js index de1f87256..96e7a54a2 100644 --- a/mix/qml/js/Debugger.js +++ b/mix/qml/js/Debugger.js @@ -118,8 +118,9 @@ function codeStr(stateIndex) function highlightSelection(index) { - statesList.currentIndex = index; - statesList.positionViewAtIndex(index, ListView.Center); + statesList.positionViewAtRow(index, ListView.Center); + statesList.selection.clear(); + statesList.selection.select(index); } function completeCtxInformation(state)