diff options
author | Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> | 2019-11-12 13:23:09 +0200 |
---|---|---|
committer | Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> | 2020-01-08 17:21:34 +0200 |
commit | e35e4b2ba052c9a533626286026dbe0a2d546c5b (patch) | |
tree | f1da9cbddeb6fd0f81c4f21b4b08d435563e702f /src/qt | |
parent | 295211e668290d7741eb0fd46223087c21fc7c59 (diff) |
util: Add PruneMiBtoGB() function
Now the text of prune QCheckBox shows the space in GB instead of
thousands MiB, which is consistent with other parts of the GUI.
Diffstat (limited to 'src/qt')
-rw-r--r-- | src/qt/intro.cpp | 17 | ||||
-rw-r--r-- | src/qt/optionsmodel.h | 6 |
2 files changed, 15 insertions, 8 deletions
diff --git a/src/qt/intro.cpp b/src/qt/intro.cpp index f064556ae5..183c2fcfb6 100644 --- a/src/qt/intro.cpp +++ b/src/qt/intro.cpp @@ -12,6 +12,7 @@ #include <qt/guiconstants.h> #include <qt/guiutil.h> +#include <qt/optionsmodel.h> #include <interfaces/node.h> #include <util/system.h> @@ -23,7 +24,7 @@ #include <cmath> /* Total required space (in GB) depending on user choice (prune, not prune) */ -static uint64_t requiredSpace; +static int64_t requiredSpace; /* Check free space asynchronously to prevent hanging the UI thread. @@ -130,18 +131,18 @@ Intro::Intro(QWidget *parent, uint64_t blockchain_size, uint64_t chain_state_siz ); ui->lblExplanation2->setText(ui->lblExplanation2->text().arg(PACKAGE_NAME)); - uint64_t pruneTarget = std::max<int64_t>(0, gArgs.GetArg("-prune", 0)); - if (pruneTarget > 1) { // -prune=1 means enabled, above that it's a size in MB + int64_t prune_target_mib = std::max<int64_t>(0, gArgs.GetArg("-prune", 0)); + if (prune_target_mib > 1) { // -prune=1 means enabled, above that it's a size in MiB ui->prune->setChecked(true); ui->prune->setEnabled(false); } - ui->prune->setText(tr("Discard blocks after verification, except most recent %1 GB (prune)").arg(pruneTarget ? pruneTarget / 1000 : DEFAULT_PRUNE_TARGET_GB)); + const int prune_target_gb = PruneMiBtoGB(prune_target_mib); + ui->prune->setText(tr("Discard blocks after verification, except most recent %1 GB (prune)").arg(prune_target_gb ? prune_target_gb : DEFAULT_PRUNE_TARGET_GB)); requiredSpace = m_blockchain_size; QString storageRequiresMsg = tr("At least %1 GB of data will be stored in this directory, and it will grow over time."); - if (pruneTarget) { - uint64_t prunedGBs = std::ceil(pruneTarget * 1024 * 1024.0 / GB_BYTES); - if (prunedGBs <= requiredSpace) { - requiredSpace = prunedGBs; + if (prune_target_gb) { + if (prune_target_gb <= requiredSpace) { + requiredSpace = prune_target_gb; storageRequiresMsg = tr("Approximately %1 GB of data will be stored in this directory."); } ui->lblExplanation3->setVisible(true); diff --git a/src/qt/optionsmodel.h b/src/qt/optionsmodel.h index 6f5c8b8c5c..9751deadc4 100644 --- a/src/qt/optionsmodel.h +++ b/src/qt/optionsmodel.h @@ -6,6 +6,7 @@ #define BITCOIN_QT_OPTIONSMODEL_H #include <amount.h> +#include <qt/guiconstants.h> #include <QAbstractListModel> @@ -16,6 +17,11 @@ class Node; extern const char *DEFAULT_GUI_PROXY_HOST; static constexpr unsigned short DEFAULT_GUI_PROXY_PORT = 9050; +/** + * Convert configured prune target MiB to displayed GB. Round up to avoid underestimating max disk usage. + */ +static inline int PruneMiBtoGB(int64_t mib) { return (mib * 1024 * 1024 + GB_BYTES - 1) / GB_BYTES; } + /** Interface from Qt to configuration data structure for Bitcoin client. To Qt, the options are presented as a list with the different options laid out vertically. |