Browse Source

ui changes

cl-refactor
yann300 10 years ago
parent
commit
56f68beb81
  1. 10
      mix/qml/Block.qml
  2. 73
      mix/qml/BlockChain.qml
  3. 37
      mix/qml/ScenarioButton.qml
  4. 121
      mix/qml/ScenarioLoader.qml

10
mix/qml/Block.qml

@ -57,7 +57,6 @@ ColumnLayout
Layout.preferredWidth: blockWidth Layout.preferredWidth: blockWidth
Layout.preferredHeight: trHeight Layout.preferredHeight: trHeight
color: "#DEDCDC" color: "#DEDCDC"
radius: 4
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: statusWidth anchors.leftMargin: statusWidth
Label { Label {
@ -141,13 +140,14 @@ ColumnLayout
color: "transparent" color: "transparent"
anchors.top: parent.top anchors.top: parent.top
property bool saveStatus property bool saveStatus
Image { Image {
anchors.top: parent.top anchors.top: parent.top
anchors.topMargin: -10 anchors.left: parent.left
anchors.leftMargin: -9
anchors.topMargin: -9
id: saveStatusImage id: saveStatusImage
source: "qrc:/qml/img/recyclediscard@2x.png" source: "qrc:/qml/img/recyclediscard@2x.png"
width: statusWidth width: statusWidth + 20
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
} }
@ -206,7 +206,7 @@ ColumnLayout
{ {
anchors.top: parent.top anchors.top: parent.top
Layout.fillWidth: true Layout.fillWidth: true
spacing: cellSpacing //spacing: cellSpacing
Rectangle Rectangle
{ {
Layout.preferredWidth: fromWidth Layout.preferredWidth: fromWidth

73
mix/qml/BlockChain.qml

@ -67,7 +67,7 @@ ColumnLayout {
previousWidth = width previousWidth = width
} }
property int statusWidth: 50 property int statusWidth: 30
property int fromWidth: 150 property int fromWidth: 150
property int toWidth: 100 property int toWidth: 100
property int valueWidth: 200 property int valueWidth: 200
@ -80,14 +80,21 @@ ColumnLayout {
{ {
id: header id: header
spacing: 0 spacing: 0
Layout.preferredHeight: 40 Layout.preferredHeight: 30
Rectangle
{
Layout.preferredWidth: statusWidth
Layout.preferredHeight: parent.height
color: "transparent"
Image { Image {
id: debugImage id: debugImage
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
source: "qrc:/qml/img/recycleicon@2x.png" source: "qrc:/qml/img/recycleicon@2x.png"
Layout.preferredWidth: statusWidth width: statusWidth + 20
Layout.preferredHeight: parent.height
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
} }
}
Rectangle Rectangle
{ {
Layout.preferredWidth: fromWidth + cellSpacing Layout.preferredWidth: fromWidth + cellSpacing
@ -96,7 +103,7 @@ ColumnLayout {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: "From" text: "From"
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: horizontalMargin + 5 anchors.leftMargin: horizontalMargin
} }
} }
Label Label
@ -243,13 +250,22 @@ ColumnLayout {
Layout.preferredWidth: parent.width Layout.preferredWidth: parent.width
RowLayout RowLayout
{ {
width: 4 * 100 anchors.horizontalCenter: parent.horizontalCenter
anchors.top: parent.top anchors.top: parent.top
anchors.topMargin: 10 anchors.topMargin: 10
spacing: 0 spacing: 20
Rectangle {
Layout.preferredWidth: 100
Layout.preferredHeight: 30
ScenarioButton { ScenarioButton {
id: rebuild id: rebuild
text: qsTr("Rebuild") text: qsTr("Rebuild")
width: 100
height: 30
roundLeft: true
roundRight: true
onClicked: onClicked:
{ {
if (ensureNotFuturetime.running) if (ensureNotFuturetime.running)
@ -302,18 +318,21 @@ ColumnLayout {
ensureNotFuturetime.start() ensureNotFuturetime.start()
clientModel.setupScenario(model); clientModel.setupScenario(model);
} }
Layout.preferredWidth: 100
Layout.preferredHeight: 30
buttonShortcut: "" buttonShortcut: ""
sourceImg: "qrc:/qml/img/recycleicon@2x.png" sourceImg: "qrc:/qml/img/recycleicon@2x.png"
}
}
} Rectangle
{
Layout.preferredWidth: 200
Layout.preferredHeight: 30
color: "transparent"
ScenarioButton { ScenarioButton {
id: addTransaction id: addTransaction
text: qsTr("Add Transaction") text: qsTr("Add Tx")
onClicked: onClicked:
{ {
var lastBlock = model.blocks[model.blocks.length - 1]; var lastBlock = model.blocks[model.blocks.length - 1];
@ -329,10 +348,12 @@ ColumnLayout {
transactionDialog.execute = true transactionDialog.execute = true
transactionDialog.open(model.blocks[model.blocks.length - 1].transactions.length, model.blocks.length - 1, item) transactionDialog.open(model.blocks[model.blocks.length - 1].transactions.length, model.blocks.length - 1, item)
} }
Layout.preferredWidth: 100 width: 100
Layout.preferredHeight: 30 height: 30
buttonShortcut: "" buttonShortcut: ""
sourceImg: "qrc:/qml/img/sendtransactionicon@2x.png" sourceImg: "qrc:/qml/img/sendtransactionicon@2x.png"
roundLeft: true
roundRight: false
} }
Timer Timer
@ -343,9 +364,20 @@ ColumnLayout {
running: false running: false
} }
Rectangle
{
width: 1
height: parent.height
anchors.right: addBlockBtn.left
color: "#ededed"
}
ScenarioButton { ScenarioButton {
id: addBlockBtn id: addBlockBtn
text: qsTr("Add Block") text: qsTr("Add Block..")
anchors.left: addTransaction.right
roundLeft: false
roundRight: true
onClicked: onClicked:
{ {
if (ensureNotFuturetime.running) if (ensureNotFuturetime.running)
@ -374,11 +406,14 @@ ColumnLayout {
model.blocks.push(block) model.blocks.push(block)
blockModel.appendBlock(block) blockModel.appendBlock(block)
} }
Layout.preferredWidth: 100 width: 100
Layout.preferredHeight: 30 height: 30
buttonShortcut: "" buttonShortcut: ""
sourceImg: "qrc:/qml/img/addblock@2x.png" sourceImg: "qrc:/qml/img/addblock@2x.png"
} }
}
Connections Connections
{ {
@ -447,7 +482,7 @@ ColumnLayout {
ScenarioButton { ScenarioButton {
id: newAccount id: newAccount
text: qsTr("New Account") text: qsTr("New Account..")
onClicked: { onClicked: {
model.accounts.push(projectModel.stateListModel.newAccount("1000000", QEther.Ether)) model.accounts.push(projectModel.stateListModel.newAccount("1000000", QEther.Ether))
} }
@ -455,6 +490,8 @@ ColumnLayout {
Layout.preferredHeight: 30 Layout.preferredHeight: 30
buttonShortcut: "" buttonShortcut: ""
sourceImg: "qrc:/qml/img/newaccounticon@2x.png" sourceImg: "qrc:/qml/img/newaccounticon@2x.png"
roundLeft: true
roundRight: true
} }
} }
} }

37
mix/qml/ScenarioButton.qml

@ -2,6 +2,7 @@ import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 1.1
import QtQuick.Layouts 1.0 import QtQuick.Layouts 1.0
import QtQuick.Controls.Styles 1.1 import QtQuick.Controls.Styles 1.1
import QtGraphicalEffects 1.0
Rectangle { Rectangle {
id: buttonActionContainer id: buttonActionContainer
@ -9,6 +10,8 @@ Rectangle {
property string buttonShortcut property string buttonShortcut
property string sourceImg property string sourceImg
property string fillColor property string fillColor
property alias roundLeft: left.visible
property alias roundRight: right.visible
signal clicked signal clicked
function startBlinking() function startBlinking()
@ -22,12 +25,19 @@ Rectangle {
blinkTimer.stop() blinkTimer.stop()
} }
Rectangle
{
id: left
width: 10
height: parent.height
anchors.left: parent.left
anchors.leftMargin: -8
radius: 15
}
Rectangle { Rectangle {
id: contentRectangle id: contentRectangle
anchors.fill: parent anchors.fill: parent
border.color: "#cccccc"
border.width: 1
radius: 4
color: "white" color: "white"
property variant colorGradient: ["#FFFFFF", "#FFFEFC", "#FFFDF9", "#FFFCF7", "#FFFBF4", "#FFFAF2", "#FFF9EF", "#FFF8EC", "#FFF7EA", "#FFF6E7", "#FFF5E5", "#FFF5E2", "#FFF4E0", "#FFF3DD", "#FFF2DA", "#FFF1D8", "#FFF0D5", "#FFEFD3", "#FFEED0", "#FFEDCE", "#FFECCB", "#FFEBC8", "#FFEBC6", "#FFEAC3", "#FFE9C1", "#FFE8BE", "#FFE7BC", "#FFE6B9", "#FFE5B6", "#FFE4B4", "#FFE3B1", "#FFE2AF", "#FFE1AC", "#FFE1AA", "#FFE0A7", "#FFDFA4", "#FFDEA2", "#FFDD9F", "#FFDC9D", "#FFDB9A", "#FFDA97", "#FFD995", "#FFD892", "#FFD790", "#FFD78D", "#FFD68B", "#FFD588", "#FFD485", "#FFD383", "#FFD280", "#FFD17E", "#FFD07B", "#FFCF79", "#FFCE76", "#FFCD73", "#FFCD71", "#FFCC6E", "#FFCB6C", "#FFCA69", "#FFC967", "#FFC864", "#FFC761", "#FFC65F", "#FFC55C", "#FFC45A", "#FFC357", "#FFC355", "#FFC252", "#FFC14F", "#FFC04D", "#FFBF4A", "#FFBE48", "#FFBD45", "#FFBC42", "#FFBB40", "#FFBA3D", "#FFB93B", "#FFB938", "#FFB836", "#FFB733", "#FFB630", "#FFB52E", "#FFB42B", "#FFB329", "#FFB226", "#FFB124", "#FFB021", "#FFAF1E", "#FFAF1C", "#FFAE19", "#FFAD17", "#FFAC14", "#FFAB12", "#FFAA0F", "#FFA90C", "#FFA80A", "#FFA707", "#FFA605", "#FFA502", "#FFA500"] property variant colorGradient: ["#FFFFFF", "#FFFEFC", "#FFFDF9", "#FFFCF7", "#FFFBF4", "#FFFAF2", "#FFF9EF", "#FFF8EC", "#FFF7EA", "#FFF6E7", "#FFF5E5", "#FFF5E2", "#FFF4E0", "#FFF3DD", "#FFF2DA", "#FFF1D8", "#FFF0D5", "#FFEFD3", "#FFEED0", "#FFEDCE", "#FFECCB", "#FFEBC8", "#FFEBC6", "#FFEAC3", "#FFE9C1", "#FFE8BE", "#FFE7BC", "#FFE6B9", "#FFE5B6", "#FFE4B4", "#FFE3B1", "#FFE2AF", "#FFE1AC", "#FFE1AA", "#FFE0A7", "#FFDFA4", "#FFDEA2", "#FFDD9F", "#FFDC9D", "#FFDB9A", "#FFDA97", "#FFD995", "#FFD892", "#FFD790", "#FFD78D", "#FFD68B", "#FFD588", "#FFD485", "#FFD383", "#FFD280", "#FFD17E", "#FFD07B", "#FFCF79", "#FFCE76", "#FFCD73", "#FFCD71", "#FFCC6E", "#FFCB6C", "#FFCA69", "#FFC967", "#FFC864", "#FFC761", "#FFC65F", "#FFC55C", "#FFC45A", "#FFC357", "#FFC355", "#FFC252", "#FFC14F", "#FFC04D", "#FFBF4A", "#FFBE48", "#FFBD45", "#FFBC42", "#FFBB40", "#FFBA3D", "#FFB93B", "#FFB938", "#FFB836", "#FFB733", "#FFB630", "#FFB52E", "#FFB42B", "#FFB329", "#FFB226", "#FFB124", "#FFB021", "#FFAF1E", "#FFAF1C", "#FFAE19", "#FFAD17", "#FFAC14", "#FFAB12", "#FFAA0F", "#FFA90C", "#FFA80A", "#FFA707", "#FFA605", "#FFA502", "#FFA500"]
@ -41,6 +51,9 @@ Rectangle {
property int direction: 1 property int direction: 1
onTriggered: { onTriggered: {
index = index + direction index = index + direction
var color = parent.colorGradient[index]
left.color = color
right.color = color
parent.color = parent.colorGradient[index] parent.color = parent.colorGradient[index]
if (index >= parent.colorGradient.length - 1) if (index >= parent.colorGradient.length - 1)
direction = -1 direction = -1
@ -50,6 +63,8 @@ Rectangle {
onRunningChanged: { onRunningChanged: {
if (!running) if (!running)
{ {
left.color = "white"
right.color = "white"
parent.color = "white" parent.color = "white"
index = 0 index = 0
direction = 1 direction = 1
@ -57,7 +72,6 @@ Rectangle {
} }
} }
Image { Image {
id: debugImage id: debugImage
anchors { anchors {
@ -65,12 +79,11 @@ Rectangle {
right: parent.right right: parent.right
top: parent.top top: parent.top
bottom: parent.bottom bottom: parent.bottom
bottomMargin: debugImg.pressed ? 0 : 2; bottomMargin: debugImg.pressed ? -2 : 0;
topMargin: debugImg.pressed ? 2 : 0; topMargin: debugImg.pressed ? 2 : 0;
} }
source: sourceImg source: sourceImg
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
height: 30
} }
Button { Button {
@ -93,12 +106,22 @@ Rectangle {
} }
} }
Rectangle
{
id: right
width: 10
height: parent.height
anchors.left: contentRectangle.right
anchors.leftMargin: -8
radius: 15
}
Rectangle Rectangle
{ {
anchors.top: contentRectangle.bottom anchors.top: contentRectangle.bottom
anchors.topMargin: 15 anchors.topMargin: 15
width: parent.width width: parent.width
Text Label
{ {
text: buttonActionContainer.text text: buttonActionContainer.text
anchors.centerIn: parent anchors.centerIn: parent

121
mix/qml/ScenarioLoader.qml

@ -39,11 +39,12 @@ ColumnLayout
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
color: "transparent" color: "transparent"
Text Label
{ {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
id: scenarioName id: scenarioName
font.bold: true
} }
TextInput TextInput
@ -135,7 +136,8 @@ ColumnLayout
RowLayout RowLayout
{ {
Layout.fillWidth: true Layout.preferredWidth: 560
anchors.horizontalCenter: parent.horizontalCenter
Layout.preferredHeight: 50 Layout.preferredHeight: 50
spacing: 0 spacing: 0
@ -143,14 +145,28 @@ ColumnLayout
{ {
Layout.preferredWidth: 100 * 5 Layout.preferredWidth: 100 * 5
Layout.preferredHeight: 50 Layout.preferredHeight: 50
spacing: 0 spacing: 15
Rectangle
{
color: "transparent"
width: 251
height: 30
Rectangle
{
width: 10
height: parent.height
anchors.right: scenarioList.left
anchors.rightMargin: -8
radius: 15
}
ComboBox ComboBox
{ {
id: scenarioList id: scenarioList
model: projectModel.stateListModel model: projectModel.stateListModel
textRole: "title" textRole: "title"
height: 30 height: parent.height
width: 150 width: 150
onCurrentIndexChanged: onCurrentIndexChanged:
{ {
@ -166,15 +182,12 @@ ColumnLayout
style: ComboBoxStyle { style: ComboBoxStyle {
background: Rectangle { background: Rectangle {
color: "white" color: "white"
border.color: "#cccccc"
border.width: 1
radius: 4
anchors.fill: parent anchors.fill: parent
} }
label: Rectangle { label: Rectangle {
anchors.fill: parent anchors.fill: parent
color: "white" color: "white"
Text { Label {
id: comboLabel id: comboLabel
maximumLineCount: 1 maximumLineCount: 1
elide: Text.ElideRight elide: Text.ElideRight
@ -201,10 +214,55 @@ ColumnLayout
} }
} }
Rectangle
{
width: 1
height: parent.height
anchors.right: addScenario.left
color: "#ededed"
}
ScenarioButton { ScenarioButton {
id: restoreScenario id: addScenario
anchors.left: scenarioList.right
width: 100 width: 100
height: parent.height
buttonShortcut: ""
sourceImg: "qrc:/qml/img/restoreicon@2x.png"
onClicked: {
var item = projectModel.stateListModel.createDefaultState();
item.title = qsTr("New Scenario")
projectModel.stateListModel.appendState(item)
projectModel.stateListModel.save()
scenarioList.currentIndex = projectModel.stateListModel.count - 1
scenarioNameEdit.edit()
}
text: qsTr("New..")
roundRight: true
roundLeft: false
}
}
Rectangle
{
width: 100 * 3
height: 30 height: 30
color: "transparent"
Rectangle
{
width: 10
height: parent.height
anchors.right: restoreScenario.left
anchors.rightMargin: -4
radius: 15
}
ScenarioButton {
id: restoreScenario
width: 100
height: parent.height
buttonShortcut: "" buttonShortcut: ""
sourceImg: "qrc:/qml/img/restoreicon@2x.png" sourceImg: "qrc:/qml/img/restoreicon@2x.png"
onClicked: { onClicked: {
@ -221,50 +279,59 @@ ColumnLayout
loaded(state) loaded(state)
} }
} }
roundRight: false
roundLeft: true
}
Rectangle
{
width: 1
height: parent.height
anchors.right: saveScenario.left
color: "#ededed"
} }
ScenarioButton { ScenarioButton {
id: saveScenario id: saveScenario
anchors.left: restoreScenario.right
text: qsTr("Save") text: qsTr("Save")
onClicked: { onClicked: {
projectModel.saveProjectFile() projectModel.saveProjectFile()
saved(state) saved(state)
} }
width: 100 width: 100
height: 30 height: parent.height
buttonShortcut: "" buttonShortcut: ""
sourceImg: "qrc:/qml/img/saveicon@2x.png" sourceImg: "qrc:/qml/img/saveicon@2x.png"
roundRight: false
roundLeft: false
}
Rectangle
{
width: 1
height: parent.height
anchors.right: duplicateScenario.left
color: "#ededed"
} }
ScenarioButton ScenarioButton
{ {
id: duplicateScenario id: duplicateScenario
anchors.left: saveScenario.right
text: qsTr("Duplicate") text: qsTr("Duplicate")
onClicked: { onClicked: {
projectModel.stateListModel.duplicateState(scenarioList.currentIndex) projectModel.stateListModel.duplicateState(scenarioList.currentIndex)
duplicated(state) duplicated(state)
} }
width: 100 width: 100
height: 30 height: parent.height
buttonShortcut: "" buttonShortcut: ""
sourceImg: "qrc:/qml/img/duplicateicon@2x.png" sourceImg: "qrc:/qml/img/duplicateicon@2x.png"
roundRight: true
roundLeft: false
} }
ScenarioButton {
id: addScenario
width: 100
height: 30
buttonShortcut: ""
sourceImg: "qrc:/qml/img/plus.png"
onClicked: {
var item = projectModel.stateListModel.createDefaultState();
item.title = qsTr("New Scenario")
projectModel.stateListModel.appendState(item)
projectModel.stateListModel.save()
scenarioList.currentIndex = projectModel.stateListModel.count - 1
scenarioNameEdit.edit()
}
text: qsTr("New")
} }
} }
} }

Loading…
Cancel
Save