annotate src/qt/walletmodel.h @ 3679:1e67262f9a28 draft default tip master

Mention that Qt3 tools can cause build problems
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Tue, 23 Oct 2012 13:17:23 -0400
parents 0f0aad98e2a6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1113
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
1 #ifndef WALLETMODEL_H
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
2 #define WALLETMODEL_H
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
3
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
4 #include <QObject>
1533
d0ccfedf2957 Implement an mlock()'d string class for storing passphrases
Dylan Noblesmith <nobled@dreamwidth.org>
parents: 1496
diff changeset
5
2150
57881c57f923 remove dependency on serialize.h and util.h for SecureString
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2148
diff changeset
6 #include "allocators.h" /* for SecureString */
1113
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
7
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
8 class OptionsModel;
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
9 class AddressTableModel;
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
10 class TransactionTableModel;
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
11 class CWallet;
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
12
3150
0f0aad98e2a6 Add a timer to check for changes in immature or unconfirmed balances,
Scott Ellis <sje397@gmail.com>
parents: 2690
diff changeset
13 QT_BEGIN_NAMESPACE
0f0aad98e2a6 Add a timer to check for changes in immature or unconfirmed balances,
Scott Ellis <sje397@gmail.com>
parents: 2690
diff changeset
14 class QTimer;
0f0aad98e2a6 Add a timer to check for changes in immature or unconfirmed balances,
Scott Ellis <sje397@gmail.com>
parents: 2690
diff changeset
15 QT_END_NAMESPACE
0f0aad98e2a6 Add a timer to check for changes in immature or unconfirmed balances,
Scott Ellis <sje397@gmail.com>
parents: 2690
diff changeset
16
2143
4bb59fe180f9 VC2010 compile fixes
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1840
diff changeset
17 class SendCoinsRecipient
1187
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
18 {
2143
4bb59fe180f9 VC2010 compile fixes
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1840
diff changeset
19 public:
1187
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
20 QString address;
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
21 QString label;
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
22 qint64 amount;
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
23 };
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
24
1496
5fd67ccc00ca Improve documentation for UI classes
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1272
diff changeset
25 /** Interface to Bitcoin wallet from Qt view code. */
1113
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
26 class WalletModel : public QObject
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
27 {
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
28 Q_OBJECT
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
29 public:
1229
fa39b222e5e0 Full support for other units, add configuration option for default unit (used when displaying amounts)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1192
diff changeset
30 explicit WalletModel(CWallet *wallet, OptionsModel *optionsModel, QObject *parent = 0);
2640
60b19c042950 Convert UI interface to boost::signals2.
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2639
diff changeset
31 ~WalletModel();
1113
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
32
1272
c4a6b003ac46 comments and readme update
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1271
diff changeset
33 enum StatusCode // Returned by sendCoins
1113
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
34 {
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
35 OK,
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
36 InvalidAmount,
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
37 InvalidAddress,
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
38 AmountExceedsBalance,
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
39 AmountWithFeeExceedsBalance,
1187
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
40 DuplicateAddress,
1272
c4a6b003ac46 comments and readme update
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1271
diff changeset
41 TransactionCreationFailed, // Error returned when wallet is still locked
1187
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
42 TransactionCommitFailed,
2242
5259108254a5 fix warnings: enumeration values 'XX' not handled in switch [-Wswitch-enum]
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2153
diff changeset
43 Aborted
1113
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
44 };
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
45
1269
fc98f15bed54 Wallet encryption part 1: show wallet encryption status
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1262
diff changeset
46 enum EncryptionStatus
fc98f15bed54 Wallet encryption part 1: show wallet encryption status
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1262
diff changeset
47 {
fc98f15bed54 Wallet encryption part 1: show wallet encryption status
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1262
diff changeset
48 Unencrypted, // !wallet->IsCrypted()
fc98f15bed54 Wallet encryption part 1: show wallet encryption status
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1262
diff changeset
49 Locked, // wallet->IsCrypted() && wallet->IsLocked()
fc98f15bed54 Wallet encryption part 1: show wallet encryption status
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1262
diff changeset
50 Unlocked // wallet->IsCrypted() && !wallet->IsLocked()
fc98f15bed54 Wallet encryption part 1: show wallet encryption status
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1262
diff changeset
51 };
fc98f15bed54 Wallet encryption part 1: show wallet encryption status
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1262
diff changeset
52
1113
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
53 OptionsModel *getOptionsModel();
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
54 AddressTableModel *getAddressTableModel();
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
55 TransactionTableModel *getTransactionTableModel();
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
56
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
57 qint64 getBalance() const;
1173
2f76dc263dfe Show unconfirmed balance on overview page
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1163
diff changeset
58 qint64 getUnconfirmedBalance() const;
2690
a9a09da51502 Added 'immature balance' for miners. Only displayed if the balance is greater than zero.
sje397 <sje397@gmail.com>
parents: 2641
diff changeset
59 qint64 getImmatureBalance() const;
1113
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
60 int getNumTransactions() const;
1269
fc98f15bed54 Wallet encryption part 1: show wallet encryption status
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1262
diff changeset
61 EncryptionStatus getEncryptionStatus() const;
fc98f15bed54 Wallet encryption part 1: show wallet encryption status
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1262
diff changeset
62
1187
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
63 // Check address for validity
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
64 bool validateAddress(const QString &address);
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
65
1262
ee115fab6952 QtUI code cleanup / comment improvements
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1229
diff changeset
66 // Return status record for SendCoins, contains error id + information
1187
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
67 struct SendCoinsReturn
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
68 {
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
69 SendCoinsReturn(StatusCode status,
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
70 qint64 fee=0,
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
71 QString hex=QString()):
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
72 status(status), fee(fee), hex(hex) {}
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
73 StatusCode status;
1262
ee115fab6952 QtUI code cleanup / comment improvements
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1229
diff changeset
74 qint64 fee; // is used in case status is "AmountWithFeeExceedsBalance"
ee115fab6952 QtUI code cleanup / comment improvements
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1229
diff changeset
75 QString hex; // is filled with the transaction hash if status is "OK"
1187
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
76 };
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
77
1262
ee115fab6952 QtUI code cleanup / comment improvements
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1229
diff changeset
78 // Send coins to a list of recipients
1187
5c41b03dc484 add sendmany support
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1176
diff changeset
79 SendCoinsReturn sendCoins(const QList<SendCoinsRecipient> &recipients);
1271
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
80
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
81 // Wallet encryption
1533
d0ccfedf2957 Implement an mlock()'d string class for storing passphrases
Dylan Noblesmith <nobled@dreamwidth.org>
parents: 1496
diff changeset
82 bool setWalletEncrypted(bool encrypted, const SecureString &passphrase);
1271
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
83 // Passphrase only needed when unlocking
1533
d0ccfedf2957 Implement an mlock()'d string class for storing passphrases
Dylan Noblesmith <nobled@dreamwidth.org>
parents: 1496
diff changeset
84 bool setWalletLocked(bool locked, const SecureString &passPhrase=SecureString());
d0ccfedf2957 Implement an mlock()'d string class for storing passphrases
Dylan Noblesmith <nobled@dreamwidth.org>
parents: 1496
diff changeset
85 bool changePassphrase(const SecureString &oldPass, const SecureString &newPass);
1840
0760e07f7938 Added 'Backup Wallet' menu option
sje397 <sje397@gmail.com>
parents: 1616
diff changeset
86 // Wallet backup
0760e07f7938 Added 'Backup Wallet' menu option
sje397 <sje397@gmail.com>
parents: 1616
diff changeset
87 bool backupWallet(const QString &filename);
1271
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
88
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
89 // RAI object for unlocking wallet, returned by requestUnlock()
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
90 class UnlockContext
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
91 {
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
92 public:
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
93 UnlockContext(WalletModel *wallet, bool valid, bool relock);
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
94 ~UnlockContext();
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
95
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
96 bool isValid() const { return valid; }
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
97
1272
c4a6b003ac46 comments and readme update
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1271
diff changeset
98 // Copy operator and constructor transfer the context
c4a6b003ac46 comments and readme update
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1271
diff changeset
99 UnlockContext(const UnlockContext& obj) { CopyFrom(obj); }
c4a6b003ac46 comments and readme update
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1271
diff changeset
100 UnlockContext& operator=(const UnlockContext& rhs) { CopyFrom(rhs); return *this; }
1271
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
101 private:
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
102 WalletModel *wallet;
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
103 bool valid;
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
104 mutable bool relock; // mutable, as it can be set to false by copying
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
105
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
106 void CopyFrom(const UnlockContext& rhs);
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
107 };
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
108
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
109 UnlockContext requestUnlock();
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
110
1113
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
111 private:
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
112 CWallet *wallet;
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
113
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
114 // Wallet has an options model for wallet-specific options
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
115 // (transaction fee, for example)
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
116 OptionsModel *optionsModel;
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
117
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
118 AddressTableModel *addressTableModel;
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
119 TransactionTableModel *transactionTableModel;
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
120
1272
c4a6b003ac46 comments and readme update
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1271
diff changeset
121 // Cache some values to be able to detect changes
1192
bc546d3c46d2 make initial block download reporting somewhat better by tracking version responses
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1187
diff changeset
122 qint64 cachedBalance;
bc546d3c46d2 make initial block download reporting somewhat better by tracking version responses
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1187
diff changeset
123 qint64 cachedUnconfirmedBalance;
2690
a9a09da51502 Added 'immature balance' for miners. Only displayed if the balance is greater than zero.
sje397 <sje397@gmail.com>
parents: 2641
diff changeset
124 qint64 cachedImmatureBalance;
1192
bc546d3c46d2 make initial block download reporting somewhat better by tracking version responses
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1187
diff changeset
125 qint64 cachedNumTransactions;
1269
fc98f15bed54 Wallet encryption part 1: show wallet encryption status
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1262
diff changeset
126 EncryptionStatus cachedEncryptionStatus;
3150
0f0aad98e2a6 Add a timer to check for changes in immature or unconfirmed balances,
Scott Ellis <sje397@gmail.com>
parents: 2690
diff changeset
127 int cachedNumBlocks;
0f0aad98e2a6 Add a timer to check for changes in immature or unconfirmed balances,
Scott Ellis <sje397@gmail.com>
parents: 2690
diff changeset
128
0f0aad98e2a6 Add a timer to check for changes in immature or unconfirmed balances,
Scott Ellis <sje397@gmail.com>
parents: 2690
diff changeset
129 QTimer *pollTimer;
1192
bc546d3c46d2 make initial block download reporting somewhat better by tracking version responses
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1187
diff changeset
130
2640
60b19c042950 Convert UI interface to boost::signals2.
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2639
diff changeset
131 void subscribeToCoreSignals();
60b19c042950 Convert UI interface to boost::signals2.
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2639
diff changeset
132 void unsubscribeFromCoreSignals();
3150
0f0aad98e2a6 Add a timer to check for changes in immature or unconfirmed balances,
Scott Ellis <sje397@gmail.com>
parents: 2690
diff changeset
133 void checkBalanceChanged();
0f0aad98e2a6 Add a timer to check for changes in immature or unconfirmed balances,
Scott Ellis <sje397@gmail.com>
parents: 2690
diff changeset
134
1113
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
135 signals:
1272
c4a6b003ac46 comments and readme update
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1271
diff changeset
136 // Signal that balance in wallet changed
2690
a9a09da51502 Added 'immature balance' for miners. Only displayed if the balance is greater than zero.
sje397 <sje397@gmail.com>
parents: 2641
diff changeset
137 void balanceChanged(qint64 balance, qint64 unconfirmedBalance, qint64 immatureBalance);
1272
c4a6b003ac46 comments and readme update
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1271
diff changeset
138
c4a6b003ac46 comments and readme update
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1271
diff changeset
139 // Number of transactions in wallet changed
1113
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
140 void numTransactionsChanged(int count);
1272
c4a6b003ac46 comments and readme update
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1271
diff changeset
141
c4a6b003ac46 comments and readme update
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1271
diff changeset
142 // Encryption status of wallet changed
1269
fc98f15bed54 Wallet encryption part 1: show wallet encryption status
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1262
diff changeset
143 void encryptionStatusChanged(int status);
1272
c4a6b003ac46 comments and readme update
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1271
diff changeset
144
c4a6b003ac46 comments and readme update
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1271
diff changeset
145 // Signal emitted when wallet needs to be unlocked
c4a6b003ac46 comments and readme update
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1271
diff changeset
146 // It is valid behaviour for listeners to keep the wallet locked after this signal;
c4a6b003ac46 comments and readme update
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1271
diff changeset
147 // this means that the unlocking failed or was cancelled.
1271
052a2a34f756 Wallet encryption part 2: ask passphrase when needed, add menu options
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1269
diff changeset
148 void requireUnlock();
1113
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
149
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
150 // Asynchronous error notification
2153
eb336ea43cc7 qtui.h/noui.h interface cleanup
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2150
diff changeset
151 void error(const QString &title, const QString &message, bool modal);
1113
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
152
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
153 public slots:
2639
c4ef3fe2ae15 Fine-grained UI updates
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2242
diff changeset
154 /* Wallet status might have changed */
c4ef3fe2ae15 Fine-grained UI updates
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2242
diff changeset
155 void updateStatus();
c4ef3fe2ae15 Fine-grained UI updates
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2242
diff changeset
156 /* New transaction, or transaction changed status */
c4ef3fe2ae15 Fine-grained UI updates
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2242
diff changeset
157 void updateTransaction(const QString &hash, int status);
c4ef3fe2ae15 Fine-grained UI updates
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2242
diff changeset
158 /* New, updated or removed address book entry */
2641
8c808b8dcf02 Process address book updates incrementally
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2640
diff changeset
159 void updateAddressBook(const QString &address, const QString &label, bool isMine, int status);
3150
0f0aad98e2a6 Add a timer to check for changes in immature or unconfirmed balances,
Scott Ellis <sje397@gmail.com>
parents: 2690
diff changeset
160 /* Current, immature or unconfirmed balance might have changed - emit 'balanceChanged' if so */
0f0aad98e2a6 Add a timer to check for changes in immature or unconfirmed balances,
Scott Ellis <sje397@gmail.com>
parents: 2690
diff changeset
161 void pollBalanceChanged();
1113
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
162 };
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
163
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
164
fed522d006eb Split off WalletModel from ClientModel, to be able to support multi-wallets in future
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
165 #endif // WALLETMODEL_H