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