diff options
| -rw-r--r-- | CMakeLists.txt | 5 | ||||
| -rw-r--r-- | Dockerfile.linux | 4 | ||||
| -rw-r--r-- | LeftPanel.qml | 14 | ||||
| -rw-r--r-- | Makefile | 4 | ||||
| -rw-r--r-- | components/RemoteNodeList.qml | 2 | ||||
| -rw-r--r-- | main.qml | 3 | ||||
| -rw-r--r-- | pages/History.qml | 1 | ||||
| -rw-r--r-- | pages/settings/SettingsInfo.qml | 2 | ||||
| -rw-r--r-- | src/main/main.cpp | 6 | ||||
| -rw-r--r-- | wizard/WizardController.qml | 2 | ||||
| -rw-r--r-- | wizard/WizardCreateDevice1.qml | 7 | ||||
| -rw-r--r-- | wizard/WizardCreateWallet1.qml | 7 | ||||
| -rw-r--r-- | wizard/WizardCreateWallet4.qml | 4 | ||||
| -rw-r--r-- | wizard/WizardHome.qml | 18 | ||||
| -rw-r--r-- | wizard/WizardRestoreWallet3.qml | 5 | ||||
| -rw-r--r-- | wizard/WizardRestoreWallet4.qml | 4 | ||||
| -rw-r--r-- | wizard/WizardSummary.qml | 2 |
17 files changed, 65 insertions, 25 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 320f814b..4452d80e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,7 @@ option(STATIC "Link libraries statically, requires static Qt") option(USE_DEVICE_TREZOR "Trezor support compilation" ON) option(WITH_SCANNER "Enable webcam QR scanner" OFF) +option(WITH_DESKTOP_ENTRY "Ask to install desktop entry on first startup" ON) option(DEV_MODE "Checkout latest monero master on build" OFF) list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_SOURCE_DIR}/cmake") @@ -112,6 +113,10 @@ if(WITH_SCANNER) add_definitions(-DWITH_SCANNER) endif() +if(WITH_DESKTOP_ENTRY) + add_definitions(-DWITH_DESKTOP_ENTRY) +endif() + # Sodium find_library(SODIUM_LIBRARY sodium) message(STATUS "libsodium: libraries at ${SODIUM_LIBRARY}") diff --git a/Dockerfile.linux b/Dockerfile.linux index 5d7ece4f..ea92e273 100644 --- a/Dockerfile.linux +++ b/Dockerfile.linux @@ -242,9 +242,9 @@ RUN git clone -b v1.0.23 --depth 1 https://github.com/libusb/libusb && \ make -j$THREADS install && \ rm -rf $(pwd) -RUN git clone -b hidapi-0.9.0 --depth 1 https://github.com/libusb/hidapi && \ +RUN git clone -b hidapi-0.11.0 --depth 1 https://github.com/libusb/hidapi && \ cd hidapi && \ - git reset --hard 7da5cc91fc0d2dbe4df4f08cd31f6ca1a262418f && \ + git reset --hard 0ec60c03cbe87cdbfb9fb199c7536fdcbc0a94b8 && \ ./bootstrap && \ ./configure --disable-shared --enable-static && \ make -j$THREADS && \ diff --git a/LeftPanel.qml b/LeftPanel.qml index 13c9b271..cf56c56b 100644 --- a/LeftPanel.qml +++ b/LeftPanel.qml @@ -360,7 +360,7 @@ Rectangle { anchors.left: parent.left anchors.right: parent.right text: qsTr("Account") + translationManager.emptyString - symbol: (isMac ? "⌘" : qsTr("Ctrl+")) + "T" + translationManager.emptyString + symbol: (isMac ? "⌃" : qsTr("Ctrl+")) + "T" + translationManager.emptyString onClicked: { parent.previousButton.checked = false @@ -382,7 +382,7 @@ Rectangle { anchors.left: parent.left anchors.right: parent.right text: qsTr("Send") + translationManager.emptyString - symbol: (isMac ? "⌘" : qsTr("Ctrl+")) + "S" + translationManager.emptyString + symbol: (isMac ? "⌃" : qsTr("Ctrl+")) + "S" + translationManager.emptyString onClicked: { parent.previousButton.checked = false parent.previousButton = transferButton @@ -404,7 +404,7 @@ Rectangle { anchors.left: parent.left anchors.right: parent.right text: qsTr("Address book") + translationManager.emptyString - symbol: (isMac ? "⌘" : qsTr("Ctrl+")) + "B" + translationManager.emptyString + symbol: (isMac ? "⌃" : qsTr("Ctrl+")) + "B" + translationManager.emptyString under: transferButton onClicked: { parent.previousButton.checked = false @@ -426,7 +426,7 @@ Rectangle { anchors.left: parent.left anchors.right: parent.right text: qsTr("Receive") + translationManager.emptyString - symbol: (isMac ? "⌘" : qsTr("Ctrl+")) + "R" + translationManager.emptyString + symbol: (isMac ? "⌃" : qsTr("Ctrl+")) + "R" + translationManager.emptyString onClicked: { parent.previousButton.checked = false parent.previousButton = receiveButton @@ -448,7 +448,7 @@ Rectangle { anchors.left: parent.left anchors.right: parent.right text: qsTr("Transactions") + translationManager.emptyString - symbol: (isMac ? "⌘" : qsTr("Ctrl+")) + "H" + translationManager.emptyString + symbol: (isMac ? "⌃" : qsTr("Ctrl+")) + "H" + translationManager.emptyString onClicked: { parent.previousButton.checked = false parent.previousButton = historyButton @@ -470,7 +470,7 @@ Rectangle { anchors.left: parent.left anchors.right: parent.right text: qsTr("Advanced") + translationManager.emptyString - symbol: (isMac ? "⌘" : qsTr("Ctrl+")) + "D" + translationManager.emptyString + symbol: (isMac ? "⌃" : qsTr("Ctrl+")) + "D" + translationManager.emptyString onClicked: { parent.previousButton.checked = false parent.previousButton = advancedButton @@ -491,7 +491,7 @@ Rectangle { anchors.left: parent.left anchors.right: parent.right text: qsTr("Settings") + translationManager.emptyString - symbol: (isMac ? "⌘" : qsTr("Ctrl+")) + "E" + translationManager.emptyString + symbol: (isMac ? "⌃" : qsTr("Ctrl+")) + "E" + translationManager.emptyString onClicked: { parent.previousButton.checked = false parent.previousButton = settingsButton @@ -48,9 +48,7 @@ release: mkdir -p $(builddir)/release && cd $(builddir)/release && cmake -D DEV_MODE=$(or ${DEV_MODE},OFF) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D CMAKE_BUILD_TYPE=Release $(topdir) && $(MAKE) release-linux-armv8: - mkdir -p $(builddir)/release - cd $(builddir)/release - cmake -D DEV_MODE=$(or ${DEV_MODE},OFF) -D ARCH="armv8-a" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Release -D BUILD_TAG="linux-armv8" $(topdir) && $(MAKE) + mkdir -p $(builddir)/release && cd $(builddir)/release && cmake -D DEV_MODE=$(or ${DEV_MODE},OFF) -D ARCH="armv8-a" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Release -D BUILD_TAG="linux-armv8" $(topdir) && $(MAKE) release-linux-ppc64le: mkdir -p $(builddir)/release && cd $(builddir)/release && cmake -D DEV_MODE=$(or ${DEV_MODE},OFF) -DMANUAL_SUBMODULES=${MANUAL_SUBMODULES} -D ARCH="ppc64le" -D CMAKE_BUILD_TYPE=Release $(topdir) && $(MAKE) diff --git a/components/RemoteNodeList.qml b/components/RemoteNodeList.qml index d971f998..b46b414a 100644 --- a/components/RemoteNodeList.qml +++ b/components/RemoteNodeList.qml @@ -89,7 +89,7 @@ ColumnLayout { anchors.fill: parent anchors.rightMargin: 80 color: "transparent" - property var trusted: remoteNodesModel.get(index).trusted + property var trusted: remoteNodesModel.get(index) ? remoteNodesModel.get(index).trusted : false MoneroComponents.TextPlain { id: addressText @@ -1354,7 +1354,8 @@ ApplicationWindow { appWindow.fiatTimerStart(); } - if (persistentSettings.askDesktopShortcut && !persistentSettings.portable) { + const desktopEntryEnabled = (typeof builtWithDesktopEntry != "undefined") && builtWithDesktopEntry; + if (persistentSettings.askDesktopShortcut && !persistentSettings.portable && desktopEntryEnabled) { persistentSettings.askDesktopShortcut = false; if (isTails) { diff --git a/pages/History.qml b/pages/History.qml index 45732c52..efdf5931 100644 --- a/pages/History.qml +++ b/pages/History.qml @@ -1013,6 +1013,7 @@ Rectangle { MoneroComponents.StandardButton { visible: isout + enabled: currentWallet ? !currentWallet.isHwBacked() : false anchors.left: btnDetails.right anchors.leftMargin: 10 text: FontAwesome.productHunt diff --git a/pages/settings/SettingsInfo.qml b/pages/settings/SettingsInfo.qml index d690a260..625b39ad 100644 --- a/pages/settings/SettingsInfo.qml +++ b/pages/settings/SettingsInfo.qml @@ -409,7 +409,7 @@ Rectangle { small: true text: qsTr("Donate to Monero") + translationManager.emptyString onClicked: { - middlePanel.sendTo("888tNkZrPN6JsEgekjMnABU4TBzc2Dt29EPAvkRxbANsAnjyPbb3iQ1YBRk1UXcdRsiKc9dhwMVgN5S9cQUiyoogDavup3H", "", "Donation to Monero Core Team"); + middlePanel.sendTo("888tNkZrPN6JsEgekjMnABU4TBzc2Dt29EPAvkRxbANsAnjyPbb3iQ1YBRk1UXcdRsiKc9dhwMVgN5S9cQUiyoogDavup3H", "", qsTr("Donation to Monero Core Team") + translationManager.emptyString); } } } diff --git a/src/main/main.cpp b/src/main/main.cpp index 165f9ae1..a6a77a5b 100644 --- a/src/main/main.cpp +++ b/src/main/main.cpp @@ -503,6 +503,12 @@ Verify update binary using 'shasum'-compatible (SHA256 algo) output signed by tw #endif engine.rootContext()->setContextProperty("builtWithScanner", builtWithScanner); + bool builtWithDesktopEntry = false; +#ifdef WITH_DESKTOP_ENTRY + builtWithDesktopEntry = true; +#endif + engine.rootContext()->setContextProperty("builtWithDesktopEntry", builtWithDesktopEntry); + engine.rootContext()->setContextProperty("moneroVersion", MONERO_VERSION_FULL); // Load main window (context properties needs to be defined obove this line) diff --git a/wizard/WizardController.qml b/wizard/WizardController.qml index 72a108ce..be4e5334 100644 --- a/wizard/WizardController.qml +++ b/wizard/WizardController.qml @@ -349,6 +349,8 @@ Rectangle { const handler = function(success) { if (!success) { appWindow.showStatusMessage(qsTr("Failed to store the wallet"), 3); + wizardStateView.wizardRestoreWallet4View.wizardNav.btnNext.enabled = true; + wizardStateView.wizardCreateWallet4View.wizardNav.btnNext.enabled = true; return; } diff --git a/wizard/WizardCreateDevice1.qml b/wizard/WizardCreateDevice1.qml index 0bdc03ed..9c12c500 100644 --- a/wizard/WizardCreateDevice1.qml +++ b/wizard/WizardCreateDevice1.qml @@ -73,7 +73,12 @@ Rectangle { spacing: 20 WizardHeader { - title: qsTr("Create a new wallet") + translationManager.emptyString + title: { + var nettype = persistentSettings.nettype; + return qsTr("Create a new wallet") + (nettype === 2 ? " (" + qsTr("stagenet") + ")" + : nettype === 1 ? " (" + qsTr("testnet") + ")" + : "") + translationManager.emptyString + } subtitle: qsTr("Using a hardware device.") + translationManager.emptyString } diff --git a/wizard/WizardCreateWallet1.qml b/wizard/WizardCreateWallet1.qml index 088df200..109aa726 100644 --- a/wizard/WizardCreateWallet1.qml +++ b/wizard/WizardCreateWallet1.qml @@ -60,7 +60,12 @@ Rectangle { spacing: 20 WizardHeader { - title: qsTr("Create a new wallet") + translationManager.emptyString + title: { + var nettype = persistentSettings.nettype; + return qsTr("Create a new wallet") + (nettype === 2 ? " (" + qsTr("stagenet") + ")" + : nettype === 1 ? " (" + qsTr("testnet") + ")" + : "") + translationManager.emptyString + } subtitle: qsTr("Creates a new wallet on this computer.") + translationManager.emptyString } diff --git a/wizard/WizardCreateWallet4.qml b/wizard/WizardCreateWallet4.qml index 33c1e926..8a706bc3 100644 --- a/wizard/WizardCreateWallet4.qml +++ b/wizard/WizardCreateWallet4.qml @@ -38,6 +38,7 @@ Rectangle { color: "transparent" property alias pageHeight: pageRoot.height + property alias wizardNav: wizardNav property string viewName: "wizardCreateWallet4" ColumnLayout { @@ -64,6 +65,7 @@ Rectangle { WizardSummary {} WizardNav { + id: wizardNav Layout.topMargin: 24 btnNextText: qsTr("Create wallet") + translationManager.emptyString progressSteps: appWindow.walletMode <= 1 ? 3 : 4 @@ -77,11 +79,13 @@ Rectangle { } } onNextClicked: { + btnNext.enabled = false; wizardController.wizardStateView.wizardCreateWallet2View.pwField = ""; wizardController.wizardStateView.wizardCreateWallet2View.pwConfirmField = ""; wizardController.writeWallet(function() { wizardController.useMoneroClicked(); wizardController.walletOptionsIsRecoveringFromDevice = false; + btnNext.enabled = true; }); } } diff --git a/wizard/WizardHome.qml b/wizard/WizardHome.qml index 540216e8..35ba9239 100644 --- a/wizard/WizardHome.qml +++ b/wizard/WizardHome.qml @@ -73,7 +73,12 @@ Rectangle { } WizardMenuItem { - headerText: qsTr("Create a new wallet") + translationManager.emptyString + headerText: { + var nettype = persistentSettings.nettype; + return qsTr("Create a new wallet") + (nettype === 2 ? " (" + qsTr("stagenet") + ")" + : nettype === 1 ? " (" + qsTr("testnet") + ")" + : "") + translationManager.emptyString + } bodyText: qsTr("Choose this option if this is your first time using Monero.") + translationManager.emptyString imageIcon: "qrc:///images/create-wallet.png" @@ -94,7 +99,12 @@ Rectangle { } WizardMenuItem { - headerText: qsTr("Create a new wallet from hardware") + translationManager.emptyString + headerText: { + var nettype = persistentSettings.nettype; + return qsTr("Create a new wallet from hardware") + (nettype === 2 ? " (" + qsTr("stagenet") + ")" + : nettype === 1 ? " (" + qsTr("testnet") + ")" + : "") + translationManager.emptyString + } bodyText: qsTr("Connect your hardware wallet to create a new Monero wallet.") + translationManager.emptyString imageIcon: "qrc:///images/restore-wallet-from-hardware.png" @@ -202,6 +212,7 @@ Rectangle { persistentSettings.nettype = NetworkType.TESTNET } appWindow.disconnectRemoteNode() + networkTypeDropdown.currentIndex = Qt.binding(function() { return persistentSettings.nettype }); } } @@ -241,5 +252,8 @@ Rectangle { function onPageCompleted(){ wizardController.walletOptionsIsRecoveringFromDevice = false; + if (networkTypeDropdown.currentIndex != 0) { + showAdvancedCheckbox.checked = true; + } } } diff --git a/wizard/WizardRestoreWallet3.qml b/wizard/WizardRestoreWallet3.qml index 9fc98358..bf9019b7 100644 --- a/wizard/WizardRestoreWallet3.qml +++ b/wizard/WizardRestoreWallet3.qml @@ -42,11 +42,6 @@ Rectangle { property string viewName: "wizardRestoreWallet3" property int recoveryMode: 1 - function verify() { - // @TODO: check if walletName already exists in walletLocation - return walletName.text !== ''; - } - ColumnLayout { id: pageRoot Layout.alignment: Qt.AlignHCenter; diff --git a/wizard/WizardRestoreWallet4.qml b/wizard/WizardRestoreWallet4.qml index 091c143f..4d4c9fdb 100644 --- a/wizard/WizardRestoreWallet4.qml +++ b/wizard/WizardRestoreWallet4.qml @@ -38,6 +38,7 @@ Rectangle { color: "transparent" property alias pageHeight: pageRoot.height + property alias wizardNav: wizardNav property string viewName: "wizardRestoreWallet4" ColumnLayout { @@ -64,6 +65,7 @@ Rectangle { WizardSummary {} WizardNav { + id: wizardNav Layout.topMargin: 24 btnNextText: qsTr("Create wallet") + translationManager.emptyString progressSteps: appWindow.walletMode <= 1 ? 3 : 4 @@ -77,11 +79,13 @@ Rectangle { } } onNextClicked: { + btnNext.enabled = false; wizardController.wizardStateView.wizardRestoreWallet2View.pwField = ""; wizardController.wizardStateView.wizardRestoreWallet2View.pwConfirmField = ""; wizardController.recoveryWallet(); wizardController.writeWallet(function() { wizardController.useMoneroClicked(); + btnNext.enabled = true; }); } } diff --git a/wizard/WizardSummary.qml b/wizard/WizardSummary.qml index f721c3c5..08caf753 100644 --- a/wizard/WizardSummary.qml +++ b/wizard/WizardSummary.qml @@ -53,7 +53,7 @@ ColumnLayout { WizardSummaryItem { Layout.fillWidth: true - header: qsTr("Language") + translationManager.emptyString + header: qsTr("Mnemonic seed language") + translationManager.emptyString value: persistentSettings.language } |
