aboutsummaryrefslogtreecommitdiff
path: root/src/qt
diff options
context:
space:
mode:
authorHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2019-11-12 12:14:52 +0200
committerHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2020-01-08 17:21:40 +0200
commit2bede28cd9ec638d8bb32c187ccf12d89345218e (patch)
tree9562a0b91bd66adae244f9d7222a1e7d5e995d40 /src/qt
parente35e4b2ba052c9a533626286026dbe0a2d546c5b (diff)
downloadbitcoin-2bede28cd9ec638d8bb32c187ccf12d89345218e.tar.xz
util: Add PruneGBtoMiB() function
This commit does not change behavior.
Diffstat (limited to 'src/qt')
-rw-r--r--src/qt/optionsmodel.cpp5
-rw-r--r--src/qt/optionsmodel.h5
2 files changed, 7 insertions, 3 deletions
diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp
index df5248f55e..f8cbd8358a 100644
--- a/src/qt/optionsmodel.cpp
+++ b/src/qt/optionsmodel.cpp
@@ -240,9 +240,8 @@ void OptionsModel::SetPruneEnabled(bool prune, bool force)
{
QSettings settings;
settings.setValue("bPrune", prune);
- // Convert prune size from GB to MiB:
- const uint64_t nPruneSizeMiB = (settings.value("nPruneSize").toInt() * GB_BYTES) >> 20;
- std::string prune_val = prune ? std::to_string(nPruneSizeMiB) : "0";
+ const int64_t prune_target_mib = PruneGBtoMiB(settings.value("nPruneSize").toInt());
+ std::string prune_val = prune ? std::to_string(prune_target_mib) : "0";
if (force) {
m_node.forceSetArg("-prune", prune_val);
return;
diff --git a/src/qt/optionsmodel.h b/src/qt/optionsmodel.h
index 9751deadc4..81ab0008e4 100644
--- a/src/qt/optionsmodel.h
+++ b/src/qt/optionsmodel.h
@@ -22,6 +22,11 @@ static constexpr unsigned short DEFAULT_GUI_PROXY_PORT = 9050;
*/
static inline int PruneMiBtoGB(int64_t mib) { return (mib * 1024 * 1024 + GB_BYTES - 1) / GB_BYTES; }
+/**
+ * Convert displayed prune target GB to configured MiB. Round down so roundtrip GB -> MiB -> GB conversion is stable.
+ */
+static inline int64_t PruneGBtoMiB(int gb) { return gb * GB_BYTES / 1024 / 1024; }
+
/** 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.