File tree Expand file tree Collapse file tree 3 files changed +55
-0
lines changed Expand file tree Collapse file tree 3 files changed +55
-0
lines changed Original file line number Diff line number Diff line change @@ -61,4 +61,6 @@ target_link_libraries(bitcoin_qml
61
61
PUBLIC
62
62
Qt6::Widgets
63
63
Qt6::Quick
64
+ PRIVATE
65
+ univalue
64
66
)
Original file line number Diff line number Diff line change 4
4
5
5
#include < qml/BitcoinApp/options_model.h>
6
6
7
+ #include < common/args.h>
8
+ #include < common/settings.h>
7
9
#include < interfaces/node.h>
10
+ #include < qt/guiconstants.h>
11
+ #include < qt/optionsmodel.h>
12
+ #include < univalue.h>
13
+
14
+ #include < cassert>
8
15
9
16
OptionsQmlModel::OptionsQmlModel (interfaces::Node& node)
10
17
: m_node{node}
11
18
{
19
+ int64_t prune_value{SettingToInt (m_node.getPersistentSetting (" prune" ), 0 )};
20
+ m_prune = (prune_value > 1 );
21
+ m_prune_size_gb = m_prune ? PruneMiBtoGB (prune_value) : DEFAULT_PRUNE_TARGET_GB;
22
+ }
23
+
24
+ void OptionsQmlModel::setPrune (bool new_prune)
25
+ {
26
+ if (new_prune != m_prune) {
27
+ m_prune = new_prune;
28
+ m_node.updateRwSetting (" prune" , pruneSetting ());
29
+ Q_EMIT pruneChanged (new_prune);
30
+ }
31
+ }
32
+
33
+ void OptionsQmlModel::setPruneSizeGB (int new_prune_size_gb)
34
+ {
35
+ if (new_prune_size_gb != m_prune_size_gb) {
36
+ m_prune_size_gb = new_prune_size_gb;
37
+ m_node.updateRwSetting (" prune" , pruneSetting ());
38
+ Q_EMIT pruneSizeGBChanged (new_prune_size_gb);
39
+ }
40
+ }
41
+
42
+ common::SettingsValue OptionsQmlModel::pruneSetting () const
43
+ {
44
+ assert (!m_prune || m_prune_size_gb >= 1 );
45
+ return m_prune ? PruneGBtoMiB (m_prune_size_gb) : 0 ;
12
46
}
Original file line number Diff line number Diff line change 5
5
#ifndef BITCOIN_QML_OPTIONS_MODEL_H
6
6
#define BITCOIN_QML_OPTIONS_MODEL_H
7
7
8
+ #include < common/settings.h>
9
+
8
10
#include < QObject>
9
11
10
12
namespace interfaces {
@@ -15,12 +17,29 @@ class Node;
15
17
class OptionsQmlModel : public QObject
16
18
{
17
19
Q_OBJECT
20
+ Q_PROPERTY (bool prune READ prune WRITE setPrune NOTIFY pruneChanged)
21
+ Q_PROPERTY (int pruneSizeGB READ pruneSizeGB WRITE setPruneSizeGB NOTIFY pruneSizeGBChanged)
18
22
19
23
public:
20
24
explicit OptionsQmlModel (interfaces::Node& node);
21
25
26
+ bool prune () const { return m_prune; }
27
+ void setPrune (bool new_prune);
28
+ int pruneSizeGB () const { return m_prune_size_gb; }
29
+ void setPruneSizeGB (int new_prune_size);
30
+
31
+ Q_SIGNALS:
32
+ void pruneChanged (bool new_prune);
33
+ void pruneSizeGBChanged (int new_prune_size_gb);
34
+
22
35
private:
23
36
interfaces::Node& m_node;
37
+
38
+ // Properties that are exposed to QML.
39
+ bool m_prune;
40
+ int m_prune_size_gb;
41
+
42
+ common::SettingsValue pruneSetting () const ;
24
43
};
25
44
26
45
#endif // BITCOIN_QML_OPTIONS_MODEL_H
You can’t perform that action at this time.
0 commit comments