From bd38e5e1d8174678e9c0c9496d0ac32f4d885ceb Mon Sep 17 00:00:00 2001 From: dsc Date: Fri, 9 Apr 2021 18:00:12 +0200 Subject: [PATCH] Refactor numpad code, transfer screen --- src/main.cpp | 8 + src/utils/prices.cpp | 2 +- src/vr/assets/themes.json | 2 +- src/vr/main.cpp | 4 - src/vr/main.h | 19 +- src/vr/main.qml | 34 +-- src/vr/qml/AboutPage.qml | 2 +- src/vr/qml/WalletPage.qml | 3 +- src/vr/qml/common/MyNumPad.qml | 67 ++--- src/vr/qml/common/MyNumPadButton.qml | 4 +- src/vr/qml/common/MyStackViewPage.qml | 22 +- src/vr/qml/wallet/WalletDashBoardPage.qml | 5 + src/vr/qml/wallet/send/SendPage.qml | 9 +- src/vr/qml/wallet/send/SendPagePIN.qml | 49 ++-- src/vr/qml/wallet/send/SendPageQR.qml | 6 +- src/vr/qml/wallet/send/SendPageTransfer.qml | 277 ++++++++++---------- 16 files changed, 260 insertions(+), 253 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 3393f4e..65d28d6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -120,6 +120,14 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) { if(openVREnabled) { #ifdef HAS_OPENVR + // @TODO: custom DPI / AA +// QCoreApplication::setAttribute( Qt::AA_UseDesktopOpenGL ); +// QCoreApplication::setAttribute( Qt::AA_Use96Dpi ); + if(qgetenv("scale") == "1") + QCoreApplication::setAttribute( Qt::AA_EnableHighDpiScaling ); + if(qgetenv("noscale") == "1") + QCoreApplication::setAttribute( Qt::AA_DisableHighDpiScaling ); + QApplication vr_app(argc, argv); auto *ctx = new AppContext(&parser); auto *vr = new wowletvr::WowletVR(ctx, &parser, &vr_app); diff --git a/src/utils/prices.cpp b/src/utils/prices.cpp index 445b493..ed3bb09 100644 --- a/src/utils/prices.cpp +++ b/src/utils/prices.cpp @@ -38,7 +38,7 @@ void Prices::cryptoPricesReceived(const QJsonArray &data) { for(auto &&entry: data) { marketStruct ms; QJsonObject obj = entry.toObject(); - ms.symbol = obj.value("symbol").toString(); + ms.symbol = obj.value("symbol").toString().toUpper(); ms.image = obj.value("image").toString(); ms.name = obj.value("name").toString(); ms.price_usd = obj.value("current_price").toDouble(); diff --git a/src/vr/assets/themes.json b/src/vr/assets/themes.json index 4c2f049..0902ed3 100644 --- a/src/vr/assets/themes.json +++ b/src/vr/assets/themes.json @@ -3,7 +3,7 @@ "fontColor": "white", "fontColorDimmed": "#cccccc", "fontColorBright": "white", - "backgroundGradientStartColor": "#194f64", + "backgroundGradientStartColor": "#225d73", "backgroundGradientStopColor": "#192e43", "backgroundColor": "#1b2939", "divideColor": "50ffffff", diff --git a/src/vr/main.cpp b/src/vr/main.cpp index fedf4e7..cd1bf40 100644 --- a/src/vr/main.cpp +++ b/src/vr/main.cpp @@ -83,10 +83,6 @@ namespace wowletvr { qRegisterMetaType(); qRegisterMetaType(); - // @TODO: custom DPI / AA -// QCoreApplication::setAttribute( Qt::AA_UseDesktopOpenGL ); -// QCoreApplication::setAttribute( Qt::AA_Use96Dpi ); - if(!desktopMode) { if(!openvr_init::initializeOpenVR(openvr_init::OpenVrInitializationType::Overlay)) throw std::runtime_error("Error: initializeOpenVR()"); diff --git a/src/vr/main.h b/src/vr/main.h index 4889b09..aa13882 100644 --- a/src/vr/main.h +++ b/src/vr/main.h @@ -57,12 +57,25 @@ namespace wowletvr { m_pClipboard->setText(text, QClipboard::Selection); } - Q_INVOKABLE QString amountToFiat(double amount) { + Q_INVOKABLE QString preferredFiat() { + return config()->get(Config::preferredFiatCurrency).toString(); + } + + Q_INVOKABLE QString fiatToWow(double amount) { + auto preferredFiatCurrency = config()->get(Config::preferredFiatCurrency).toString(); + if (amount <= 0) return QString("0.00"); + + double conversionAmount = AppContext::prices->convert(preferredFiatCurrency, "WOW", amount); + return QString("%1").arg(QString::number(conversionAmount, 'f', 2)); + } + + Q_INVOKABLE QString wowToFiat(double amount) { auto preferredFiatCurrency = config()->get(Config::preferredFiatCurrency).toString(); - if (amount <= 0) return QString("0.00 %1").arg(preferredFiatCurrency); + if (amount <= 0) return QString("0.00"); double conversionAmount = AppContext::prices->convert("WOW", preferredFiatCurrency, amount); - return QString("~%1 %2").arg(QString::number(conversionAmount, 'f', 2), preferredFiatCurrency); + if(conversionAmount <= 0) return QString("0.00"); + return QString("~%1").arg(QString::number(conversionAmount, 'f', 2)); } private: diff --git a/src/vr/main.qml b/src/vr/main.qml index 0c1df3b..819613b 100644 --- a/src/vr/main.qml +++ b/src/vr/main.qml @@ -22,7 +22,8 @@ Rectangle { color: "transparent" property var themes: {} - property string theme: "wownero" + property string theme: "default" + property string fiatSymbol: "USD" signal initTheme(); // Components that have been dynamically created need to redraw @@ -309,24 +310,23 @@ Rectangle { try { appWindow.themes = WowletVR.getThemes(); appWindow.theme = WowletVR.getCurrentTheme(); - } - catch(err) { + } catch(err) { // for debugging purposes - do not change color codes here, use themes.json instead. appWindow.themes = { - "default": { - "fontColor": "white", - "fontColorDimmed": "#cccccc", - "fontColorBright": "#white", - "backgroundGradientStartColor": "#194f64", - "backgroundGradientStopColor": "#192e43", - }, - "wownero": { - "fontColor": "#bd93f9", - "fontColorDimmed": "#cccccc", - "fontColorBright": "#e5d3ff", - "backgroundGradientStartColor": "#383a59", - "backgroundGradientStopColor": "#282a36", - } + "default": { + "fontColor": "white", + "fontColorDimmed": "#cccccc", + "fontColorBright": "white", + "backgroundGradientStartColor": "#225d73", + "backgroundGradientStopColor": "#192e43", + }, + "wownero": { + "fontColor": "#bd93f9", + "fontColorDimmed": "#cccccc", + "fontColorBright": "#e5d3ff", + "backgroundGradientStartColor": "#383a59", + "backgroundGradientStopColor": "#282a36", + } } } diff --git a/src/vr/qml/AboutPage.qml b/src/vr/qml/AboutPage.qml index a09cdee..c50cc6e 100644 --- a/src/vr/qml/AboutPage.qml +++ b/src/vr/qml/AboutPage.qml @@ -47,8 +47,8 @@ ColumnLayout { Layout.leftMargin: 40 Layout.rightMargin: 40 Layout.fillWidth: true - text: "Greetings: matzman666, qvqc, ez, Gatto, cisme, wowario, lza_menace, jwinterm, nioc, asymptotically, azy, selsta, kico, laura, thrmo, rottensox, solar, bl4sty, scoobybejesus" fontSize: 14 + text: "Shoutouts: matzman666, qvqc, ez, Gatto, RAGEHAÜZ, cisme, wowario, lza_menace, jwinterm, nioc, asymptotically, azy, selsta, kico, laura, thrmo, rottensox, solar, bl4sty, scoobybejesus" wrap: true } diff --git a/src/vr/qml/WalletPage.qml b/src/vr/qml/WalletPage.qml index 2ad9604..48d72bc 100755 --- a/src/vr/qml/WalletPage.qml +++ b/src/vr/qml/WalletPage.qml @@ -35,6 +35,7 @@ Rectangle { StackView { id: walletView anchors.fill: parent + initialItem: walletDashboardPage pushEnter: Transition { PropertyAnimation { @@ -72,8 +73,6 @@ Rectangle { easing.type: Easing.OutCubic } } - - initialItem: walletDashboardPage } function onPageCompleted() { diff --git a/src/vr/qml/common/MyNumPad.qml b/src/vr/qml/common/MyNumPad.qml index 84af802..24337a5 100644 --- a/src/vr/qml/common/MyNumPad.qml +++ b/src/vr/qml/common/MyNumPad.qml @@ -6,34 +6,23 @@ import "." ColumnLayout { id: root enabled: true + spacing: 16 property double disabledOpacity: 0.4 - property var code: []; + property bool compact: false signal resolvePressed(); - signal codeUpdated(var pin_code); - - function onButtonPress(val) { - code.push(val); - - if(code.length === 5) - code = [val]; - - codeUpdated(code); - } - - function reset() { - root.code = []; - } + signal buttonPress(string val); + signal clearPress(); RowLayout { - spacing: 20 + spacing: 18 MyNumPadButton { opacity: root.enabled ? 1 : disabledOpacity text: "1" onClicked: { - onButtonPress("1"); + buttonPress("1"); } } @@ -41,7 +30,7 @@ ColumnLayout { opacity: root.enabled ? 1 : disabledOpacity text: "2" onClicked: { - onButtonPress("2"); + buttonPress("2"); } } @@ -49,19 +38,19 @@ ColumnLayout { opacity: root.enabled ? 1 : disabledOpacity text: "3" onClicked: { - onButtonPress("3"); + buttonPress("3"); } } } RowLayout { - spacing: 20 + spacing: 18 MyNumPadButton { opacity: root.enabled ? 1 : disabledOpacity text: "4" onClicked: { - onButtonPress("4"); + buttonPress("4"); } } @@ -69,7 +58,7 @@ ColumnLayout { opacity: root.enabled ? 1 : disabledOpacity text: "5" onClicked: { - onButtonPress("5"); + buttonPress("5"); } } @@ -77,19 +66,19 @@ ColumnLayout { opacity: root.enabled ? 1 : disabledOpacity text: "6" onClicked: { - onButtonPress("6"); + buttonPress("6"); } } } RowLayout { - spacing: 20 + spacing: 18 MyNumPadButton { opacity: root.enabled ? 1 : disabledOpacity text: "7" onClicked: { - onButtonPress("7"); + buttonPress("7"); } } @@ -97,7 +86,7 @@ ColumnLayout { opacity: root.enabled ? 1 : disabledOpacity text: "8" onClicked: { - onButtonPress("8"); + buttonPress("8"); } } @@ -105,32 +94,44 @@ ColumnLayout { opacity: root.enabled ? 1 : disabledOpacity text: "9" onClicked: { - onButtonPress("9"); + buttonPress("9"); } } } RowLayout { - spacing: 20 + spacing: 18 MyNumPadButton { opacity: root.enabled ? 1 : disabledOpacity text: "0" onClicked: { - onButtonPress("0"); + buttonPress("0"); + } + } + + MyNumPadButton { + visible: root.compact + opacity: root.enabled ? 1 : disabledOpacity + text: "." + onClicked: { + buttonPress("."); } } MyNumPadButton { opacity: root.enabled ? 1 : disabledOpacity - Layout.preferredWidth: 204 + Layout.preferredWidth: root.compact ? 106 : 230 fontSize: 16 - text: "Clear" + text: root.compact ? "C" : "Clear" onClicked: { - root.code = [0,0,0,0]; - root.codeUpdated(root.code); + clearPress(); } } } + + function reset() { + + } } diff --git a/src/vr/qml/common/MyNumPadButton.qml b/src/vr/qml/common/MyNumPadButton.qml index cbce685..7d17023 100644 --- a/src/vr/qml/common/MyNumPadButton.qml +++ b/src/vr/qml/common/MyNumPadButton.qml @@ -11,8 +11,8 @@ Rectangle { signal clicked; - Layout.preferredWidth: 92 - Layout.preferredHeight: 92 + Layout.preferredWidth: 106 + Layout.preferredHeight: 106 color: Style.btnExitedColor MyText { diff --git a/src/vr/qml/common/MyStackViewPage.qml b/src/vr/qml/common/MyStackViewPage.qml index def729d..2ad651b 100755 --- a/src/vr/qml/common/MyStackViewPage.qml +++ b/src/vr/qml/common/MyStackViewPage.qml @@ -128,7 +128,6 @@ Rectangle { ColumnLayout { id: mainLayout - spacing: 12 anchors.fill: parent } @@ -147,7 +146,7 @@ Rectangle { anchors.leftMargin: 40 anchors.rightMargin: 40 - color: Style.fontColorDimmed + color: Style.dividerColor height: 1 } @@ -169,7 +168,7 @@ Rectangle { Rectangle { Layout.fillHeight: true Layout.preferredWidth: 1 - color: Style.fontColorDimmed + color: Style.dividerColor } RowLayout { @@ -204,7 +203,7 @@ Rectangle { Rectangle { Layout.fillHeight: true Layout.preferredWidth: 1 - color: Style.fontColorDimmed + color: Style.dividerColor } RowLayout { @@ -228,12 +227,21 @@ Rectangle { Rectangle { Layout.fillHeight: true Layout.preferredWidth: 1 - color: Style.fontColorDimmed + color: Style.dividerColor } MyText { fontSize: 14 - text: "Balance: " + WowletVR.amountToFiat(appWindow.spendable); + text: { + let rtn = "Balance: "; + try { + rtn += WowletVR.wowToFiat(appWindow.spendable); + } catch(err) { + rtn += "ERROR"; + } + + return rtn + " " + appWindow.fiatSymbol + } color: Style.fontColorDimmed } } @@ -251,7 +259,7 @@ Rectangle { content.Layout.topMargin = 10 content.Layout.leftMargin = 40 content.Layout.rightMargin = 40 - content.Layout.bottomMargin = 40 + content.Layout.bottomMargin = 10 bigRect.parent = mainLayout } diff --git a/src/vr/qml/wallet/WalletDashBoardPage.qml b/src/vr/qml/wallet/WalletDashBoardPage.qml index 3e7cffe..40e9195 100644 --- a/src/vr/qml/wallet/WalletDashBoardPage.qml +++ b/src/vr/qml/wallet/WalletDashBoardPage.qml @@ -95,5 +95,10 @@ MyStackViewPage { function onPageCompleted() { historyView.onPageCompleted(); + try { + appWindow.fiatSymbol = WowletVR.preferredFiat(); + } catch(err) { + + } } } \ No newline at end of file diff --git a/src/vr/qml/wallet/send/SendPage.qml b/src/vr/qml/wallet/send/SendPage.qml index 58c5d8f..f5d8d10 100755 --- a/src/vr/qml/wallet/send/SendPage.qml +++ b/src/vr/qml/wallet/send/SendPage.qml @@ -8,6 +8,7 @@ import "." MyStackViewPage { id: sendStateController + height: 800 width: 1600 headerText: "Send" @@ -32,9 +33,6 @@ MyStackViewPage { } } - // if(previousView !== null && currentView.viewName === "wizardHome") - // wizardController.restart(); - if (currentView) { sendStack.replace(currentView) // Calls when view is opened @@ -44,10 +42,6 @@ MyStackViewPage { } previousView = currentView; - - // reset push direction - // if(wizardController.wizardState == "wizardHome") - // wizardController.wizardStackView.backTransition = false; } states: [ @@ -105,6 +99,7 @@ MyStackViewPage { onBackClicked: { // top back button to send/receive menu, reset default states for sendViews sendStateView.pinPage.onPageCompleted(); + sendStateView.qrPage.onPageCompleted(); sendStateView.dashPage.onPageCompleted(); sendStateView.transferPage.onPageCompleted(); } diff --git a/src/vr/qml/wallet/send/SendPagePIN.qml b/src/vr/qml/wallet/send/SendPagePIN.qml index a202ce4..6cc3ea2 100644 --- a/src/vr/qml/wallet/send/SendPagePIN.qml +++ b/src/vr/qml/wallet/send/SendPagePIN.qml @@ -9,7 +9,7 @@ ColumnLayout { id: root Layout.fillWidth: true - property string _PINLookup: "" + property string pin: "" MyText { Layout.fillWidth: true @@ -29,25 +29,11 @@ ColumnLayout { MyNumPad { id: numPad - onCodeUpdated: { - let codeFmt = ""; - - for(var i = 0; i != 4; i++) { - if(pin_code[i] !== undefined) { - codeFmt += pin_code[i] + " "; - } else { - codeFmt += ". "; - } + onButtonPress: { + root.pin += val; + if(root.pin.length === 4 && root.pin !== "0000") { + return addressLookup(); } - - // update display thingy - codeDisplay.text = codeFmt; - - // lol Qt - codeFmt = codeFmt.replace(" ", "").replace(" ", "").replace(" ", "").replace(" ", "").replace(" ", "").trim(); - - if(pin_code.length === 4 && codeFmt != "0000") - addressLookup(codeFmt); } } @@ -66,7 +52,7 @@ ColumnLayout { id: codeDisplay Layout.preferredWidth: 390 visible: true - text: "0 0 0 0" + text: (root.pin[0] || ".") + " " + (root.pin[1] || ".") + " " + (root.pin[2] || ".") + " " + (root.pin[3] || "."); color: Style.fontColor font.bold: true font.pointSize: 40 @@ -136,7 +122,7 @@ ColumnLayout { } MyText { - text: _PINLookup + text: root.pin } } } @@ -148,18 +134,18 @@ ColumnLayout { Layout.fillWidth: true } - function addressLookup(code) { - if(_PINLookup !== "") - return; - - _PINLookup = code; - + function addressLookup() { + console.log("addressLookup()"); idleContainer.visible = false; loadingContainer.visible = true; numPad.enabled = false; - ctx.onLookupReceivingPIN(code); + try { + ctx.onLookupReceivingPIN(root.pin); + } catch(err){ + console.log("ctx.onLookupReceivingPIN() ignored") + } } function onPageCompleted(previousView) { @@ -167,8 +153,9 @@ ColumnLayout { } function reset() { + console.log("SendPagePin reset()"); // reset state - _PINLookup = ""; + root.pin = ""; idleContainer.visible = true; loadingContainer.visible = false; @@ -176,8 +163,6 @@ ColumnLayout { numPad.enabled = true; numPad.reset(); - - codeDisplay.text = "0 0 0 0"; } Connections { @@ -186,7 +171,7 @@ ColumnLayout { function onPinLookupReceived(address, pin) { console.log("onPinLookupReceived", address); - if(pin === _PINLookup) { + if(pin === root.pin) { sendStateController.destinationAddress = address; sendStateView.state = "transferPage"; } else { diff --git a/src/vr/qml/wallet/send/SendPageQR.qml b/src/vr/qml/wallet/send/SendPageQR.qml index 0abc22b..a8ab76c 100644 --- a/src/vr/qml/wallet/send/SendPageQR.qml +++ b/src/vr/qml/wallet/send/SendPageQR.qml @@ -42,7 +42,11 @@ ColumnLayout { Layout.fillWidth: true } - function onPageCompleted(previousView){ + function reset() { + + } + function onPageCompleted(previousView){ + reset(); } } \ No newline at end of file diff --git a/src/vr/qml/wallet/send/SendPageTransfer.qml b/src/vr/qml/wallet/send/SendPageTransfer.qml index 94a3652..0e5c963 100644 --- a/src/vr/qml/wallet/send/SendPageTransfer.qml +++ b/src/vr/qml/wallet/send/SendPageTransfer.qml @@ -9,7 +9,8 @@ ColumnLayout { spacing: 30 property string txDialogText: "" - property double amount: 0.0 + property string amount: "" + property string amount_type: "wow" property bool canSend: false Layout.fillWidth: true @@ -21,37 +22,85 @@ ColumnLayout { text: "How much would you like to send?" } - MyNumPadSendAmount { - id: myNumPadSendAmount - Layout.fillWidth: true - Layout.preferredHeight: 112 - Layout.maximumHeight: 112 - - onAmountUpdated: { - root.amount = amount; - fiatText.text = WowletVR.amountToFiat(root.amount); - - // @TODO: tx validation here - if(root.amount <= 0) { - root.canSend = false; - } else if(root.amount > appWindow.spendable) { - root.canSend = false; - } else { - root.canSend = true; - } - } + function count(input, needle) { + return input.split(".").length - 1; } RowLayout { - spacing: 30 - Layout.topMargin: 20 - Layout.fillHeight: true - Layout.fillWidth: true + spacing: 40 + + ColumnLayout { + Layout.preferredWidth: 320 + Layout.preferredHeight: 400 + + MyNumPad { + id: numPad + compact: true + onButtonPress: { + let periods = count(root.amount, "."); + if(periods == 1 && val === ".") return; + if(root.amount === "" && val === ".") return; + if(root.amount.length > 7) return; + + root.amount += val; + } + onClearPress: { + root.amount = ""; + } + } + + Rectangle { + Layout.fillHeight: true + Layout.preferredWidth: parent.Layout.preferredWidth + color: "transparent" + } + } + + ColumnLayout { + spacing: 14 + Layout.fillHeight: true + Layout.preferredWidth: 280 + + MyPushButton { + id: wowButton + opacity: enabled ? 1.0 : 0.4 + enabled: root.amount_type === "fiat" + + Layout.preferredWidth: 280 + Layout.preferredHeight: 108 + + text: "Wownero" + + onClicked: { + root.amount_type = "wow" + } + } + + MyPushButton { + id: fiatBtn + opacity: enabled ? 1.0 : 0.4 + enabled: root.amount_type === "wow" + + Layout.preferredWidth: 280 + Layout.preferredHeight: 108 + + text: "Fiat" + + onClicked: { + root.amount_type = "fiat" + } + } + + Item { + Layout.fillHeight: true + Layout.fillWidth: true + } + } ColumnLayout { spacing: 10 Layout.fillHeight: true - Layout.maximumWidth: parent.width / 2 + RowLayout { spacing: 30 @@ -78,7 +127,21 @@ ColumnLayout { MyText { fontSize: 24 fontColor: Style.fontColorBright - text: root.amount + " WOW" + text: { + let rtn = ""; + if(root.amount === "") rtn += "0.0" + else if(root.amount_type === "wow") { + rtn += root.amount; + } else { + try { + rtn += WowletVR.fiatToWow(root.amount); + } catch(err) { + return "ERROR"; + } + } + + return rtn + " WOW"; + } anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right } @@ -111,7 +174,21 @@ ColumnLayout { id: fiatText fontSize: 18 fontColor: Style.fontColorBright - text: "$0.00 USD" + text: { + let rtn = ""; + if(root.amount === "") rtn += "0.0" + else if(root.amount_type === "fiat") { + rtn += root.amount; + } else { + try { + rtn += WowletVR.wowToFiat(root.amount); + } catch(err) { + return "ERROR"; + } + } + + return rtn + " " + appWindow.fiatSymbol + } anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right } @@ -153,133 +230,49 @@ ColumnLayout { Layout.fillWidth: true Layout.fillHeight: true } - } - - Rectangle { - color: "transparent" - Layout.fillWidth: true - Layout.fillHeight: true - } - } - RowLayout { - Layout.preferredWidth: parent.width - Layout.preferredHeight: 128 - - MyPushButton { - id: keyboardButton - Layout.preferredWidth: 700 - - text: "Enter amount via virtual keyboard" - - onClicked: { - OverlayController.showKeyboard(text, 1337) - } - } - - MyPushButton { - id: sendButton - opacity: root.canSend ? 1.0 : 0.5 - enabled: root.canSend + MyPushButton { + id: sendButton - Layout.preferredWidth: 420 - Layout.alignment: Qt.AlignRight + Layout.preferredWidth: 420 + Layout.alignment: Qt.AlignRight - text: "Create transaction" + text: "Create transaction" - onClicked: { - WowletVR.onCreateTransaction(destinationAddress, root.amount, "", false); // no description - sendButton.enabled = false; - } - } - } + onClicked: { + if(amount === "") return; - Item { - Layout.fillWidth: true - Layout.fillHeight: true - } + let _amount = parseFloat(amount); + if(root.amount_type == "fiat") { + try { + _amount = WowletVR.fiatToWow(_amount); + } catch(err) { + messagePopup.showMessage("Error", "Could not convert fiat to wow."); + return; + } + } - Connections { - target: OverlayController + if(amount <= 0) { + messagePopup.showMessage("Error", "Amount was zero."); + return; + } - function onKeyBoardInputSignal(input, userValue) { - if (userValue == 1337) { - let val = parseFloat(input); - if(val >= 0) - myNumPadSendAmount.onAmountUpdated(val); + WowletVR.onCreateTransaction(destinationAddress, _amount.toString(), "", false); // no description + sendButton.enabled = false; + } } } } - Connections { - target: ctx - - function onInitiateTransaction() { - console.log("transactionStarted"); - - mainView.opacity = 0.4; - mainView.enabled = false; - root.canSend = false; - root.txDialogText = "Busy creating transaction. Hold on tight!"; - - waitPopup.open(); - } - - function onCreateTransactionError(message) { // str - console.log("onCreateTransactionError", message); - waitPopup.close(); - - mainView.opacity = 1.0; - mainView.enabled = true; - root.canSend = true; - root.txDialogText = ""; - - messagePopup.showMessage("Error creating tx", message); - } - - function onCreateTransactionSuccess(tx, address) { // PendingTransaction - console.log("onCreateTransactionSuccess", address) - root.txDialogText = "Submitting transaction to the Wownero network."; - } - - function onTransactionCommitted(status, tx, txid) { // bool,PendingTransaction,stringlist - console.log("onTransactionCommitted", status); - waitPopup.close(); - - mainView.opacity = 1.0; - mainView.enabled = true; - root.canSend = true; - root.txDialogText = ""; - - walletView.pop(); - } + function onPageCompleted() { + root.amount = ""; + root.amount_type = "wow"; + root.txDialogText = ""; } - - function onPageCompleted(previousView){ - - } - - Popup { - id: waitPopup - - implicitHeight: 100 - implicitWidth: 1200 - x: (parent.width - width) / 2 - y: (parent.height - height) / 2 - - ColumnLayout { - anchors.fill: parent - MyText { - Layout.alignment: Qt.AlignHCenter - fontColor: Style.fontColor - text: root.txDialogText - } - } - - background: Rectangle { - color: "black" - opacity: 0.8 - } + + Item { + Layout.fillWidth: true + Layout.fillHeight: true } Component.onCompleted: {