Skip to content

Commit 217a5cf

Browse files
committed
qml: add and wire dbcache settings to OptionsModel backend
1 parent 4ca3b72 commit 217a5cf

File tree

3 files changed

+20
-2
lines changed

3 files changed

+20
-2
lines changed

src/qml/components/DeveloperOptions.qml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@ ColumnLayout {
2525
Setting {
2626
id: dbcacheSetting
2727
Layout.fillWidth: true
28-
header: qsTr("Database cache size")
28+
header: qsTr("Database cache size (MiB)")
2929
actionItem: ValueInput {
3030
parentState: dbcacheSetting.state
31-
description: ("450 MiB")
31+
description: optionsModel.dbcacheSizeMiB
32+
onEditingFinished: optionsModel.dbcacheSizeMiB = parseInt(text)
3233
}
3334
onClicked: loadedItem.forceActiveFocus()
3435
}

src/qml/options_model.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <interfaces/node.h>
88
#include <qt/guiconstants.h>
99
#include <qt/optionsmodel.h>
10+
#include <txdb.h>
1011
#include <univalue.h>
1112
#include <util/settings.h>
1213
#include <util/system.h>
@@ -16,11 +17,22 @@
1617
OptionsQmlModel::OptionsQmlModel(interfaces::Node& node)
1718
: m_node{node}
1819
{
20+
m_dbcache_size_mib = SettingToInt(m_node.getPersistentSetting("dbcache"), nDefaultDbCache);
21+
1922
int64_t prune_value{SettingToInt(m_node.getPersistentSetting("prune"), 0)};
2023
m_prune = (prune_value > 1);
2124
m_prune_size_gb = m_prune ? PruneMiBtoGB(prune_value) : DEFAULT_PRUNE_TARGET_GB;
2225
}
2326

27+
void OptionsQmlModel::setDbcacheSizeMiB(int new_dbcache_size_mib)
28+
{
29+
if (new_dbcache_size_mib != m_dbcache_size_mib) {
30+
m_dbcache_size_mib = new_dbcache_size_mib;
31+
m_node.updateRwSetting("dbcache", new_dbcache_size_mib);
32+
Q_EMIT dbcacheSizeMiBChanged(new_dbcache_size_mib);
33+
}
34+
}
35+
2436
void OptionsQmlModel::setListen(bool new_listen)
2537
{
2638
if (new_listen != m_listen) {

src/qml/options_model.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class Node;
1717
class OptionsQmlModel : public QObject
1818
{
1919
Q_OBJECT
20+
Q_PROPERTY(int dbcacheSizeMiB READ dbcacheSizeMiB WRITE setDbcacheSizeMiB NOTIFY dbcacheSizeMiBChanged)
2021
Q_PROPERTY(bool listen READ listen WRITE setListen NOTIFY listenChanged)
2122
Q_PROPERTY(bool natpmp READ natpmp WRITE setNatpmp NOTIFY natpmpChanged)
2223
Q_PROPERTY(bool prune READ prune WRITE setPrune NOTIFY pruneChanged)
@@ -27,6 +28,8 @@ class OptionsQmlModel : public QObject
2728
public:
2829
explicit OptionsQmlModel(interfaces::Node& node);
2930

31+
int dbcacheSizeMiB() const { return m_dbcache_size_mib; }
32+
void setDbcacheSizeMiB(int new_dbcache_size_mib);
3033
bool listen() const { return m_listen; }
3134
void setListen(bool new_listen);
3235
bool natpmp() const { return m_natpmp; }
@@ -41,6 +44,7 @@ class OptionsQmlModel : public QObject
4144
void setUpnp(bool new_upnp);
4245

4346
Q_SIGNALS:
47+
void dbcacheSizeMiBChanged(int new_dbcache_size_mib);
4448
void listenChanged(bool new_listen);
4549
void natpmpChanged(bool new_natpmp);
4650
void pruneChanged(bool new_prune);
@@ -52,6 +56,7 @@ class OptionsQmlModel : public QObject
5256
interfaces::Node& m_node;
5357

5458
// Properties that are exposed to QML.
59+
int m_dbcache_size_mib;
5560
bool m_listen;
5661
bool m_natpmp;
5762
bool m_prune;

0 commit comments

Comments
 (0)