Mercurial > hg > bitcoin
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 |
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 |