ios build settings

This commit is contained in:
Jaquee 2017-04-03 18:51:55 +02:00
parent da6aad33a4
commit 2e53c524a1
20 changed files with 505 additions and 371 deletions

View file

@ -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

View file

@ -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 {

View file

@ -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)
} // }
} // }
} }

View file

@ -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
View 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"
}
}

View file

@ -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

View file

@ -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

View file

@ -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
View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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){

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -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>

View file

@ -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);
} }

View file

@ -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)

View file

@ -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 {