qml: Initial QML to test QObject property binding, ListModels, Camera
This commit is contained in:
41
electrum/gui/qml/components/EButton.qml
Normal file
41
electrum/gui/qml/components/EButton.qml
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
import QtQuick 2.6
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: rootItem
|
||||||
|
width: visbut.width + 10
|
||||||
|
height: visbut.height + 10
|
||||||
|
|
||||||
|
signal clicked
|
||||||
|
property string text
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: visbut
|
||||||
|
border {
|
||||||
|
color: '#444444'
|
||||||
|
width: 2
|
||||||
|
}
|
||||||
|
color: '#dddddd'
|
||||||
|
radius: 4
|
||||||
|
|
||||||
|
anchors.centerIn: parent
|
||||||
|
width: buttonText.width
|
||||||
|
height: buttonText.height
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: rootItem.clicked()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: buttonText
|
||||||
|
leftPadding: 30
|
||||||
|
rightPadding: 30
|
||||||
|
topPadding: 20
|
||||||
|
bottomPadding: 20
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
text: rootItem.text
|
||||||
|
color: 'red'
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
60
electrum/gui/qml/components/landing.qml
Normal file
60
electrum/gui/qml/components/landing.qml
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
import QtQuick 2.6
|
||||||
|
import QtQuick.Controls 1.4
|
||||||
|
import QtQml 2.6
|
||||||
|
|
||||||
|
Item {
|
||||||
|
Column {
|
||||||
|
width: parent.width
|
||||||
|
|
||||||
|
Row {
|
||||||
|
Text { text: "Server: " }
|
||||||
|
Text { text: Network.server }
|
||||||
|
}
|
||||||
|
Row {
|
||||||
|
Text { text: "Local Height: " }
|
||||||
|
Text { text: Network.height }
|
||||||
|
}
|
||||||
|
Row {
|
||||||
|
Text { text: "Status: " }
|
||||||
|
Text { text: Network.status }
|
||||||
|
}
|
||||||
|
Row {
|
||||||
|
Text { text: "Wallet: " }
|
||||||
|
Text { text: Daemon.walletName }
|
||||||
|
}
|
||||||
|
|
||||||
|
EButton {
|
||||||
|
text: 'Scan QR Code'
|
||||||
|
onClicked: app.stack.push(Qt.resolvedUrl('scan.qml'))
|
||||||
|
}
|
||||||
|
|
||||||
|
EButton {
|
||||||
|
text: 'Show TXen'
|
||||||
|
onClicked: app.stack.push(Qt.resolvedUrl('tx.qml'))
|
||||||
|
}
|
||||||
|
|
||||||
|
ListView {
|
||||||
|
width: parent.width
|
||||||
|
height: 200
|
||||||
|
model: Daemon.activeWallets
|
||||||
|
delegate: Item {
|
||||||
|
width: parent.width
|
||||||
|
|
||||||
|
Row {
|
||||||
|
Rectangle {
|
||||||
|
width: 10
|
||||||
|
height: parent.height
|
||||||
|
color: 'red'
|
||||||
|
}
|
||||||
|
Text {
|
||||||
|
leftPadding: 20
|
||||||
|
text: model.display
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
35
electrum/gui/qml/components/main.qml
Normal file
35
electrum/gui/qml/components/main.qml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
import QtQuick 2.6
|
||||||
|
import QtQuick.Controls 1.4
|
||||||
|
import QtQml 2.6
|
||||||
|
import QtMultimedia 5.6
|
||||||
|
|
||||||
|
ApplicationWindow
|
||||||
|
{
|
||||||
|
id: app
|
||||||
|
visible: true
|
||||||
|
width: 480
|
||||||
|
height: 800
|
||||||
|
color: '#dddddd'
|
||||||
|
|
||||||
|
property alias stack: mainStackView
|
||||||
|
|
||||||
|
StackView {
|
||||||
|
id: mainStackView
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
initialItem: Qt.resolvedUrl('splash.qml')
|
||||||
|
}
|
||||||
|
|
||||||
|
Timer {
|
||||||
|
id: splashTimer
|
||||||
|
interval: 400
|
||||||
|
onTriggered: {
|
||||||
|
mainStackView.push(Qt.resolvedUrl('landing.qml'))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
Daemon.load_wallet()
|
||||||
|
splashTimer.start()
|
||||||
|
}
|
||||||
|
}
|
||||||
58
electrum/gui/qml/components/scan.qml
Normal file
58
electrum/gui/qml/components/scan.qml
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
import QtQuick 2.6
|
||||||
|
import QtMultimedia 5.6
|
||||||
|
|
||||||
|
|
||||||
|
Item {
|
||||||
|
Column {
|
||||||
|
width: parent.width
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: voc
|
||||||
|
width: parent.width
|
||||||
|
height: parent.width
|
||||||
|
|
||||||
|
VideoOutput {
|
||||||
|
id: vo
|
||||||
|
anchors.fill: parent
|
||||||
|
source: camera
|
||||||
|
//fillMode: VideoOutput.PreserveAspectCrop
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
vo.grabToImage(function(result) {
|
||||||
|
console.log("grab: image=" + (result.image !== undefined) + " url=" + result.url)
|
||||||
|
if (result.image !== undefined) {
|
||||||
|
console.log('scanning image for QR')
|
||||||
|
QR.scanImage(result.image)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EButton {
|
||||||
|
text: 'Exit'
|
||||||
|
onClicked: app.stack.pop()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Camera {
|
||||||
|
id: camera
|
||||||
|
deviceId: QtMultimedia.defaultCamera.deviceId
|
||||||
|
viewfinder.resolution: "640x480"
|
||||||
|
|
||||||
|
function dumpstats() {
|
||||||
|
console.log(camera.viewfinder.resolution)
|
||||||
|
console.log(camera.viewfinder.minimumFrameRate)
|
||||||
|
console.log(camera.viewfinder.maximumFrameRate)
|
||||||
|
var resolutions = camera.supportedViewfinderResolutions()
|
||||||
|
resolutions.forEach(function(item, i) {
|
||||||
|
console.log('' + item.width + 'x' + item.height)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
14
electrum/gui/qml/components/splash.qml
Normal file
14
electrum/gui/qml/components/splash.qml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import QtQuick 2.0
|
||||||
|
|
||||||
|
Item {
|
||||||
|
Rectangle {
|
||||||
|
anchors.fill: parent
|
||||||
|
color: '#111111'
|
||||||
|
}
|
||||||
|
|
||||||
|
Image {
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
source: "../../icons/electrum.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
39
electrum/gui/qml/components/tx.qml
Normal file
39
electrum/gui/qml/components/tx.qml
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
import QtQuick 2.6
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: rootItem
|
||||||
|
// height: 800
|
||||||
|
Column {
|
||||||
|
width: parent.width
|
||||||
|
// height: parent.height
|
||||||
|
|
||||||
|
Text {
|
||||||
|
text: "Transactions"
|
||||||
|
}
|
||||||
|
|
||||||
|
ListView {
|
||||||
|
width: parent.width
|
||||||
|
height: 200
|
||||||
|
// anchors.bottom: rootItem.bottom
|
||||||
|
|
||||||
|
model: Daemon.currentWallet.historyModel
|
||||||
|
delegate: Item {
|
||||||
|
width: parent.width
|
||||||
|
height: line.height
|
||||||
|
Row {
|
||||||
|
id: line
|
||||||
|
Rectangle {
|
||||||
|
width: 10
|
||||||
|
height: parent.height
|
||||||
|
color: 'blue'
|
||||||
|
}
|
||||||
|
Text {
|
||||||
|
leftPadding: 20
|
||||||
|
text: model.display
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user