You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
292 lines
4.9 KiB
292 lines
4.9 KiB
import QtQuick 2.0
|
|
import QtQuick.Layouts 1.0
|
|
import QtQuick.Controls 1.1
|
|
import QtQuick.Controls.Styles 1.3
|
|
|
|
Rectangle {
|
|
anchors.fill: parent
|
|
color: "white"
|
|
property var worker
|
|
property variant sel
|
|
signal selected(string step)
|
|
id: root
|
|
|
|
function refreshCurrent()
|
|
{
|
|
menu.itemAt(sel).select()
|
|
}
|
|
|
|
function init()
|
|
{
|
|
menu.itemAt(0).select()
|
|
}
|
|
|
|
function itemClicked(step)
|
|
{
|
|
selected(step)
|
|
}
|
|
|
|
function reset()
|
|
{
|
|
for (var k in deployLogs.logs)
|
|
{
|
|
deployLogs.logs[k] = ""
|
|
}
|
|
deployLogs.switchLogs()
|
|
refreshCurrent()
|
|
}
|
|
|
|
border.color: "#cccccc"
|
|
border.width: 1
|
|
|
|
|
|
Connections
|
|
{
|
|
id: deployStatus
|
|
target: deploymentDialog.deployStep
|
|
onDeployed:
|
|
{
|
|
console.log("deployed")
|
|
}
|
|
}
|
|
|
|
Connections
|
|
{
|
|
id: packagedStatus
|
|
target: deploymentDialog.packageStep
|
|
onPackaged:
|
|
{
|
|
console.log("packaged")
|
|
}
|
|
}
|
|
|
|
Connections
|
|
{
|
|
id: registerStatus
|
|
target: deploymentDialog.registerStep
|
|
onRegistered:
|
|
{
|
|
console.log("registered")
|
|
}
|
|
}
|
|
|
|
ColumnLayout
|
|
{
|
|
anchors.fill: parent
|
|
anchors.margins: 1
|
|
spacing: 0
|
|
Repeater
|
|
{
|
|
id: menu
|
|
model: [
|
|
{
|
|
step: 1,
|
|
type:"deploy",
|
|
label: qsTr("Deploy contracts")
|
|
},
|
|
{
|
|
step: 2,
|
|
type:"package",
|
|
label: qsTr("Package Dapp")
|
|
},
|
|
{
|
|
step: 3,
|
|
type:"register",
|
|
label: qsTr("Register Dapp")
|
|
}
|
|
]
|
|
|
|
Rectangle
|
|
{
|
|
Layout.preferredHeight: 50
|
|
Layout.fillWidth: true
|
|
color: "white"
|
|
id: itemContainer
|
|
|
|
function select()
|
|
{
|
|
if (sel !== undefined)
|
|
{
|
|
menu.itemAt(sel).unselect()
|
|
}
|
|
labelContainer.state = "selected"
|
|
sel = index
|
|
itemClicked(menu.model[index].type)
|
|
deployLogs.switchLogs()
|
|
}
|
|
|
|
function unselect()
|
|
{
|
|
labelContainer.state = ""
|
|
}
|
|
|
|
Rectangle {
|
|
width: 40
|
|
height: 40
|
|
color: "transparent"
|
|
border.color: "#cccccc"
|
|
border.width: 2
|
|
radius: width*0.5
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: 10
|
|
id: labelContainer
|
|
Label
|
|
{
|
|
color: "#cccccc"
|
|
id: label
|
|
anchors.centerIn: parent
|
|
text: menu.model[index].step
|
|
}
|
|
states: [
|
|
State {
|
|
name: "selected"
|
|
PropertyChanges { target: label; color: "white" }
|
|
PropertyChanges { target: labelContainer.border; color: "white" }
|
|
PropertyChanges { target: detail; color: "white" }
|
|
PropertyChanges { target: itemContainer; color: "#3395FE" }
|
|
}
|
|
]
|
|
}
|
|
|
|
Rectangle
|
|
{
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
anchors.left: label.parent.right
|
|
width: parent.width - 40
|
|
height: 40
|
|
color: "transparent"
|
|
Label
|
|
{
|
|
id: detail
|
|
color: "black"
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: 10
|
|
text: menu.model[index].label
|
|
}
|
|
}
|
|
|
|
MouseArea
|
|
{
|
|
anchors.fill: parent
|
|
onClicked:
|
|
{
|
|
itemContainer.select()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Connections {
|
|
property var logs: ({})
|
|
id: deployLogs
|
|
|
|
function switchLogs()
|
|
{
|
|
if (root.sel)
|
|
{
|
|
if (!logs[root.sel])
|
|
logs[root.sel] = ""
|
|
log.text = logs[root.sel]
|
|
}
|
|
}
|
|
|
|
target: projectModel
|
|
onDeploymentStarted:
|
|
{
|
|
if (!logs[root.sel])
|
|
logs[root.sel] = ""
|
|
logs[root.sel] = logs[root.sel] + qsTr("Running deployment...") + "\n"
|
|
log.text = logs[root.sel]
|
|
}
|
|
|
|
onDeploymentError:
|
|
{
|
|
if (!logs[root.sel])
|
|
logs[root.sel] = ""
|
|
logs[root.sel] = logs[root.sel] + error + "\n"
|
|
log.text = logs[root.sel]
|
|
}
|
|
|
|
onDeploymentComplete:
|
|
{
|
|
if (!logs[root.sel])
|
|
logs[root.sel] = ""
|
|
logs[root.sel] = logs[root.sel] + qsTr("Deployment complete") + "\n"
|
|
log.text = logs[root.sel]
|
|
}
|
|
|
|
onDeploymentStepChanged:
|
|
{
|
|
if (!logs[root.sel])
|
|
logs[root.sel] = ""
|
|
logs[root.sel] = logs[root.sel] + message + "\n"
|
|
log.text = logs[root.sel]
|
|
}
|
|
}
|
|
|
|
Rectangle
|
|
{
|
|
Layout.fillWidth: true
|
|
Layout.preferredHeight: 2
|
|
color: "#cccccc"
|
|
}
|
|
|
|
ScrollView
|
|
{
|
|
Layout.fillHeight: true
|
|
Layout.fillWidth: true
|
|
Text
|
|
{
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: 2
|
|
font.pointSize: 9
|
|
font.italic: true
|
|
id: log
|
|
}
|
|
}
|
|
|
|
Rectangle
|
|
{
|
|
Layout.preferredHeight: 20
|
|
Layout.fillWidth: true
|
|
color: "#cccccc"
|
|
LogsPaneStyle
|
|
{
|
|
id: style
|
|
}
|
|
|
|
Label
|
|
{
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
text: qsTr("Logs")
|
|
font.italic: true
|
|
font.pointSize: style.absoluteSize(-1)
|
|
}
|
|
|
|
Button
|
|
{
|
|
height: 20
|
|
width: 20
|
|
anchors.right: parent.right
|
|
action: clearAction
|
|
iconSource: "qrc:/qml/img/cleariconactive.png"
|
|
tooltip: qsTr("Clear Messages")
|
|
}
|
|
|
|
Action {
|
|
id: clearAction
|
|
enabled: log.text !== ""
|
|
tooltip: qsTr("Clear")
|
|
onTriggered: {
|
|
deployLogs.logs[root.sel] = ""
|
|
log.text = deployLogs.logs[root.sel]
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|