Bitcoin
bitcoinamountfield.h
Go to the documentation of this file.
1 // Copyright (c) 2011-2018 The Bitcoin Core developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #ifndef BITCOIN_QT_BITCOINAMOUNTFIELD_H
6 #define BITCOIN_QT_BITCOINAMOUNTFIELD_H
7 
8 #include <amount.h>
9 
10 #include <QWidget>
11 
12 class AmountSpinBox;
13 
14 QT_BEGIN_NAMESPACE
15 class QValueComboBox;
16 QT_END_NAMESPACE
17 
20 class BitcoinAmountField: public QWidget
21 {
22  Q_OBJECT
23 
24  // ugly hack: for some unknown reason CAmount (instead of qint64) does not work here as expected
25  // discussion: https://github.com/bitcoin/bitcoin/pull/5117
26  Q_PROPERTY(qint64 value READ value WRITE setValue NOTIFY valueChanged USER true)
27 
28 public:
29  explicit BitcoinAmountField(QWidget *parent = nullptr);
30 
31  CAmount value(bool *value=nullptr) const;
32  void setValue(const CAmount& value);
33 
35  void SetAllowEmpty(bool allow);
36 
38  void SetMinValue(const CAmount& value);
39 
41  void SetMaxValue(const CAmount& value);
42 
44  void setSingleStep(const CAmount& step);
45 
47  void setReadOnly(bool fReadOnly);
48 
50  void setValid(bool valid);
52  bool validate();
53 
55  void setDisplayUnit(int unit);
56 
58  void clear();
59 
61  void setEnabled(bool fEnabled);
62 
66  QWidget *setupTabChain(QWidget *prev);
67 
68 Q_SIGNALS:
69  void valueChanged();
70 
71 protected:
73  bool eventFilter(QObject *object, QEvent *event);
74 
75 private:
78 
79 private Q_SLOTS:
80  void unitChanged(int idx);
81 
82 };
83 
84 #endif // BITCOIN_QT_BITCOINAMOUNTFIELD_H
void SetMinValue(const CAmount &value)
Definition: bitcoinamountfield.cpp:307
bool validate()
Definition: bitcoinamountfield.cpp:259
void setEnabled(bool fEnabled)
Definition: bitcoinamountfield.cpp:253
Definition: qvaluecombobox.h:12
BitcoinAmountField(QWidget *parent=nullptr)
Definition: bitcoinamountfield.cpp:217
Definition: bitcoinamountfield.h:20
int64_t CAmount
Definition: amount.h:12
qint64 value
Definition: bitcoinamountfield.h:26
void setDisplayUnit(int unit)
Definition: bitcoinamountfield.cpp:333
void SetAllowEmpty(bool allow)
Definition: bitcoinamountfield.cpp:302
AmountSpinBox * amount
Definition: bitcoinamountfield.h:76
void valueChanged()
Definition: moc_bitcoinamountfield.cpp:181
void setValid(bool valid)
Definition: bitcoinamountfield.cpp:267
Definition: bitcoinamountfield.cpp:20
bool eventFilter(QObject *object, QEvent *event)
Definition: bitcoinamountfield.cpp:275
void SetMaxValue(const CAmount &value)
Definition: bitcoinamountfield.cpp:312
void unitChanged(int idx)
Definition: bitcoinamountfield.cpp:322
void clear()
Definition: bitcoinamountfield.cpp:247
QValueComboBox * unit
Definition: bitcoinamountfield.h:77
QWidget * setupTabChain(QWidget *prev)
Definition: bitcoinamountfield.cpp:285
void setValue(const CAmount &value)
Definition: bitcoinamountfield.cpp:297
void setReadOnly(bool fReadOnly)
Definition: bitcoinamountfield.cpp:317
void setSingleStep(const CAmount &step)
Definition: bitcoinamountfield.cpp:338