Compare commits

...

22 Commits

Author SHA1 Message Date
Alexander Blair
33afd0bb83 Merge pull request #3180
954c9725 repo: prepare v0.17.1.1 (selsta)
2020-10-19 00:14:37 -07:00
Alexander Blair
a165a14519 Merge pull request #3181
6ee5effc Wallet: fix different signedness comparison (-Werror=sign-compare) (xiphon)
2020-10-19 00:14:12 -07:00
Alexander Blair
33e1801c57 Merge pull request #3175
e5b0837c SettingsNode: ignore selecting the same mode twice (xiphon)
2020-10-19 00:13:24 -07:00
Alexander Blair
fac3fcb518 Merge pull request #3174
a73ae625 DaemonManager: set out-peers to 16 in simple mode / bootstrap (selsta)
2020-10-19 00:12:52 -07:00
Alexander Blair
8457055f08 Merge pull request #3172
44df1bcc cmake: fix install targets (Bertrand Jacquin)
2020-10-19 00:12:31 -07:00
Alexander Blair
e01c847fde Merge pull request #3171
0a0dbf88 WizardRestoreWallet1: fix "wallet name" check in keys mode (selsta)
2020-10-19 00:12:05 -07:00
Alexander Blair
bedf04d08a Merge pull request #3161
b932df85 Wallet: interrupt refresh thread on wallet close (xiphon)
2020-10-19 00:11:35 -07:00
Alexander Blair
83da709436 Merge pull request #3158
79ee8934 History: fix failed and pending tx statuses (xiphon)
2020-10-19 00:11:09 -07:00
Alexander Blair
f51b0d7d0c Merge pull request #3156
1b2d9408 Makefile: add 'release-linux-armv8' target (xiphon)
2020-10-19 00:10:31 -07:00
Alexander Blair
1f9d60602a Merge pull request #3155
db4273ee NetworkStatusItem: 'starting/stopping the node' status (no splash) (xiphon)
2020-10-19 00:10:19 -07:00
Alexander Blair
7a285b3613 Merge pull request #3136
05733c14 Transfer: fix help text (white theme) (selsta)
2020-10-19 00:09:52 -07:00
xiphon
6ee5effc15 Wallet: fix different signedness comparison (-Werror=sign-compare)
Co-authored-by: Bertrand Jacquin <bertrand@jacquin.bzh>
2020-10-18 20:58:40 +00:00
selsta
954c972530 repo: prepare v0.17.1.1 2020-10-18 18:01:44 +02:00
xiphon
e5b0837c8e SettingsNode: ignore selecting the same mode twice 2020-10-18 02:53:57 +00:00
selsta
a73ae62526 DaemonManager: set out-peers to 16 in simple mode / bootstrap 2020-10-18 02:07:29 +02:00
Bertrand Jacquin
44df1bccfc cmake: fix install targets
Binary should be installed in bin/ relative to CMAKE_INSTALL_PREFIX,
prior to this commit, monero-wallet-gui is installed in usr/ instead of
usr/bin

  -- Installing: image/usr/monero-wallet-gui

With this comment, file is installed in the right location:

  -- Installing: image/usr/bin/monero-wallet-gui

See: https://cmake.org/cmake/help/latest/command/install.html
2020-10-17 23:08:21 +01:00
selsta
0a0dbf8853 WizardRestoreWallet1: fix "wallet name" check in keys mode 2020-10-17 20:23:29 +02:00
xiphon
b932df85fd Wallet: interrupt refresh thread on wallet close 2020-10-17 02:58:23 +00:00
xiphon
79ee893499 History: fix failed and pending tx statuses 2020-10-15 10:23:06 +00:00
xiphon
1b2d940850 Makefile: add 'release-linux-armv8' target 2020-10-14 15:51:29 +00:00
xiphon
db4273ee82 NetworkStatusItem: 'starting/stopping the node' status (no splash) 2020-10-14 02:26:56 +00:00
selsta
05733c14b7 Transfer: fix help text (white theme) 2020-10-07 12:59:33 +02:00
13 changed files with 62 additions and 28 deletions

View File

@@ -5,7 +5,7 @@ message(STATUS "Initiating compile using CMake ${CMAKE_VERSION}")
set(VERSION_MAJOR "17")
set(VERSION_MINOR "1")
set(VERSION_REVISION "0")
set(VERSION_REVISION "1")
set(VERSION "0.${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION}")
option(STATIC "Link libraries statically, requires static Qt")

View File

@@ -36,6 +36,11 @@ scanner:
release:
mkdir -p $(builddir)/release && cd $(builddir)/release && cmake -D DEV_MODE=$(or ${DEV_MODE},OFF) -D ARCH="x86-64" -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)
release-static:
mkdir -p $(builddir)/release && cd $(builddir)/release && cmake -D STATIC=ON -D DEV_MODE=$(or ${DEV_MODE},OFF) -D ARCH="x86-64" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Release $(topdir) && $(MAKE)

View File

@@ -39,6 +39,15 @@ Rectangle {
property var connected: Wallet.ConnectionStatus_Disconnected
function getConnectionStatusString(status) {
switch (appWindow.daemonStartStopInProgress)
{
case 1:
return qsTr("Starting the node");
case 2:
return qsTr("Stopping the node");
default:
break;
}
switch (status) {
case Wallet.ConnectionStatus_Connected:
if (!appWindow.daemonSynced)

View File

@@ -17,7 +17,7 @@ if [ ! -d $MONERO_DIR/src ]; then
fi
git submodule update --remote
git -C $MONERO_DIR fetch
git -C $MONERO_DIR checkout v0.17.1.0
git -C $MONERO_DIR checkout v0.17.1.1
# get monero core tag
pushd $MONERO_DIR

View File

@@ -72,7 +72,7 @@ ApplicationWindow {
property bool walletSynced: false
property int maxWindowHeight: (isAndroid || isIOS)? screenHeight : (screenHeight < 900)? 720 : 800;
property bool daemonRunning: !persistentSettings.useRemoteNode && !disconnected
property bool daemonStartStopInProgress: false
property int daemonStartStopInProgress: 0
property alias toolTip: toolTip
property string walletName
property bool viewOnly: false
@@ -707,31 +707,33 @@ ApplicationWindow {
}
function startDaemon(flags){
daemonStartStopInProgress = true;
daemonStartStopInProgress = 1;
// Pause refresh while starting daemon
currentWallet.pauseRefresh();
appWindow.showProcessingSplash(qsTr("Waiting for daemon to start..."))
const noSync = appWindow.walletMode === 0;
const bootstrapNodeAddress = persistentSettings.walletMode < 2 ? "auto" : persistentSettings.bootstrapNodeAddress
daemonManager.start(flags, persistentSettings.nettype, persistentSettings.blockchainDataDir, bootstrapNodeAddress, noSync);
}
function stopDaemon(callback){
daemonStartStopInProgress = true;
appWindow.showProcessingSplash(qsTr("Waiting for daemon to stop..."))
function stopDaemon(callback, splash){
daemonStartStopInProgress = 2;
if (splash) {
appWindow.showProcessingSplash(qsTr("Waiting for daemon to stop..."));
}
daemonManager.stopAsync(persistentSettings.nettype, function(result) {
daemonStartStopInProgress = false;
hideProcessingSplash();
daemonStartStopInProgress = 0;
if (splash) {
hideProcessingSplash();
}
callback(result);
});
}
function onDaemonStarted(){
console.log("daemon started");
daemonStartStopInProgress = false;
hideProcessingSplash();
daemonStartStopInProgress = 0;
currentWallet.connected(true);
// resume refresh
currentWallet.startRefresh();
@@ -744,8 +746,7 @@ ApplicationWindow {
function onDaemonStartFailure(error) {
console.log("daemon start failed");
daemonStartStopInProgress = false;
hideProcessingSplash();
daemonStartStopInProgress = 0;
// resume refresh
currentWallet.startRefresh();
informationPopup.title = qsTr("Daemon failed to start") + translationManager.emptyString;
@@ -1965,7 +1966,7 @@ ApplicationWindow {
// Simple mode connection check timer
id: simpleModeConnectionTimer
interval: 2000
running: appWindow.walletMode < 2 && currentWallet != undefined && !daemonStartStopInProgress
running: appWindow.walletMode < 2 && currentWallet != undefined && daemonStartStopInProgress == 0
repeat: true
onTriggered: appWindow.checkSimpleModeConnection()
}
@@ -2043,7 +2044,7 @@ ApplicationWindow {
if(daemonManager == undefined || persistentSettings.useRemoteNode) {
closeAccepted();
} else if (appWindow.walletMode == 0) {
stopDaemon(closeAccepted);
stopDaemon(closeAccepted, true);
} else {
showProcessingSplash(qsTr("Checking local node status..."));
const handler = function(running) {

2
monero

Submodule monero updated: 4d855fcca7...76cc82c292

View File

@@ -764,12 +764,18 @@ Rectangle {
font.pixelSize: 15
text: {
if (isout) {
if (isFailed) {
return qsTr("Failed") + translationManager.emptyString;
}
if (isPending) {
return qsTr("Waiting confirmation...") + translationManager.emptyString;
}
if (address) {
const addressBookName = currentWallet ? currentWallet.addressBook.getDescription(address) : null;
return (addressBookName ? FontAwesome.addressBook + " " + addressBookName : TxUtils.addressTruncate(address, 8));
}
if (amount != 0) {
return (blockheight ? qsTr("Unknown recipient") : qsTr("Waiting confirmation...")) + translationManager.emptyString;
return qsTr("Unknown recipient") + translationManager.emptyString;
} else {
return qsTr("My wallet") + translationManager.emptyString;
}
@@ -1489,6 +1495,8 @@ Rectangle {
for (var i = 0; i < count; ++i) {
var idx = _model.index(i, 0);
var isPending = model.data(idx, TransactionHistoryModel.TransactionPendingRole);
var isFailed = model.data(idx, TransactionHistoryModel.TransactionFailedRole);
var isout = _model.data(idx, TransactionHistoryModel.TransactionIsOutRole);
var amount = _model.data(idx, TransactionHistoryModel.TransactionAmountRole);
var hash = _model.data(idx, TransactionHistoryModel.TransactionHashRole);
@@ -1525,6 +1533,8 @@ Rectangle {
root.txModelData.push({
"i": i,
"isPending": isPending,
"isFailed": isFailed,
"isout": isout,
"amount": amount,
"displayAmount": displayAmount,

View File

@@ -553,7 +553,8 @@ Rectangle {
if (appWindow.viewOnly && !appWindow.isTrustedDaemon()){
errorMessage = "<p class='orange'>" + qsTr("* To import, you must connect to a local node or a trusted remote node") + "</p>";
}
return "<style type='text/css'>p{line-height:20px; margin-top:0px; margin-bottom:0px; color:#ffffff;} p.orange{color:#ff9323;}</style>" +
return "<style type='text/css'>p{line-height:20px; margin-top:0px; margin-bottom:0px; color:" + MoneroComponents.Style.defaultFontColor +
";} p.orange{color:#ff9323;}</style>" +
"<p>" + qsTr("1. Using cold wallet, export the key images into a file") + "</p>" +
"<p>" + qsTr("2. Using view-only wallet, import the key images file") + "</p>" +
errorMessage + translationManager.emptyString
@@ -593,7 +594,8 @@ Rectangle {
if (appWindow.viewOnly && !pageRoot.checkInformation(amountLine.text, addressLine.text, appWindow.persistentSettings.nettype)){
errorMessage = "<p class='orange'>" + qsTr("* To create a transaction file, please enter address and amount above") + "</p>";
}
return "<style type='text/css'>p{line-height:20px; margin-top:0px; margin-bottom:0px; color:#ffffff;} p.orange{color:#ff9323;}</style>" +
return "<style type='text/css'>p{line-height:20px; margin-top:0px; margin-bottom:0px; color:" + MoneroComponents.Style.defaultFontColor +
";} p.orange{color:#ff9323;}</style>" +
"<p>" + qsTr("1. Using view-only wallet, export the outputs into a file") + "</p>" +
"<p>" + qsTr("2. Using cold wallet, import the outputs file and export the key images") + "</p>" +
"<p>" + qsTr("3. Using view-only wallet, import the key images file and create a transaction file") + "</p>" +

View File

@@ -136,6 +136,7 @@ Rectangle{
MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
enabled: persistentSettings.useRemoteNode
onClicked: {
persistentSettings.useRemoteNode = false;
appWindow.disconnectRemoteNode();
@@ -227,6 +228,7 @@ Rectangle{
MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
enabled: !persistentSettings.useRemoteNode
onClicked: {
appWindow.connectRemoteNode();
}

View File

@@ -178,5 +178,5 @@ add_custom_command(TARGET monero-wallet-gui POST_BUILD COMMAND ${CMAKE_COMMAND}
include(Deploy)
install(TARGETS monero-wallet-gui
DESTINATION ${CMAKE_INSTALL_PREFIX}
DESTINATION bin
)

View File

@@ -112,6 +112,10 @@ bool DaemonManager::start(const QString &flags, NetworkType::Type nettype, const
arguments << "--no-sync";
}
if (!flags.contains("--out-peers", Qt::CaseSensitive) && bootstrapNodeAddress == "auto") {
arguments << "--out-peers" << "16";
}
arguments << "--check-updates" << "disabled";
// --max-concurrency based on threads available.

View File

@@ -1086,6 +1086,8 @@ Wallet::~Wallet()
{
qDebug("~Wallet: Closing wallet");
pauseRefresh();
m_walletImpl->stop();
m_scheduler.shutdownWaitForFinished();
delete m_addressBook;
@@ -1116,8 +1118,8 @@ Wallet::~Wallet()
void Wallet::startRefreshThread()
{
const auto future = m_scheduler.run([this] {
static constexpr const size_t refreshIntervalSec = 10;
static constexpr const size_t intervalResolutionMs = 100;
constexpr const std::chrono::seconds refreshInterval{10};
constexpr const std::chrono::milliseconds intervalResolution{100};
auto last = std::chrono::steady_clock::now();
while (!m_scheduler.stopping())
@@ -1125,15 +1127,15 @@ void Wallet::startRefreshThread()
if (m_refreshEnabled)
{
const auto now = std::chrono::steady_clock::now();
const auto elapsed = std::chrono::duration_cast<std::chrono::seconds>(now - last).count();
if (elapsed >= refreshIntervalSec)
const auto elapsed = now - last;
if (elapsed >= refreshInterval)
{
refresh(false);
last = std::chrono::steady_clock::now();
}
}
std::this_thread::sleep_for(std::chrono::milliseconds(intervalResolutionMs));
std::this_thread::sleep_for(intervalResolution);
}
});
if (!future.first)

View File

@@ -48,8 +48,7 @@ Rectangle {
var valid = false;
if(wizardController.walletRestoreMode === "keys") {
valid = wizardRestoreWallet1.verifyFromKeys();
return valid;
return wizardWalletInput.verify() && wizardRestoreWallet1.verifyFromKeys();
} else if(wizardController.walletRestoreMode === "seed") {
valid = wizardWalletInput.verify();
if(!valid) return false;