mirror of
https://github.com/monero-project/monero-gui.git
synced 2024-11-17 08:17:59 +00:00
ios build settings
This commit is contained in:
parent
da6aad33a4
commit
2e53c524a1
20 changed files with 505 additions and 371 deletions
|
@ -67,11 +67,12 @@ Rectangle {
|
||||||
menuColumn.previousButton.checked = true
|
menuColumn.previousButton.checked = true
|
||||||
}
|
}
|
||||||
|
|
||||||
width: 260
|
width: (isMobile)? appWindow.width : 260
|
||||||
color: "#FFFFFF"
|
color: "#FFFFFF"
|
||||||
|
|
||||||
// Item with monero logo
|
// Item with monero logo
|
||||||
Item {
|
Item {
|
||||||
|
visible: !isMobile
|
||||||
id: logoItem
|
id: logoItem
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
@ -115,7 +116,9 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
|
visible: !isMobile
|
||||||
id: column1
|
id: column1
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
@ -124,6 +127,7 @@ Rectangle {
|
||||||
spacing: 5
|
spacing: 5
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
|
visible: !isMobile
|
||||||
id: balanceLabel
|
id: balanceLabel
|
||||||
text: qsTr("Balance") + translationManager.emptyString
|
text: qsTr("Balance") + translationManager.emptyString
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
|
@ -132,6 +136,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
|
visible: !isMobile
|
||||||
Item {
|
Item {
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
height: 26
|
height: 26
|
||||||
|
@ -144,6 +149,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
|
visible: !isMobile
|
||||||
id: balanceText
|
id: balanceText
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
font.family: "Arial"
|
font.family: "Arial"
|
||||||
|
@ -194,6 +200,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
|
@ -210,16 +217,26 @@ Rectangle {
|
||||||
color: "#DBDBDB"
|
color: "#DBDBDB"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: menuRect
|
id: menuRect
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
anchors.top: column1.bottom
|
anchors.top: (isMobile)? parent.top : column1.bottom
|
||||||
anchors.topMargin: 25
|
anchors.topMargin: (isMobile)? 0 : 25
|
||||||
color: "#1C1C1C"
|
color: "#1C1C1C"
|
||||||
|
|
||||||
|
|
||||||
|
Flickable {
|
||||||
|
contentHeight: 500
|
||||||
|
anchors.fill: parent
|
||||||
|
clip: true
|
||||||
|
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
|
|
||||||
id: menuColumn
|
id: menuColumn
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
@ -463,6 +480,8 @@ Rectangle {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
NetworkStatusItem {
|
NetworkStatusItem {
|
||||||
id: networkStatus
|
id: networkStatus
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
|
@ -478,6 +497,9 @@ Rectangle {
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// indicate disabled state
|
// indicate disabled state
|
||||||
// Desaturate {
|
// Desaturate {
|
||||||
// anchors.fill: parent
|
// anchors.fill: parent
|
||||||
|
|
172
MiddlePanel.qml
172
MiddlePanel.qml
|
@ -29,6 +29,7 @@
|
||||||
|
|
||||||
import QtQml 2.0
|
import QtQml 2.0
|
||||||
import QtQuick 2.2
|
import QtQuick 2.2
|
||||||
|
import QtQuick.Controls 2.0
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 1.4
|
||||||
import QtQuick.Layouts 1.1
|
import QtQuick.Layouts 1.1
|
||||||
import QtGraphicalEffects 1.0
|
import QtGraphicalEffects 1.0
|
||||||
|
@ -41,11 +42,13 @@ Rectangle {
|
||||||
|
|
||||||
property Item currentView
|
property Item currentView
|
||||||
property Item previousView
|
property Item previousView
|
||||||
property bool basicMode : false
|
property bool basicMode : isMobile
|
||||||
property string balanceLabelText: qsTr("Balance") + translationManager.emptyString
|
property string balanceLabelText: qsTr("Balance") + translationManager.emptyString
|
||||||
property string balanceText
|
property string balanceText
|
||||||
property string unlockedBalanceLabelText: qsTr("Unlocked Balance") + translationManager.emptyString
|
property string unlockedBalanceLabelText: qsTr("Unlocked Balance") + translationManager.emptyString
|
||||||
property string unlockedBalanceText
|
property string unlockedBalanceText
|
||||||
|
property int minHeight: 800
|
||||||
|
// property int headerHeight: header.height
|
||||||
|
|
||||||
property Transfer transferView: Transfer { }
|
property Transfer transferView: Transfer { }
|
||||||
property Receive receiveView: Receive { }
|
property Receive receiveView: Receive { }
|
||||||
|
@ -73,7 +76,6 @@ Rectangle {
|
||||||
previousView = currentView
|
previousView = currentView
|
||||||
if (currentView) {
|
if (currentView) {
|
||||||
stackView.replace(currentView)
|
stackView.replace(currentView)
|
||||||
|
|
||||||
// Component.onCompleted is called before wallet is initilized
|
// Component.onCompleted is called before wallet is initilized
|
||||||
if (typeof currentView.onPageCompleted === "function") {
|
if (typeof currentView.onPageCompleted === "function") {
|
||||||
currentView.onPageCompleted();
|
currentView.onPageCompleted();
|
||||||
|
@ -126,27 +128,35 @@ Rectangle {
|
||||||
name: "History"
|
name: "History"
|
||||||
PropertyChanges { target: root; currentView: historyView }
|
PropertyChanges { target: root; currentView: historyView }
|
||||||
PropertyChanges { target: historyView; model: appWindow.currentWallet ? appWindow.currentWallet.historyModel : null }
|
PropertyChanges { target: historyView; model: appWindow.currentWallet ? appWindow.currentWallet.historyModel : null }
|
||||||
|
PropertyChanges { target: mainFlickable; contentHeight: minHeight }
|
||||||
}, State {
|
}, State {
|
||||||
name: "Transfer"
|
name: "Transfer"
|
||||||
PropertyChanges { target: root; currentView: transferView }
|
PropertyChanges { target: root; currentView: transferView }
|
||||||
|
PropertyChanges { target: mainFlickable; contentHeight: 1000 }
|
||||||
}, State {
|
}, State {
|
||||||
name: "Receive"
|
name: "Receive"
|
||||||
PropertyChanges { target: root; currentView: receiveView }
|
PropertyChanges { target: root; currentView: receiveView }
|
||||||
|
PropertyChanges { target: mainFlickable; contentHeight: minHeight }
|
||||||
}, State {
|
}, State {
|
||||||
name: "TxKey"
|
name: "TxKey"
|
||||||
PropertyChanges { target: root; currentView: txkeyView }
|
PropertyChanges { target: root; currentView: txkeyView }
|
||||||
|
PropertyChanges { target: mainFlickable; contentHeight: minHeight }
|
||||||
}, State {
|
}, State {
|
||||||
name: "AddressBook"
|
name: "AddressBook"
|
||||||
PropertyChanges { target: root; currentView: addressBookView }
|
PropertyChanges { target: root; currentView: addressBookView }
|
||||||
|
PropertyChanges { target: mainFlickable; contentHeight: minHeight }
|
||||||
}, State {
|
}, State {
|
||||||
name: "Sign"
|
name: "Sign"
|
||||||
PropertyChanges { target: root; currentView: signView }
|
PropertyChanges { target: root; currentView: signView }
|
||||||
|
PropertyChanges { target: mainFlickable; contentHeight: minHeight }
|
||||||
}, State {
|
}, State {
|
||||||
name: "Settings"
|
name: "Settings"
|
||||||
PropertyChanges { target: root; currentView: settingsView }
|
PropertyChanges { target: root; currentView: settingsView }
|
||||||
|
PropertyChanges { target: mainFlickable; contentHeight: 1200 }
|
||||||
}, State {
|
}, State {
|
||||||
name: "Mining"
|
name: "Mining"
|
||||||
PropertyChanges { target: root; currentView: miningView }
|
PropertyChanges { target: root; currentView: miningView }
|
||||||
|
PropertyChanges { target: mainFlickable; contentHeight: minHeight }
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -172,136 +182,46 @@ Rectangle {
|
||||||
anchors.topMargin: appWindow.persistentSettings.customDecorations ? 30 : 0
|
anchors.topMargin: appWindow.persistentSettings.customDecorations ? 30 : 0
|
||||||
spacing: 0
|
spacing: 0
|
||||||
|
|
||||||
|
Flickable {
|
||||||
// BasicPanel header
|
id: mainFlickable
|
||||||
Rectangle {
|
|
||||||
id: header
|
|
||||||
anchors.leftMargin: 1
|
|
||||||
anchors.rightMargin: 1
|
|
||||||
Layout.fillWidth: true
|
|
||||||
Layout.preferredHeight: 64
|
|
||||||
color: "#FFFFFF"
|
|
||||||
visible: basicMode
|
|
||||||
|
|
||||||
Image {
|
|
||||||
id: logo
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
anchors.verticalCenterOffset: -5
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.leftMargin: appWindow.persistentSettings.customDecorations ? 20 : 40
|
|
||||||
source: "images/moneroLogo2.png"
|
|
||||||
}
|
|
||||||
|
|
||||||
Grid {
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
anchors.top: parent.top
|
|
||||||
anchors.right: parent.right
|
|
||||||
anchors.topMargin: 10
|
|
||||||
width: 256
|
|
||||||
columns: 3
|
|
||||||
|
|
||||||
Text {
|
|
||||||
id: balanceLabel
|
|
||||||
width: 116
|
|
||||||
height: 20
|
|
||||||
font.family: "Arial"
|
|
||||||
font.pixelSize: 12
|
|
||||||
elide: Text.ElideRight
|
|
||||||
horizontalAlignment: Text.AlignLeft
|
|
||||||
verticalAlignment: Text.AlignBottom
|
|
||||||
color: "#535353"
|
|
||||||
text: root.balanceLabelText + ":"
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
|
||||||
id: balanceText
|
|
||||||
width: 110
|
|
||||||
height: 20
|
|
||||||
font.family: "Arial"
|
|
||||||
font.pixelSize: 18
|
|
||||||
elide: Text.ElideRight
|
|
||||||
horizontalAlignment: Text.AlignLeft
|
|
||||||
verticalAlignment: Text.AlignBottom
|
|
||||||
color: "#000000"
|
|
||||||
text: root.balanceText
|
|
||||||
}
|
|
||||||
|
|
||||||
Item {
|
|
||||||
height: 20
|
|
||||||
width: 20
|
|
||||||
|
|
||||||
Image {
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
anchors.left: parent.left
|
|
||||||
source: "images/lockIcon.png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
|
||||||
id: availableBalanceLabel
|
|
||||||
width: 116
|
|
||||||
height: 20
|
|
||||||
font.family: "Arial"
|
|
||||||
font.pixelSize: 12
|
|
||||||
elide: Text.ElideRight
|
|
||||||
horizontalAlignment: Text.AlignLeft
|
|
||||||
verticalAlignment: Text.AlignBottom
|
|
||||||
color: "#535353"
|
|
||||||
text: root.unlockedBalanceLabelText + ":"
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
|
||||||
id: availableBalanceText
|
|
||||||
width: 110
|
|
||||||
height: 20
|
|
||||||
font.family: "Arial"
|
|
||||||
font.pixelSize: 14
|
|
||||||
elide: Text.ElideRight
|
|
||||||
horizontalAlignment: Text.AlignLeft
|
|
||||||
verticalAlignment: Text.AlignBottom
|
|
||||||
color: "#000000"
|
|
||||||
text: root.unlockedBalanceText
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.right: parent.right
|
|
||||||
anchors.bottom: parent.bottom
|
|
||||||
height: 1
|
|
||||||
color: "#DBDBDB"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Views container
|
|
||||||
StackView {
|
|
||||||
id: stackView
|
|
||||||
initialItem: transferView
|
|
||||||
anchors.topMargin: 30
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
anchors.margins: 4
|
clip: true
|
||||||
clip: true // otherwise animation will affect left panel
|
ScrollIndicator.vertical: ScrollIndicator { }
|
||||||
|
ScrollBar.vertical: ScrollBar { } // uncomment to test
|
||||||
|
|
||||||
delegate: StackViewDelegate {
|
// Views container
|
||||||
pushTransition: StackViewTransition {
|
StackView {
|
||||||
PropertyAnimation {
|
id: stackView
|
||||||
target: enterItem
|
initialItem: transferView
|
||||||
property: "x"
|
// anchors.topMargin: 30
|
||||||
from: 0 - target.width
|
// Layout.fillWidth: true
|
||||||
to: 0
|
// Layout.fillHeight: true
|
||||||
duration: 300
|
anchors.fill:parent
|
||||||
}
|
// anchors.margins: 4
|
||||||
PropertyAnimation {
|
clip: true // otherwise animation will affect left panel
|
||||||
target: exitItem
|
|
||||||
property: "x"
|
delegate: StackViewDelegate {
|
||||||
from: 0
|
pushTransition: StackViewTransition {
|
||||||
to: target.width
|
PropertyAnimation {
|
||||||
duration: 300
|
target: enterItem
|
||||||
|
property: "x"
|
||||||
|
from: 0 - target.width
|
||||||
|
to: 0
|
||||||
|
duration: 300
|
||||||
|
}
|
||||||
|
PropertyAnimation {
|
||||||
|
target: exitItem
|
||||||
|
property: "x"
|
||||||
|
from: 0
|
||||||
|
to: target.width
|
||||||
|
duration: 300
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
}// flickable
|
||||||
}
|
}
|
||||||
// border
|
// border
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
|
|
@ -50,23 +50,23 @@ Item {
|
||||||
z: 100
|
z: 100
|
||||||
}
|
}
|
||||||
|
|
||||||
MouseArea {
|
// MouseArea {
|
||||||
id: buttonArea
|
// id: buttonArea
|
||||||
anchors.fill: parent
|
// anchors.fill: parent
|
||||||
|
|
||||||
|
|
||||||
onPressed: {
|
// onPressed: {
|
||||||
buttonImage.x = buttonImage.x + 2
|
// buttonImage.x = buttonImage.x + 2
|
||||||
buttonImage.y = buttonImage.y + 2
|
// buttonImage.y = buttonImage.y + 2
|
||||||
}
|
// }
|
||||||
onReleased: {
|
// onReleased: {
|
||||||
buttonImage.x = buttonImage.x - 2
|
// buttonImage.x = buttonImage.x - 2
|
||||||
buttonImage.y = buttonImage.y - 2
|
// buttonImage.y = buttonImage.y - 2
|
||||||
}
|
// }
|
||||||
|
|
||||||
onClicked: {
|
// onClicked: {
|
||||||
parent.clicked(mouse)
|
// parent.clicked(mouse)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
|
import QtQuick.Layouts 1.1
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: item
|
id: item
|
||||||
|
@ -35,6 +36,7 @@ Item {
|
||||||
property alias textFormat: label.textFormat
|
property alias textFormat: label.textFormat
|
||||||
property string tipText: ""
|
property string tipText: ""
|
||||||
property int fontSize: 12
|
property int fontSize: 12
|
||||||
|
property alias wrapMode: label.wrapMode
|
||||||
signal linkActivated()
|
signal linkActivated()
|
||||||
width: icon.x + icon.width
|
width: icon.x + icon.width
|
||||||
height: icon.height
|
height: icon.height
|
||||||
|
@ -59,23 +61,23 @@ Item {
|
||||||
visible: appWindow.whatIsEnable
|
visible: appWindow.whatIsEnable
|
||||||
}
|
}
|
||||||
|
|
||||||
MouseArea {
|
// MouseArea {
|
||||||
anchors.fill: icon
|
// anchors.fill: icon
|
||||||
enabled: appWindow.whatIsEnable
|
// enabled: appWindow.whatIsEnable
|
||||||
hoverEnabled: true
|
// hoverEnabled: true
|
||||||
onEntered: {
|
// onEntered: {
|
||||||
icon.visible = false
|
// icon.visible = false
|
||||||
var pos = appWindow.mapFromItem(icon, 0, -15)
|
// var pos = appWindow.mapFromItem(icon, 0, -15)
|
||||||
tipItem.text = item.tipText
|
// tipItem.text = item.tipText
|
||||||
tipItem.x = pos.x
|
// tipItem.x = pos.x
|
||||||
if(tipItem.height > 30)
|
// if(tipItem.height > 30)
|
||||||
pos.y -= tipItem.height - 28
|
// pos.y -= tipItem.height - 28
|
||||||
tipItem.y = pos.y
|
// tipItem.y = pos.y
|
||||||
tipItem.visible = true
|
// tipItem.visible = true
|
||||||
}
|
// }
|
||||||
onExited: {
|
// onExited: {
|
||||||
icon.visible = Qt.binding(function(){ return appWindow.whatIsEnable; })
|
// icon.visible = Qt.binding(function(){ return appWindow.whatIsEnable; })
|
||||||
tipItem.visible = false
|
// tipItem.visible = false
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
119
components/MobileHeader.qml
Normal file
119
components/MobileHeader.qml
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
import QtQuick 2.2
|
||||||
|
import QtGraphicalEffects 1.0
|
||||||
|
import QtQuick.Layouts 1.1
|
||||||
|
import moneroComponents.Wallet 1.0
|
||||||
|
|
||||||
|
|
||||||
|
// BasicPanel header
|
||||||
|
Rectangle {
|
||||||
|
id: header
|
||||||
|
anchors.leftMargin: 1
|
||||||
|
anchors.rightMargin: 1
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: 64
|
||||||
|
color: "#FFFFFF"
|
||||||
|
// visible: basicMode
|
||||||
|
|
||||||
|
Image {
|
||||||
|
id: logo
|
||||||
|
visible: appWindow.width > 460
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.verticalCenterOffset: -5
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: appWindow.persistentSettings.customDecorations ? 20 : 40
|
||||||
|
source: "../images/moneroLogo2.png"
|
||||||
|
}
|
||||||
|
|
||||||
|
Image {
|
||||||
|
id: icon
|
||||||
|
visible: !logo.visible
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
// anchors.verticalCenterOffset: -5
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: appWindow.persistentSettings.customDecorations ? 20 : 40
|
||||||
|
source: "../images/moneroIcon.png"
|
||||||
|
}
|
||||||
|
|
||||||
|
Grid {
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.topMargin: 10
|
||||||
|
width: 256
|
||||||
|
columns: 3
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: balanceLabel
|
||||||
|
width: 116
|
||||||
|
height: 20
|
||||||
|
font.family: "Arial"
|
||||||
|
font.pixelSize: 12
|
||||||
|
font.letterSpacing: -1
|
||||||
|
elide: Text.ElideRight
|
||||||
|
horizontalAlignment: Text.AlignLeft
|
||||||
|
verticalAlignment: Text.AlignBottom
|
||||||
|
color: "#535353"
|
||||||
|
text: leftPanel.balanceLabelText + ":"
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: balanceText
|
||||||
|
width: 110
|
||||||
|
height: 20
|
||||||
|
font.family: "Arial"
|
||||||
|
font.pixelSize: 18
|
||||||
|
font.letterSpacing: -1
|
||||||
|
elide: Text.ElideRight
|
||||||
|
horizontalAlignment: Text.AlignLeft
|
||||||
|
verticalAlignment: Text.AlignBottom
|
||||||
|
color: "#000000"
|
||||||
|
text: leftPanel.balanceText
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
height: 20
|
||||||
|
width: 20
|
||||||
|
|
||||||
|
Image {
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.left: parent.left
|
||||||
|
source: "../images/lockIcon.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
width: 116
|
||||||
|
height: 20
|
||||||
|
font.family: "Arial"
|
||||||
|
font.pixelSize: 12
|
||||||
|
font.letterSpacing: -1
|
||||||
|
elide: Text.ElideRight
|
||||||
|
horizontalAlignment: Text.AlignLeft
|
||||||
|
verticalAlignment: Text.AlignBottom
|
||||||
|
color: "#535353"
|
||||||
|
text: qsTr("Unlocked Balance:")
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: availableBalanceText
|
||||||
|
width: 110
|
||||||
|
height: 20
|
||||||
|
font.family: "Arial"
|
||||||
|
font.pixelSize: 14
|
||||||
|
font.letterSpacing: -1
|
||||||
|
elide: Text.ElideRight
|
||||||
|
horizontalAlignment: Text.AlignLeft
|
||||||
|
verticalAlignment: Text.AlignBottom
|
||||||
|
color: "#000000"
|
||||||
|
text: leftPanel.unlockedBalanceText
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
height: 1
|
||||||
|
color: "#DBDBDB"
|
||||||
|
}
|
||||||
|
}
|
|
@ -75,6 +75,7 @@ Item {
|
||||||
}
|
}
|
||||||
|
|
||||||
function show(message) {
|
function show(message) {
|
||||||
|
item.visible = true
|
||||||
item.message = message
|
item.message = message
|
||||||
item.active = true
|
item.active = true
|
||||||
hider.running = true
|
hider.running = true
|
||||||
|
|
|
@ -45,8 +45,6 @@ Item {
|
||||||
// Dynamic label width
|
// Dynamic label width
|
||||||
Layout.minimumWidth: (label.contentWidth > 80)? label.contentWidth + 20 : 100
|
Layout.minimumWidth: (label.contentWidth > 80)? label.contentWidth + 20 : 100
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
|
|
@ -58,14 +58,15 @@ Rectangle {
|
||||||
property bool checked: false
|
property bool checked: false
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
color: basicMouseArea.containsMouse || checked ? "#FFE00A" : "#000000"
|
color: basicMouseArea.containsMouse || !leftPanel.visible ? "#FFE00A" : "#000000"
|
||||||
height: 30
|
height: 30
|
||||||
width: height
|
width: height
|
||||||
|
visible: isMobile
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
rotation: parent.checked ? 180 : 0
|
rotation: !leftPanel.visible ? 180 : 0
|
||||||
source: parent.customDecorations || parent.checked ? "../images/goToBasicVersionHovered.png" :
|
source: parent.customDecorations || !leftPanel.visible ? "../images/goToBasicVersionHovered.png" :
|
||||||
"../images/gotoBasicVersion.png"
|
"../images/gotoBasicVersion.png"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,7 +76,7 @@ Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onClicked: {
|
onClicked: {
|
||||||
parent.checked = !parent.checked
|
parent.checked = !parent.checked
|
||||||
titleBar.goToBasicVersion(parent.checked)
|
titleBar.goToBasicVersion(leftPanel.visible)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
281
main.qml
281
main.qml
|
@ -57,7 +57,7 @@ ApplicationWindow {
|
||||||
property bool isNewWallet: false
|
property bool isNewWallet: false
|
||||||
property int restoreHeight:0
|
property int restoreHeight:0
|
||||||
property bool daemonSynced: false
|
property bool daemonSynced: false
|
||||||
property int maxWindowHeight: (Screen.height < 900)? 720 : 800;
|
property int maxWindowHeight: Screen.height// (Screen.height < 900)? 720 : 800;
|
||||||
property bool daemonRunning: false
|
property bool daemonRunning: false
|
||||||
property alias toolTip: toolTip
|
property alias toolTip: toolTip
|
||||||
property string walletName
|
property string walletName
|
||||||
|
@ -211,6 +211,8 @@ ApplicationWindow {
|
||||||
delete wizard.settings['wallet']
|
delete wizard.settings['wallet']
|
||||||
} else {
|
} else {
|
||||||
var wallet_path = walletPath();
|
var wallet_path = walletPath();
|
||||||
|
if(isIOS)
|
||||||
|
wallet_path = moneroAccountsDir + wallet_path;
|
||||||
// console.log("opening wallet at: ", wallet_path, "with password: ", appWindow.password);
|
// console.log("opening wallet at: ", wallet_path, "with password: ", appWindow.password);
|
||||||
console.log("opening wallet at: ", wallet_path, ", testnet: ", persistentSettings.testnet);
|
console.log("opening wallet at: ", wallet_path, ", testnet: ", persistentSettings.testnet);
|
||||||
walletManager.openWalletAsync(wallet_path, appWindow.password,
|
walletManager.openWalletAsync(wallet_path, appWindow.password,
|
||||||
|
@ -235,7 +237,11 @@ ApplicationWindow {
|
||||||
middlePanel.checkPaymentClicked.disconnect(handleCheckPayment);
|
middlePanel.checkPaymentClicked.disconnect(handleCheckPayment);
|
||||||
}
|
}
|
||||||
currentWallet = undefined;
|
currentWallet = undefined;
|
||||||
walletManager.closeWalletAsync();
|
if (isIOS) {
|
||||||
|
console.log("closing sync - ios")
|
||||||
|
walletManager.closeWallet();
|
||||||
|
} else
|
||||||
|
walletManager.closeWalletAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
function connectWallet(wallet) {
|
function connectWallet(wallet) {
|
||||||
|
@ -467,7 +473,10 @@ ApplicationWindow {
|
||||||
|
|
||||||
function walletsFound() {
|
function walletsFound() {
|
||||||
if (persistentSettings.wallet_path.length > 0) {
|
if (persistentSettings.wallet_path.length > 0) {
|
||||||
return walletManager.walletExists(persistentSettings.wallet_path);
|
if(isIOS)
|
||||||
|
return walletManager.walletExists(moneroAccountsDir + persistentSettings.wallet_path);
|
||||||
|
else
|
||||||
|
return walletManager.walletExists(persistentSettings.wallet_path);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -769,10 +778,21 @@ ApplicationWindow {
|
||||||
leftPanel.balanceText = leftPanel.unlockedBalanceText = walletManager.displayAmount(0);
|
leftPanel.balanceText = leftPanel.unlockedBalanceText = walletManager.displayAmount(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function hideMenu() {
|
||||||
|
goToBasicAnimation.start();
|
||||||
|
console.log(appWindow.width)
|
||||||
|
}
|
||||||
|
|
||||||
|
function showMenu() {
|
||||||
|
goToProAnimation.start();
|
||||||
|
console.log(appWindow.width)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
objectName: "appWindow"
|
objectName: "appWindow"
|
||||||
visible: true
|
visible: true
|
||||||
width: rightPanelExpanded ? 1269 : 1269 - 300
|
// width: Screen.width //rightPanelExpanded ? 1269 : 1269 - 300
|
||||||
height: maxWindowHeight;
|
// height: 900 //300//maxWindowHeight;
|
||||||
color: "#FFFFFF"
|
color: "#FFFFFF"
|
||||||
flags: persistentSettings.customDecorations ? (Qt.FramelessWindowHint | Qt.WindowSystemMenuHint | Qt.Window | Qt.WindowMinimizeButtonHint) : (Qt.WindowSystemMenuHint | Qt.Window | Qt.WindowMinimizeButtonHint | Qt.WindowCloseButtonHint | Qt.WindowTitleHint | Qt.WindowMaximizeButtonHint)
|
flags: persistentSettings.customDecorations ? (Qt.FramelessWindowHint | Qt.WindowSystemMenuHint | Qt.Window | Qt.WindowMinimizeButtonHint) : (Qt.WindowSystemMenuHint | Qt.Window | Qt.WindowMinimizeButtonHint | Qt.WindowCloseButtonHint | Qt.WindowTitleHint | Qt.WindowMaximizeButtonHint)
|
||||||
onWidthChanged: x -= 0
|
onWidthChanged: x -= 0
|
||||||
|
@ -802,9 +822,13 @@ ApplicationWindow {
|
||||||
walletManager.walletOpened.connect(onWalletOpened);
|
walletManager.walletOpened.connect(onWalletOpened);
|
||||||
walletManager.walletClosed.connect(onWalletClosed);
|
walletManager.walletClosed.connect(onWalletClosed);
|
||||||
|
|
||||||
daemonManager.daemonStarted.connect(onDaemonStarted);
|
if(typeof daemonManager != "undefined") {
|
||||||
daemonManager.daemonStartFailure.connect(onDaemonStartFailure);
|
daemonManager.daemonStarted.connect(onDaemonStarted);
|
||||||
daemonManager.daemonStopped.connect(onDaemonStopped);
|
daemonManager.daemonStartFailure.connect(onDaemonStartFailure);
|
||||||
|
daemonManager.daemonStopped.connect(onDaemonStopped);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Connect app exit to qml window exit handling
|
// Connect app exit to qml window exit handling
|
||||||
mainApp.closing.connect(appWindow.close);
|
mainApp.closing.connect(appWindow.close);
|
||||||
|
@ -822,6 +846,11 @@ ApplicationWindow {
|
||||||
} else console.log("qrScannerEnabled disabled");
|
} else console.log("qrScannerEnabled disabled");
|
||||||
|
|
||||||
if(!walletsFound()) {
|
if(!walletsFound()) {
|
||||||
|
console.log("no wallet found")
|
||||||
|
console.log(persistentSettings.wallet_path)
|
||||||
|
//var/mobile/Containers/Data/Application/588FFCBE-8972-43AB-B096-FC38526A40B2/Documents/Monero/wallets/Aaa/Aaa
|
||||||
|
///var/mobile/Containers/Data/Application/EA9EA534-5E09-41D2-BDEA-951BACB68765/Documents/Monero/wallets/BB/BB
|
||||||
|
walletManager.setLogLevel(2);
|
||||||
rootItem.state = "wizard"
|
rootItem.state = "wizard"
|
||||||
} else {
|
} else {
|
||||||
rootItem.state = "normal"
|
rootItem.state = "normal"
|
||||||
|
@ -965,55 +994,62 @@ ApplicationWindow {
|
||||||
PropertyChanges { target: leftPanel; visible: false }
|
PropertyChanges { target: leftPanel; visible: false }
|
||||||
PropertyChanges { target: rightPanel; visible: false }
|
PropertyChanges { target: rightPanel; visible: false }
|
||||||
PropertyChanges { target: middlePanel; visible: false }
|
PropertyChanges { target: middlePanel; visible: false }
|
||||||
PropertyChanges { target: titleBar; basicButtonVisible: false }
|
// PropertyChanges { target: titleBar; basicButtonVisible: false }
|
||||||
PropertyChanges { target: wizard; visible: true }
|
PropertyChanges { target: wizard; visible: true }
|
||||||
PropertyChanges { target: appWindow; width: 930; }
|
// PropertyChanges { target: appWindow; width: (Screen.width < 930)? Screen.width : 930; }
|
||||||
PropertyChanges { target: appWindow; height: 650; }
|
// PropertyChanges { target: appWindow; height: maxWindowHeight; }
|
||||||
PropertyChanges { target: resizeArea; visible: false }
|
PropertyChanges { target: resizeArea; visible: false }
|
||||||
PropertyChanges { target: titleBar; maximizeButtonVisible: false }
|
PropertyChanges { target: titleBar; maximizeButtonVisible: false }
|
||||||
PropertyChanges { target: frameArea; blocked: true }
|
// PropertyChanges { target: frameArea; blocked: true }
|
||||||
PropertyChanges { target: titleBar; visible: false }
|
PropertyChanges { target: titleBar; visible: false }
|
||||||
PropertyChanges { target: titleBar; y: 0 }
|
PropertyChanges { target: titleBar; y: 0 }
|
||||||
PropertyChanges { target: titleBar; title: qsTr("Program setup wizard") + translationManager.emptyString }
|
PropertyChanges { target: titleBar; title: qsTr("Program setup wizard") + translationManager.emptyString }
|
||||||
}, State {
|
}, State {
|
||||||
name: "normal"
|
name: "normal"
|
||||||
PropertyChanges { target: leftPanel; visible: true }
|
PropertyChanges { target: leftPanel; visible: (isMobile)? false : true }
|
||||||
PropertyChanges { target: rightPanel; visible: true }
|
PropertyChanges { target: rightPanel; visible: true }
|
||||||
PropertyChanges { target: middlePanel; visible: true }
|
PropertyChanges { target: middlePanel; visible: true }
|
||||||
PropertyChanges { target: titleBar; basicButtonVisible: true }
|
// PropertyChanges { target: titleBar; basicButtonVisible: true }
|
||||||
PropertyChanges { target: wizard; visible: false }
|
PropertyChanges { target: wizard; visible: false }
|
||||||
PropertyChanges { target: appWindow; width: rightPanelExpanded ? 1269 : 1269 - 300; }
|
// PropertyChanges { target: appWindow; width: (Screen.width < 969)? Screen.width : 969 } //rightPanelExpanded ? 1269 : 1269 - 300;
|
||||||
PropertyChanges { target: appWindow; height: maxWindowHeight; }
|
// PropertyChanges { target: appWindow; height: maxWindowHeight; }
|
||||||
PropertyChanges { target: resizeArea; visible: true }
|
PropertyChanges { target: resizeArea; visible: true }
|
||||||
PropertyChanges { target: titleBar; maximizeButtonVisible: true }
|
PropertyChanges { target: titleBar; maximizeButtonVisible: true }
|
||||||
PropertyChanges { target: frameArea; blocked: false }
|
PropertyChanges { target: frameArea; blocked: true }
|
||||||
PropertyChanges { target: titleBar; visible: true }
|
// PropertyChanges { target: titleBar; visible: true }
|
||||||
PropertyChanges { target: titleBar; y: 0 }
|
// PropertyChanges { target: titleBar; y: 0 }
|
||||||
PropertyChanges { target: titleBar; title: qsTr("Monero") + translationManager.emptyString }
|
PropertyChanges { target: titleBar; title: qsTr("Monero") + translationManager.emptyString }
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
MobileHeader {
|
||||||
|
id: mobileHeader
|
||||||
|
visible: isMobile
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
height: visible? 65 : 0
|
||||||
|
}
|
||||||
|
|
||||||
LeftPanel {
|
LeftPanel {
|
||||||
id: leftPanel
|
id: leftPanel
|
||||||
|
anchors.top: mobileHeader.bottom
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
height: parent.height
|
onDashboardClicked: {middlePanel.state = "Dashboard"; if(isMobile) hideMenu()}
|
||||||
onDashboardClicked: middlePanel.state = "Dashboard"
|
onTransferClicked: {middlePanel.state = "Transfer"; if(isMobile) hideMenu()}
|
||||||
onTransferClicked: middlePanel.state = "Transfer"
|
onReceiveClicked: {middlePanel.state = "Receive"; if(isMobile) hideMenu()}
|
||||||
onReceiveClicked: middlePanel.state = "Receive"
|
onTxkeyClicked: {middlePanel.state = "TxKey"; if(isMobile) hideMenu()}
|
||||||
onTxkeyClicked: middlePanel.state = "TxKey"
|
onHistoryClicked: {middlePanel.state = "History"; if(isMobile) hideMenu()}
|
||||||
onHistoryClicked: middlePanel.state = "History"
|
onAddressBookClicked: {middlePanel.state = "AddressBook"; if(isMobile) hideMenu()}
|
||||||
onAddressBookClicked: middlePanel.state = "AddressBook"
|
onMiningClicked: {middlePanel.state = "Mining"; if(isMobile) hideMenu()}
|
||||||
onMiningClicked: middlePanel.state = "Mining"
|
onSignClicked: {middlePanel.state = "Sign"; if(isMobile) hideMenu()}
|
||||||
onSignClicked: middlePanel.state = "Sign"
|
onSettingsClicked: {middlePanel.state = "Settings"; if(isMobile) hideMenu()}
|
||||||
onSettingsClicked: middlePanel.state = "Settings"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RightPanel {
|
RightPanel {
|
||||||
id: rightPanel
|
id: rightPanel
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
height: parent.height
|
|
||||||
width: appWindow.rightPanelExpanded ? 300 : 0
|
width: appWindow.rightPanelExpanded ? 300 : 0
|
||||||
visible: appWindow.rightPanelExpanded
|
visible: appWindow.rightPanelExpanded
|
||||||
}
|
}
|
||||||
|
@ -1021,10 +1057,10 @@ ApplicationWindow {
|
||||||
|
|
||||||
MiddlePanel {
|
MiddlePanel {
|
||||||
id: middlePanel
|
id: middlePanel
|
||||||
|
anchors.top: mobileHeader.bottom
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
anchors.left: leftPanel.visible ? leftPanel.right : parent.left
|
anchors.left: leftPanel.visible ? leftPanel.right : parent.left
|
||||||
anchors.right: rightPanel.left
|
anchors.right: parent.right
|
||||||
height: parent.height
|
|
||||||
state: "Transfer"
|
state: "Transfer"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1034,54 +1070,54 @@ ApplicationWindow {
|
||||||
visible: false
|
visible: false
|
||||||
}
|
}
|
||||||
|
|
||||||
MouseArea {
|
// MouseArea {
|
||||||
id: frameArea
|
// id: frameArea
|
||||||
property bool blocked: false
|
// property bool blocked: false
|
||||||
anchors.top: parent.top
|
// anchors.top: parent.top
|
||||||
anchors.left: parent.left
|
// anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
// anchors.right: parent.right
|
||||||
height: 30
|
// height: 30
|
||||||
z: 1
|
// z: 1
|
||||||
hoverEnabled: true
|
// hoverEnabled: true
|
||||||
propagateComposedEvents: true
|
// propagateComposedEvents: true
|
||||||
onPressed: mouse.accepted = false
|
// onPressed: mouse.accepted = false
|
||||||
onReleased: mouse.accepted = false
|
// onReleased: mouse.accepted = false
|
||||||
onMouseXChanged: titleBar.mouseX = mouseX
|
// onMouseXChanged: titleBar.mouseX = mouseX
|
||||||
onContainsMouseChanged: titleBar.containsMouse = containsMouse
|
// onContainsMouseChanged: titleBar.containsMouse = containsMouse
|
||||||
}
|
// }
|
||||||
|
|
||||||
SequentialAnimation {
|
SequentialAnimation {
|
||||||
id: goToBasicAnimation
|
id: goToBasicAnimation
|
||||||
PropertyAction {
|
// PropertyAction {
|
||||||
target: appWindow
|
// target: appWindow
|
||||||
properties: "visibility"
|
// properties: "visibility"
|
||||||
value: Window.Windowed
|
// value: Window.Windowed
|
||||||
}
|
// }
|
||||||
PropertyAction {
|
// PropertyAction {
|
||||||
target: titleBar
|
// target: titleBar
|
||||||
properties: "maximizeButtonVisible"
|
// properties: "maximizeButtonVisible"
|
||||||
value: false
|
// value: false
|
||||||
}
|
// }
|
||||||
PropertyAction {
|
// PropertyAction {
|
||||||
target: frameArea
|
// target: frameArea
|
||||||
properties: "blocked"
|
// properties: "blocked"
|
||||||
value: true
|
// value: true
|
||||||
}
|
// }
|
||||||
PropertyAction {
|
PropertyAction {
|
||||||
target: resizeArea
|
target: resizeArea
|
||||||
properties: "visible"
|
properties: "visible"
|
||||||
value: false
|
value: true
|
||||||
}
|
|
||||||
PropertyAction {
|
|
||||||
target: appWindow
|
|
||||||
properties: "height"
|
|
||||||
value: 30
|
|
||||||
}
|
|
||||||
PropertyAction {
|
|
||||||
target: appWindow
|
|
||||||
properties: "width"
|
|
||||||
value: 470
|
|
||||||
}
|
}
|
||||||
|
// PropertyAction {
|
||||||
|
// target: appWindow
|
||||||
|
// properties: "height"
|
||||||
|
// value: 30
|
||||||
|
// }
|
||||||
|
// PropertyAction {
|
||||||
|
// target: appWindow
|
||||||
|
// properties: "width"
|
||||||
|
// value: 326
|
||||||
|
// }
|
||||||
PropertyAction {
|
PropertyAction {
|
||||||
targets: [leftPanel, rightPanel]
|
targets: [leftPanel, rightPanel]
|
||||||
properties: "visible"
|
properties: "visible"
|
||||||
|
@ -1093,11 +1129,11 @@ ApplicationWindow {
|
||||||
value: true
|
value: true
|
||||||
}
|
}
|
||||||
|
|
||||||
PropertyAction {
|
// PropertyAction {
|
||||||
target: appWindow
|
// target: appWindow
|
||||||
properties: "height"
|
// properties: "height"
|
||||||
value: middlePanel.height
|
// value: middlePanel.height
|
||||||
}
|
// }
|
||||||
|
|
||||||
onStopped: {
|
onStopped: {
|
||||||
// middlePanel.visible = false
|
// middlePanel.visible = false
|
||||||
|
@ -1108,11 +1144,11 @@ ApplicationWindow {
|
||||||
|
|
||||||
SequentialAnimation {
|
SequentialAnimation {
|
||||||
id: goToProAnimation
|
id: goToProAnimation
|
||||||
PropertyAction {
|
// PropertyAction {
|
||||||
target: appWindow
|
// target: appWindow
|
||||||
properties: "height"
|
// properties: "height"
|
||||||
value: 30
|
// value: 30
|
||||||
}
|
// }
|
||||||
PropertyAction {
|
PropertyAction {
|
||||||
target: middlePanel
|
target: middlePanel
|
||||||
properties: "basicMode"
|
properties: "basicMode"
|
||||||
|
@ -1123,26 +1159,26 @@ ApplicationWindow {
|
||||||
properties: "visible"
|
properties: "visible"
|
||||||
value: true
|
value: true
|
||||||
}
|
}
|
||||||
PropertyAction {
|
// PropertyAction {
|
||||||
target: appWindow
|
// target: appWindow
|
||||||
properties: "width"
|
// properties: "width"
|
||||||
value: rightPanelExpanded ? 1269 : 1269 - 300
|
// value: rightPanelExpanded ? 1269 : 1269 - 300
|
||||||
}
|
// }
|
||||||
PropertyAction {
|
// PropertyAction {
|
||||||
target: appWindow
|
// target: appWindow
|
||||||
properties: "height"
|
// properties: "height"
|
||||||
value: maxWindowHeight
|
// value: maxWindowHeight
|
||||||
}
|
// }
|
||||||
PropertyAction {
|
// PropertyAction {
|
||||||
target: frameArea
|
// target: frameArea
|
||||||
properties: "blocked"
|
// properties: "blocked"
|
||||||
value: false
|
// value: false
|
||||||
}
|
// }
|
||||||
PropertyAction {
|
// PropertyAction {
|
||||||
target: titleBar
|
// target: titleBar
|
||||||
properties: "maximizeButtonVisible"
|
// properties: "maximizeButtonVisible"
|
||||||
value: true
|
// value: true
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
WizardMain {
|
WizardMain {
|
||||||
|
@ -1159,7 +1195,7 @@ ApplicationWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
property int minWidth: 326
|
property int minWidth: 326
|
||||||
property int minHeight: 720
|
property int minHeight: 400
|
||||||
MouseArea {
|
MouseArea {
|
||||||
id: resizeArea
|
id: resizeArea
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
|
@ -1220,24 +1256,24 @@ ApplicationWindow {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MouseArea {
|
// MouseArea {
|
||||||
enabled: persistentSettings.customDecorations
|
// enabled: persistentSettings.customDecorations
|
||||||
property var previousPosition
|
// property var previousPosition
|
||||||
anchors.fill: parent
|
// anchors.fill: parent
|
||||||
propagateComposedEvents: true
|
// propagateComposedEvents: true
|
||||||
onPressed: previousPosition = globalCursor.getPosition()
|
// onPressed: previousPosition = globalCursor.getPosition()
|
||||||
onPositionChanged: {
|
// onPositionChanged: {
|
||||||
if (pressedButtons == Qt.LeftButton) {
|
// if (pressedButtons == Qt.LeftButton) {
|
||||||
var pos = globalCursor.getPosition()
|
// var pos = globalCursor.getPosition()
|
||||||
var dx = pos.x - previousPosition.x
|
// var dx = pos.x - previousPosition.x
|
||||||
var dy = pos.y - previousPosition.y
|
// var dy = pos.y - previousPosition.y
|
||||||
|
|
||||||
appWindow.x += dx
|
// appWindow.x += dx
|
||||||
appWindow.y += dy
|
// appWindow.y += dy
|
||||||
previousPosition = pos
|
// previousPosition = pos
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
// new ToolTip
|
// new ToolTip
|
||||||
|
@ -1270,6 +1306,7 @@ ApplicationWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
Notifier {
|
Notifier {
|
||||||
|
visible:false
|
||||||
id: notifier
|
id: notifier
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1277,7 +1314,7 @@ ApplicationWindow {
|
||||||
onClosing: {
|
onClosing: {
|
||||||
|
|
||||||
// If daemon is running - prompt user before exiting
|
// If daemon is running - prompt user before exiting
|
||||||
if(typeof daemonManager != undefined && daemonManager.running(persistentSettings.testnet)) {
|
if(typeof daemonManager != "undefined" && daemonManager.running(persistentSettings.testnet)) {
|
||||||
close.accepted = false;
|
close.accepted = false;
|
||||||
|
|
||||||
// Show confirmation dialog
|
// Show confirmation dialog
|
||||||
|
|
|
@ -79,12 +79,12 @@ SOURCES = *.qml \
|
||||||
ios:armv7 {
|
ios:armv7 {
|
||||||
message("target is armv7")
|
message("target is armv7")
|
||||||
LIBS += \
|
LIBS += \
|
||||||
-L$$PWD/ofxiOSBoost/build/libs/boost/lib/armv7 \
|
-L$$PWD/../ofxiOSBoost/build/libs/boost/lib/armv7 \
|
||||||
}
|
}
|
||||||
ios:arm64 {
|
ios:arm64 {
|
||||||
message("target is arm64")
|
message("target is arm64")
|
||||||
LIBS += \
|
LIBS += \
|
||||||
-L$$PWD/ofxiOSBoost/build/libs/boost/lib/arm64 \
|
-L$$PWD/../ofxiOSBoost/build/libs/boost/lib/arm64 \
|
||||||
}
|
}
|
||||||
!ios {
|
!ios {
|
||||||
LIBS += -L$$WALLET_ROOT/lib \
|
LIBS += -L$$WALLET_ROOT/lib \
|
||||||
|
@ -93,6 +93,7 @@ LIBS += -L$$WALLET_ROOT/lib \
|
||||||
-lunbound
|
-lunbound
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ios {
|
ios {
|
||||||
message("Host is IOS")
|
message("Host is IOS")
|
||||||
|
|
||||||
|
@ -105,7 +106,8 @@ ios {
|
||||||
-lunbound
|
-lunbound
|
||||||
|
|
||||||
LIBS+= \
|
LIBS+= \
|
||||||
-L$$PWD/OpenSSL-for-iPhone/lib \
|
-L$$PWD/../OpenSSL-for-iPhone/lib \
|
||||||
|
-L$$PWD/../ofxiOSBoost/build/libs/boost/lib/arm64 \
|
||||||
-lboost_serialization \
|
-lboost_serialization \
|
||||||
-lboost_thread \
|
-lboost_thread \
|
||||||
-lboost_system \
|
-lboost_system \
|
||||||
|
@ -359,6 +361,7 @@ macx {
|
||||||
PRE_TARGETDEPS += langupd compiler_langrel_make_all
|
PRE_TARGETDEPS += langupd compiler_langrel_make_all
|
||||||
|
|
||||||
RESOURCES += qml.qrc
|
RESOURCES += qml.qrc
|
||||||
|
CONFIG += qtquickcompiler
|
||||||
|
|
||||||
# Additional import path used to resolve QML modules in Qt Creator's code model
|
# Additional import path used to resolve QML modules in Qt Creator's code model
|
||||||
QML_IMPORT_PATH =
|
QML_IMPORT_PATH =
|
||||||
|
@ -392,7 +395,8 @@ OTHER_FILES += \
|
||||||
|
|
||||||
DISTFILES += \
|
DISTFILES += \
|
||||||
notes.txt \
|
notes.txt \
|
||||||
monero/src/wallet/CMakeLists.txt
|
monero/src/wallet/CMakeLists.txt \
|
||||||
|
components/MobileHeader.qml
|
||||||
|
|
||||||
|
|
||||||
# windows application icon
|
# windows application icon
|
||||||
|
|
|
@ -120,6 +120,7 @@ Rectangle {
|
||||||
|
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
|
visible: !isMobile
|
||||||
id: filterHeaderText
|
id: filterHeaderText
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
@ -135,6 +136,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
|
visible: !isMobile
|
||||||
id: selectedAmount
|
id: selectedAmount
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
|
@ -172,6 +174,7 @@ Rectangle {
|
||||||
|
|
||||||
// Filter by string
|
// Filter by string
|
||||||
LineEdit {
|
LineEdit {
|
||||||
|
visible: !isMobile
|
||||||
id: searchLine
|
id: searchLine
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
@ -213,6 +216,7 @@ Rectangle {
|
||||||
|
|
||||||
// DateFrom picker
|
// DateFrom picker
|
||||||
Label {
|
Label {
|
||||||
|
visible: !isMobile
|
||||||
id: dateFromText
|
id: dateFromText
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.top: searchLine.bottom // descriptionLine.bottom
|
anchors.top: searchLine.bottom // descriptionLine.bottom
|
||||||
|
@ -225,6 +229,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
DatePicker {
|
DatePicker {
|
||||||
|
visible: !isMobile
|
||||||
id: fromDatePicker
|
id: fromDatePicker
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.top: dateFromText.bottom
|
anchors.top: dateFromText.bottom
|
||||||
|
@ -239,6 +244,7 @@ Rectangle {
|
||||||
|
|
||||||
// DateTo picker
|
// DateTo picker
|
||||||
Label {
|
Label {
|
||||||
|
visible: !isMobile
|
||||||
id: dateToText
|
id: dateToText
|
||||||
anchors.left: dateFromText.right
|
anchors.left: dateFromText.right
|
||||||
anchors.top: searchLine.bottom //descriptionLine.bottom
|
anchors.top: searchLine.bottom //descriptionLine.bottom
|
||||||
|
@ -250,6 +256,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
DatePicker {
|
DatePicker {
|
||||||
|
visible: !isMobile
|
||||||
id: toDatePicker
|
id: toDatePicker
|
||||||
anchors.left: fromDatePicker.right
|
anchors.left: fromDatePicker.right
|
||||||
anchors.top: dateToText.bottom
|
anchors.top: dateToText.bottom
|
||||||
|
@ -265,6 +272,7 @@ Rectangle {
|
||||||
|
|
||||||
|
|
||||||
StandardButton {
|
StandardButton {
|
||||||
|
visible: !isMobile
|
||||||
id: filterButton
|
id: filterButton
|
||||||
anchors.bottom: toDatePicker.bottom
|
anchors.bottom: toDatePicker.bottom
|
||||||
anchors.left: toDatePicker.right
|
anchors.left: toDatePicker.right
|
||||||
|
@ -306,6 +314,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckBox {
|
CheckBox {
|
||||||
|
visible: !isMobile
|
||||||
id: advancedFilteringCheckBox
|
id: advancedFilteringCheckBox
|
||||||
text: qsTr("Advanced filtering") + translationManager.emptyString
|
text: qsTr("Advanced filtering") + translationManager.emptyString
|
||||||
anchors.left: filterButton.right
|
anchors.left: filterButton.right
|
||||||
|
@ -320,6 +329,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
|
visible: !isMobile
|
||||||
id: transactionTypeText
|
id: transactionTypeText
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.top: fromDatePicker.bottom
|
anchors.top: fromDatePicker.bottom
|
||||||
|
@ -340,6 +350,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
StandardDropdown {
|
StandardDropdown {
|
||||||
|
visible: !isMobile
|
||||||
id: transactionTypeDropdown
|
id: transactionTypeDropdown
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.top: transactionTypeText.bottom
|
anchors.top: transactionTypeText.bottom
|
||||||
|
@ -355,6 +366,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
|
visible: !isMobile
|
||||||
id: amountFromText
|
id: amountFromText
|
||||||
anchors.left: transactionTypeText.right
|
anchors.left: transactionTypeText.right
|
||||||
anchors.top: fromDatePicker.bottom
|
anchors.top: fromDatePicker.bottom
|
||||||
|
@ -367,6 +379,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
LineEdit {
|
LineEdit {
|
||||||
|
visible: !isMobile
|
||||||
id: amountFromLine
|
id: amountFromLine
|
||||||
anchors.left: transactionTypeDropdown.right
|
anchors.left: transactionTypeDropdown.right
|
||||||
anchors.top: amountFromText.bottom
|
anchors.top: amountFromText.bottom
|
||||||
|
@ -387,6 +400,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
|
visible: !isMobile
|
||||||
id: amountToText
|
id: amountToText
|
||||||
anchors.left: amountFromText.right
|
anchors.left: amountFromText.right
|
||||||
anchors.top: fromDatePicker.bottom
|
anchors.top: fromDatePicker.bottom
|
||||||
|
@ -399,6 +413,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
LineEdit {
|
LineEdit {
|
||||||
|
visible: !isMobile
|
||||||
id: amountToLine
|
id: amountToLine
|
||||||
anchors.left: amountFromLine.right
|
anchors.left: amountFromLine.right
|
||||||
anchors.top: amountToText.bottom
|
anchors.top: amountToText.bottom
|
||||||
|
@ -420,6 +435,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
visible: !isMobile
|
||||||
id: expandItem
|
id: expandItem
|
||||||
property bool expanded: false
|
property bool expanded: false
|
||||||
|
|
||||||
|
@ -455,10 +471,11 @@ Rectangle {
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
|
// anchors.top: parent.top
|
||||||
color: "#FFFFFF"
|
color: "#FFFFFF"
|
||||||
z: 1
|
z: 1
|
||||||
|
|
||||||
height: middleHeight
|
height: (isMobile)? parent.height : middleHeight
|
||||||
onHeightChanged: {
|
onHeightChanged: {
|
||||||
if(height === middleHeight) z = 1
|
if(height === middleHeight) z = 1
|
||||||
else if(height === collapsedHeight) z = 0
|
else if(height === collapsedHeight) z = 0
|
||||||
|
|
|
@ -168,8 +168,9 @@ Rectangle {
|
||||||
/* main layout */
|
/* main layout */
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
id: mainLayout
|
id: mainLayout
|
||||||
anchors.margins: 17
|
anchors.margins: (isMobile)? 17 : 40
|
||||||
anchors.topMargin: 40
|
anchors.topMargin: 40
|
||||||
|
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
@ -181,9 +182,8 @@ Rectangle {
|
||||||
property int qrCodeSize: 240
|
property int qrCodeSize: 240
|
||||||
|
|
||||||
|
|
||||||
RowLayout {
|
ColumnLayout {
|
||||||
id: addressRow
|
id: addressRow
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: addressLabel
|
id: addressLabel
|
||||||
fontSize: 14
|
fontSize: 14
|
||||||
|
@ -204,6 +204,7 @@ Rectangle {
|
||||||
imageSource: "../images/copyToClipboard.png"
|
imageSource: "../images/copyToClipboard.png"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (addressLine.text.length > 0) {
|
if (addressLine.text.length > 0) {
|
||||||
|
console.log(addressLine.text + " copied to clipboard")
|
||||||
clipboard.setText(addressLine.text)
|
clipboard.setText(addressLine.text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -211,9 +212,11 @@ Rectangle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
GridLayout {
|
||||||
id: paymentIdRow
|
id: paymentIdRow
|
||||||
|
columns:2
|
||||||
Label {
|
Label {
|
||||||
|
Layout.columnSpan: 2
|
||||||
id: paymentIdLabel
|
id: paymentIdLabel
|
||||||
fontSize: 14
|
fontSize: 14
|
||||||
text: qsTr("Payment ID") + translationManager.emptyString
|
text: qsTr("Payment ID") + translationManager.emptyString
|
||||||
|
@ -264,8 +267,8 @@ Rectangle {
|
||||||
onClicked: updatePaymentId("")
|
onClicked: updatePaymentId("")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
ColumnLayout {
|
||||||
id: integratedAddressRow
|
id: integratedAddressRow
|
||||||
Label {
|
Label {
|
||||||
id: integratedAddressLabel
|
id: integratedAddressLabel
|
||||||
|
@ -298,7 +301,7 @@ Rectangle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
ColumnLayout {
|
||||||
id: amountRow
|
id: amountRow
|
||||||
Label {
|
Label {
|
||||||
id: amountLabel
|
id: amountLabel
|
||||||
|
|
|
@ -40,6 +40,7 @@ import moneroComponents.Clipboard 1.0
|
||||||
Rectangle {
|
Rectangle {
|
||||||
property var daemonAddress
|
property var daemonAddress
|
||||||
property bool viewOnly: false
|
property bool viewOnly: false
|
||||||
|
id: page
|
||||||
|
|
||||||
color: "#F0EEEE"
|
color: "#F0EEEE"
|
||||||
|
|
||||||
|
@ -54,10 +55,9 @@ Rectangle {
|
||||||
// try connecting to daemon
|
// try connecting to daemon
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
id: mainLayout
|
id: mainLayout
|
||||||
anchors.margins: 40
|
anchors.margins: 17
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
@ -81,7 +81,8 @@ Rectangle {
|
||||||
color: "#DEDEDE"
|
color: "#DEDEDE"
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
GridLayout {
|
||||||
|
columns: (isMobile)? 2 : 3
|
||||||
StandardButton {
|
StandardButton {
|
||||||
id: closeWalletButton
|
id: closeWalletButton
|
||||||
text: qsTr("Close wallet") + translationManager.emptyString
|
text: qsTr("Close wallet") + translationManager.emptyString
|
||||||
|
@ -178,10 +179,9 @@ Rectangle {
|
||||||
color: "#DEDEDE"
|
color: "#DEDEDE"
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
GridLayout {
|
||||||
id: daemonStatusRow
|
id: daemonStatusRow
|
||||||
Layout.fillWidth: true
|
columns: (isMobile) ? 2 : 4
|
||||||
|
|
||||||
StandardButton {
|
StandardButton {
|
||||||
visible: true
|
visible: true
|
||||||
enabled: !appWindow.daemonRunning
|
enabled: !appWindow.daemonRunning
|
||||||
|
@ -228,7 +228,7 @@ Rectangle {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
ColumnLayout {
|
||||||
id: daemonFlagsRow
|
id: daemonFlagsRow
|
||||||
Label {
|
Label {
|
||||||
id: daemonFlagsLabel
|
id: daemonFlagsLabel
|
||||||
|
@ -246,22 +246,27 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
id: daemonAddrRow
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
spacing: 10
|
spacing: 10
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: daemonAddrLabel
|
id: daemonAddrLabel
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
color: "#4A4949"
|
color: "#4A4949"
|
||||||
text: qsTr("Daemon address") + translationManager.emptyString
|
text: qsTr("Daemon address") + translationManager.emptyString
|
||||||
fontSize: 16
|
fontSize: 16
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GridLayout {
|
||||||
|
id: daemonAddrRow
|
||||||
|
Layout.fillWidth: true
|
||||||
|
columnSpacing: 10
|
||||||
|
columns: (isMobile) ? 2 : 3
|
||||||
|
|
||||||
LineEdit {
|
LineEdit {
|
||||||
id: daemonAddr
|
id: daemonAddr
|
||||||
Layout.preferredWidth: 200
|
Layout.preferredWidth: 100
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
text: (daemonAddress !== undefined) ? daemonAddress[0] : ""
|
text: (daemonAddress !== undefined) ? daemonAddress[0] : ""
|
||||||
placeholderText: qsTr("Hostname / IP") + translationManager.emptyString
|
placeholderText: qsTr("Hostname / IP") + translationManager.emptyString
|
||||||
|
@ -278,7 +283,8 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
spacing: 10
|
||||||
Label {
|
Label {
|
||||||
id: daemonLoginLabel
|
id: daemonLoginLabel
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -287,6 +293,10 @@ Rectangle {
|
||||||
fontSize: 16
|
fontSize: 16
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
|
||||||
LineEdit {
|
LineEdit {
|
||||||
id: daemonUsername
|
id: daemonUsername
|
||||||
Layout.preferredWidth: 100
|
Layout.preferredWidth: 100
|
||||||
|
@ -314,7 +324,6 @@ Rectangle {
|
||||||
shadowPressedColor: "#B32D00"
|
shadowPressedColor: "#B32D00"
|
||||||
releasedColor: "#FF6C3C"
|
releasedColor: "#FF6C3C"
|
||||||
pressedColor: "#FF4304"
|
pressedColor: "#FF4304"
|
||||||
visible: true
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
console.log("saving daemon adress settings")
|
console.log("saving daemon adress settings")
|
||||||
var newDaemon = daemonAddr.text.trim() + ":" + daemonPort.text.trim()
|
var newDaemon = daemonAddr.text.trim() + ":" + daemonPort.text.trim()
|
||||||
|
@ -360,14 +369,22 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log level
|
// Log level
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
Label {
|
Label {
|
||||||
id: logLevelLabel
|
|
||||||
color: "#4A4949"
|
color: "#4A4949"
|
||||||
text: qsTr("Log level") + translationManager.emptyString
|
text: qsTr("Log level") + translationManager.emptyString
|
||||||
fontSize: 16
|
fontSize: 16
|
||||||
|
anchors.topMargin: 30
|
||||||
|
Layout.topMargin: 30
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
Rectangle {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
height: 1
|
||||||
|
color: "#DEDEDE"
|
||||||
|
}
|
||||||
|
ColumnLayout {
|
||||||
ComboBox {
|
ComboBox {
|
||||||
id: logLevel
|
id: logLevel
|
||||||
model: [0,1,2,3,4,"custom"]
|
model: [0,1,2,3,4,"custom"]
|
||||||
|
@ -500,12 +517,19 @@ Rectangle {
|
||||||
console.log("Settings page loaded");
|
console.log("Settings page loaded");
|
||||||
initSettings();
|
initSettings();
|
||||||
viewOnly = currentWallet.viewOnly;
|
viewOnly = currentWallet.viewOnly;
|
||||||
appWindow.daemonRunning = daemonManager.running(persistentSettings.testnet)
|
|
||||||
|
if(typeof daemonManager != "undefined")
|
||||||
|
appWindow.daemonRunning = daemonManager.running(persistentSettings.testnet)
|
||||||
|
|
||||||
|
console.log(currentWallet.seed);
|
||||||
}
|
}
|
||||||
|
|
||||||
// fires only once
|
// fires only once
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
daemonManager.daemonConsoleUpdated.connect(onDaemonConsoleUpdated)
|
if(typeof daemonManager != "undefined")
|
||||||
|
daemonManager.daemonConsoleUpdated.connect(onDaemonConsoleUpdated)
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function onDaemonConsoleUpdated(message){
|
function onDaemonConsoleUpdated(message){
|
||||||
|
|
|
@ -40,7 +40,7 @@ Rectangle {
|
||||||
id: mainLayout
|
id: mainLayout
|
||||||
|
|
||||||
property int labelWidth: 120
|
property int labelWidth: 120
|
||||||
property int editWidth: 400
|
// property int editWidth: 400
|
||||||
property int lineEditFontSize: 12
|
property int lineEditFontSize: 12
|
||||||
|
|
||||||
color: "#F0EEEE"
|
color: "#F0EEEE"
|
||||||
|
@ -92,7 +92,7 @@ Rectangle {
|
||||||
|
|
||||||
// sign / verify
|
// sign / verify
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
anchors.margins: 10
|
anchors.margins: 17
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
|
@ -100,21 +100,9 @@ Rectangle {
|
||||||
|
|
||||||
spacing: 20
|
spacing: 20
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
anchors.fill: signBox
|
|
||||||
color: "#00000000"
|
|
||||||
border.width: 2
|
|
||||||
border.color: "#CCCCCC"
|
|
||||||
anchors.margins: -15
|
|
||||||
}
|
|
||||||
|
|
||||||
// sign
|
// sign
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
id: signBox
|
id: signBox
|
||||||
anchors.margins: 40
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.right: parent.right
|
|
||||||
anchors.top: parent.top
|
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
|
@ -122,6 +110,7 @@ Rectangle {
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("Sign a message or file contents with your address:") + translationManager.emptyString
|
text: qsTr("Sign a message or file contents with your address:") + translationManager.emptyString
|
||||||
fontSize: 16
|
fontSize: 16
|
||||||
|
wrapMode: Text.Wrap
|
||||||
}
|
}
|
||||||
Label {}
|
Label {}
|
||||||
}
|
}
|
||||||
|
@ -147,7 +136,7 @@ Rectangle {
|
||||||
fontSize: mainLayout.lineEditFontSize
|
fontSize: mainLayout.lineEditFontSize
|
||||||
placeholderText: qsTr("Message to sign") + translationManager.emptyString;
|
placeholderText: qsTr("Message to sign") + translationManager.emptyString;
|
||||||
readOnly: false
|
readOnly: false
|
||||||
Layout.fillWidth: true
|
// Layout.fillWidth: true
|
||||||
onTextChanged: signSignatureLine.text = ""
|
onTextChanged: signSignatureLine.text = ""
|
||||||
|
|
||||||
IconButton {
|
IconButton {
|
||||||
|
@ -254,21 +243,16 @@ Rectangle {
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
id: signSignatureRow
|
id: signSignatureRow
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.right: parent.right
|
|
||||||
anchors.topMargin: 17
|
anchors.topMargin: 17
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: signSignatureLabel
|
id: signSignatureLabel
|
||||||
fontSize: 14
|
fontSize: 14
|
||||||
text: qsTr("Signature") + translationManager.emptyString
|
text: qsTr("Signature") + translationManager.emptyString
|
||||||
width: mainLayout.labelWidth
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LineEdit {
|
LineEdit {
|
||||||
id: signSignatureLine
|
id: signSignatureLine
|
||||||
anchors.left: signSignatureLabel.right
|
|
||||||
anchors.right: parent.right
|
|
||||||
fontSize: mainLayout.lineEditFontSize
|
fontSize: mainLayout.lineEditFontSize
|
||||||
placeholderText: qsTr("Signature") + translationManager.emptyString;
|
placeholderText: qsTr("Signature") + translationManager.emptyString;
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
@ -286,21 +270,10 @@ Rectangle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
anchors.fill: verifyBox
|
|
||||||
color: "#00000000"
|
|
||||||
border.width: 2
|
|
||||||
border.color: "#CCCCCC"
|
|
||||||
anchors.margins: -15
|
|
||||||
}
|
|
||||||
|
|
||||||
// verify
|
// verify
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
id: verifyBox
|
id: verifyBox
|
||||||
anchors.margins: 40
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.right: parent.right
|
|
||||||
anchors.top: signBox.bottom
|
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
|
@ -308,6 +281,8 @@ Rectangle {
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("Verify a message or file signature from an address:") + translationManager.emptyString
|
text: qsTr("Verify a message or file signature from an address:") + translationManager.emptyString
|
||||||
fontSize: 16
|
fontSize: 16
|
||||||
|
// Layout.fillWidth: true
|
||||||
|
wrapMode: Text.Wrap
|
||||||
}
|
}
|
||||||
Label {}
|
Label {}
|
||||||
}
|
}
|
||||||
|
@ -444,6 +419,8 @@ Rectangle {
|
||||||
text: qsTr("<style type='text/css'>a {text-decoration: none; color: #FF6C3C; font-size: 14px;}</style>\
|
text: qsTr("<style type='text/css'>a {text-decoration: none; color: #FF6C3C; font-size: 14px;}</style>\
|
||||||
Signing address <font size='2'> ( Paste in or select from </font> <a href='#'>Address book</a><font size='2'> )</font>")
|
Signing address <font size='2'> ( Paste in or select from </font> <a href='#'>Address book</a><font size='2'> )</font>")
|
||||||
+ translationManager.emptyString
|
+ translationManager.emptyString
|
||||||
|
// Layout.fillWidth: true
|
||||||
|
wrapMode: Text.Wrap
|
||||||
|
|
||||||
onLinkActivated: appWindow.showPageRequest("AddressBook")
|
onLinkActivated: appWindow.showPageRequest("AddressBook")
|
||||||
}
|
}
|
||||||
|
@ -460,24 +437,21 @@ Rectangle {
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
id: verifySignatureRow
|
id: verifySignatureRow
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.right: parent.right
|
|
||||||
anchors.topMargin: 17
|
anchors.topMargin: 17
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: verifySignatureLabel
|
id: verifySignatureLabel
|
||||||
fontSize: 14
|
fontSize: 14
|
||||||
text: qsTr("Signature") + translationManager.emptyString
|
text: qsTr("Signature") + translationManager.emptyString
|
||||||
width: mainLayout.labelWidth
|
Layout.fillWidth: true
|
||||||
}
|
}
|
||||||
|
|
||||||
LineEdit {
|
LineEdit {
|
||||||
id: verifySignatureLine
|
id: verifySignatureLine
|
||||||
anchors.left: verifySignatureLabel.right
|
|
||||||
anchors.right: parent.right
|
|
||||||
fontSize: mainLayout.lineEditFontSize
|
fontSize: mainLayout.lineEditFontSize
|
||||||
placeholderText: qsTr("Signature") + translationManager.emptyString;
|
placeholderText: qsTr("Signature") + translationManager.emptyString;
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
Layout.alignment: Qt.AlignLeft
|
||||||
|
|
||||||
IconButton {
|
IconButton {
|
||||||
imageSource: "../images/copyToClipboard.png"
|
imageSource: "../images/copyToClipboard.png"
|
||||||
|
|
|
@ -434,15 +434,6 @@ Rectangle {
|
||||||
enabled: !viewOnly || pageRoot.enabled
|
enabled: !viewOnly || pageRoot.enabled
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
// Label {
|
|
||||||
// id: manageWalletLabel
|
|
||||||
// Layout.fillWidth: true
|
|
||||||
// color: "#4A4949"
|
|
||||||
// text: qsTr("Advanced options") + translationManager.emptyString
|
|
||||||
// fontSize: 16
|
|
||||||
// Layout.topMargin: 20
|
|
||||||
// }
|
|
||||||
|
|
||||||
CheckBox {
|
CheckBox {
|
||||||
id: showAdvancedCheckbox
|
id: showAdvancedCheckbox
|
||||||
checked: persistentSettings.transferShowAdvanced
|
checked: persistentSettings.transferShowAdvanced
|
||||||
|
@ -463,7 +454,6 @@ Rectangle {
|
||||||
Layout.bottomMargin: 30
|
Layout.bottomMargin: 30
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
visible: persistentSettings.transferShowAdvanced
|
visible: persistentSettings.transferShowAdvanced
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
|
@ -493,9 +483,13 @@ Rectangle {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
RowLayout {
|
GridLayout {
|
||||||
visible: persistentSettings.transferShowAdvanced
|
visible: persistentSettings.transferShowAdvanced
|
||||||
Layout.topMargin: 50
|
Layout.topMargin: 50
|
||||||
|
|
||||||
|
|
||||||
|
columns: (isMobile) ? 2 : 6
|
||||||
|
|
||||||
StandardButton {
|
StandardButton {
|
||||||
id: sweepUnmixableButton
|
id: sweepUnmixableButton
|
||||||
text: qsTr("Sweep Unmixable") + translationManager.emptyString
|
text: qsTr("Sweep Unmixable") + translationManager.emptyString
|
||||||
|
@ -722,7 +716,6 @@ Rectangle {
|
||||||
priorityDropdown.dataModel = priorityModel;
|
priorityDropdown.dataModel = priorityModel;
|
||||||
priorityDropdown.currentIndex = 0
|
priorityDropdown.currentIndex = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: Add daemon sync status
|
//TODO: Add daemon sync status
|
||||||
|
|
|
@ -89,18 +89,22 @@ Rectangle {
|
||||||
Text {
|
Text {
|
||||||
text: qsTr("Verify that a third party made a payment by supplying:") + translationManager.emptyString
|
text: qsTr("Verify that a third party made a payment by supplying:") + translationManager.emptyString
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
|
Layout.fillWidth: true;
|
||||||
}
|
}
|
||||||
Text {
|
Text {
|
||||||
text: qsTr(" - the recipient address") + translationManager.emptyString
|
text: qsTr(" - the recipient address") + translationManager.emptyString
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
|
Layout.fillWidth: true;
|
||||||
}
|
}
|
||||||
Text {
|
Text {
|
||||||
text: qsTr(" - the transaction ID") + translationManager.emptyString
|
text: qsTr(" - the transaction ID") + translationManager.emptyString
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
|
Layout.fillWidth: true;
|
||||||
}
|
}
|
||||||
Text {
|
Text {
|
||||||
text: qsTr(" - the secret transaction key supplied by the sender") + translationManager.emptyString
|
text: qsTr(" - the secret transaction key supplied by the sender") + translationManager.emptyString
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
|
Layout.fillWidth: true;
|
||||||
}
|
}
|
||||||
Text {
|
Text {
|
||||||
text: qsTr("If a payment had several transactions then each must be checked and the results combined.") + translationManager.emptyString
|
text: qsTr("If a payment had several transactions then each must be checked and the results combined.") + translationManager.emptyString
|
||||||
|
|
1
qml.qrc
1
qml.qrc
|
@ -139,5 +139,6 @@
|
||||||
<file>components/DaemonConsole.qml</file>
|
<file>components/DaemonConsole.qml</file>
|
||||||
<file>components/QRCodeScanner.qml</file>
|
<file>components/QRCodeScanner.qml</file>
|
||||||
<file>components/Notifier.qml</file>
|
<file>components/Notifier.qml</file>
|
||||||
|
<file>components/MobileHeader.qml</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|
|
@ -59,6 +59,7 @@ ColumnLayout {
|
||||||
settingsObject['account_name'] = uiItem.accountNameText
|
settingsObject['account_name'] = uiItem.accountNameText
|
||||||
settingsObject['words'] = uiItem.wordsTexttext
|
settingsObject['words'] = uiItem.wordsTexttext
|
||||||
settingsObject['wallet_path'] = uiItem.walletPath
|
settingsObject['wallet_path'] = uiItem.walletPath
|
||||||
|
console.log("path " +uiItem.walletPath);
|
||||||
var walletFullPath = wizard.createWalletPath(uiItem.walletPath,uiItem.accountNameText);
|
var walletFullPath = wizard.createWalletPath(uiItem.walletPath,uiItem.accountNameText);
|
||||||
return wizard.walletPathValid(walletFullPath);
|
return wizard.walletPathValid(walletFullPath);
|
||||||
}
|
}
|
||||||
|
|
|
@ -162,10 +162,16 @@ ColumnLayout {
|
||||||
folder_path = folder_path.substring(0,folder_path.length -1)
|
folder_path = folder_path.substring(0,folder_path.length -1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Store releative path on ios.
|
||||||
|
if(isIOS)
|
||||||
|
folder_path = "";
|
||||||
|
|
||||||
return folder_path + "/" + account_name + "/" + account_name
|
return folder_path + "/" + account_name + "/" + account_name
|
||||||
}
|
}
|
||||||
|
|
||||||
function walletPathValid(path){
|
function walletPathValid(path){
|
||||||
|
if(isIOS)
|
||||||
|
path = moneroAccountsDir + path;
|
||||||
if (walletManager.walletExists(path)) {
|
if (walletManager.walletExists(path)) {
|
||||||
walletErrorDialog.text = qsTr("A wallet with same name already exists. Please change wallet name") + translationManager.emptyString;
|
walletErrorDialog.text = qsTr("A wallet with same name already exists. Please change wallet name") + translationManager.emptyString;
|
||||||
walletErrorDialog.open();
|
walletErrorDialog.open();
|
||||||
|
@ -195,8 +201,16 @@ ColumnLayout {
|
||||||
function applySettings() {
|
function applySettings() {
|
||||||
// Save wallet files in user specified location
|
// Save wallet files in user specified location
|
||||||
var new_wallet_filename = createWalletPath(settings.wallet_path,settings.account_name)
|
var new_wallet_filename = createWalletPath(settings.wallet_path,settings.account_name)
|
||||||
console.log("saving in wizard: "+ new_wallet_filename)
|
if(isIOS) {
|
||||||
settings.wallet.store(new_wallet_filename);
|
console.log("saving in ios: "+ moneroAccountsDir + new_wallet_filename)
|
||||||
|
settings.wallet.store(moneroAccountsDir + new_wallet_filename);
|
||||||
|
} else {
|
||||||
|
console.log("saving in wizard: "+ new_wallet_filename)
|
||||||
|
settings.wallet.store(new_wallet_filename);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// make sure temporary wallet files are deleted
|
// make sure temporary wallet files are deleted
|
||||||
console.log("Removing temporary wallet: "+ settings.tmp_wallet_filename)
|
console.log("Removing temporary wallet: "+ settings.tmp_wallet_filename)
|
||||||
|
|
|
@ -242,8 +242,7 @@ ColumnLayout {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 20
|
Layout.topMargin: 20
|
||||||
fontSize: 14
|
fontSize: 14
|
||||||
text: qsTr("Your wallet is stored in") + translationManager.emptyString
|
text: qsTr("Your wallet is stored in") + fileUrlInput.text;
|
||||||
+ translationManager.emptyString
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LineEdit {
|
LineEdit {
|
||||||
|
|
Loading…
Reference in a new issue