Commit graph

705 commits

Author SHA1 Message Date
ThomasV
85b48191da formatting (unneeded spaces) 2016-01-10 14:22:33 +01:00
Neil Booth
637164d335 Introduce BIP32_RD_Wallet
Represents a BIP_32 wallet with a root derivation.
This permits us to see address derivation for NewWallet types
in the QT Gui.
2016-01-10 20:20:04 +09:00
Neil Booth
81d641a13f Show BIP32 path for BIP32_HD_Wallet classes
from right-click Show Public Keys menu.

Fixes #1598
2016-01-10 14:53:00 +09:00
Neil Booth
83cc5e2001 Fix top level window issue on Mac
Better, more generic fix superseding prior two patches.
2016-01-10 12:56:12 +09:00
Neil Booth
56bc717da1 Encrypt / decrypt: use top level window
Show errors on top level window, otherwise MacOSX gets stuck.
2016-01-10 12:42:47 +09:00
Neil Booth
b97c2857e0 Fixes for message sign and verify
base64 can throw which caused silent verification failures.
Ask for passwords with correct parent window otherwise dialog
not visible on MacOSX.  Similarly for verification messages.
2016-01-10 12:35:29 +09:00
Kefkius
d29fd4d9d1
Use info message box for Pay-To-Many instructions 2016-01-08 05:00:15 -05:00
ThomasV
97c443a86d use a wallet-owned dummy_address, to minimize risk of losses. This was removed in 11d135b without explanation 2016-01-06 09:36:13 +01:00
ThomasV
f49f538315 Revert "Use a real dummy address"
This reverts commit 9ed987c2da.
2016-01-06 09:26:29 +01:00
Neil Booth
9ed987c2da Use a real dummy address
Fixes #1599
2016-01-04 17:54:23 +09:00
Neil Booth
0c80ca8457 Get rid of timer_actions hook
Nothing uses it.  In the unlikely event we need it back, we
should call it qt_timer_actions instead as it is QT-only and
runs in the QT GUI thread.
2016-01-03 20:56:13 +09:00
Neil Booth
13154d4ce7 Fix import in main_window.py 2016-01-03 11:20:22 +09:00
Neil Booth
21bf5a8a84 Better support for USB devices
Benefits of this rewrite include:

- support of disconnecting / reconnecting a device without having
  to close the wallet, even in a different USB socket
- support of multiple keepkey / trezor devices, both during wallet
  creation and general use
- wallet is watching-only dynamically according to whether the
  associated device is currently plugged in or not
2016-01-02 20:39:29 +09:00
Neil Booth
11d135b32d Better install wizard
Break out the workflow logic of the install wizard
into a base class.  This means reimplementing with
full support in a new GUI is now easy; you just provide
ways to request passwords, show messages etc.  The API
is fully documented in the base class.

There are a couple of minor outstanding issues, including that
the old messages shown when recovering a wallet are missing.
I will come back to that.  Ledger wallet might be broken.

Other improvements:

The install wizard code is now easy to follow and understand.
Hardware wallets can now be restored without any need for their
accompanying libraries.
Various bits of trustedcoin were broken and have been fixed.
Many plugin hooks can be removed.  I have only started on this.
2016-01-01 16:48:18 +09:00
Neil Booth
bcabfaeccb Move install wizard invocations to one place
Fixes bugs whereby install wizard invoked from the GUI was missing
various things, such as updating recently used list, setting up
timers, etc.
2015-12-31 12:02:16 +09:00
Neil Booth
93d05e8cfe Have close_wallet hook take a wallet. 2015-12-31 10:31:49 +09:00
Neil Booth
1d51335827 Remove need for self.wallet for h/w wallets 2015-12-30 17:03:26 +09:00
Neil Booth
e0aab69e67 Better handling of watching only
Avoid unnecessary message at startup.
It can now be dynamic and menus, title bar update properly.
2015-12-28 22:51:50 +09:00
Neil Booth
8f91af28a5 More cleanup of WaitingDialog
Simplify its interface
2015-12-26 11:18:32 +09:00
Neil Booth
a58c19d7c0 Clean up and fix account adding
As per BIP44, 20 addresses are checked for transactions, not just the
first one.
Show the last account only if used or named.
If all accounts are used, prompt for password to create new one.

Fixes #1128
2015-12-25 23:34:04 +09:00
Neil Booth
ffd081ac21 Clean up WaitingDialog
Prevent GC so callers don't have to.
2015-12-23 22:10:11 +09:00
Neil Booth
37a49752eb Fix greenaddress modality and centring issues 2015-12-23 20:13:17 +09:00
Neil Booth
6f4d4b9a1e Modality and centring fixes for QR codes 2015-12-23 18:42:01 +09:00
Neil Booth
9484b6371f More modality fixes and cleanups 2015-12-23 18:31:36 +09:00
Neil Booth
37b474716b Window modality fixes + improved password dialog 2015-12-23 17:32:08 +09:00
Neil Booth
15e9991e2a Move message box logic to a mixin 2015-12-23 15:10:15 +09:00
Neil Booth
1afb644203 Fix call to get_wallet_folder 2015-12-23 13:42:35 +09:00
Neil Booth
21e4a30371 Modality fixes for critical errors 2015-12-23 13:39:20 +09:00
Neil Booth
57d4b27696 Fix a bunch more modality issues for message boxes 2015-12-23 13:21:13 +09:00
Neil Booth
0a3a0f12cc Make more dialogs window-modal
Also remove some unnecessary imports
2015-12-23 12:20:19 +09:00
Neil Booth
0f431b23eb Make more dialogs window-modal 2015-12-23 11:52:36 +09:00
Neil Booth
5c1828e03d Install wizard -> window-modal, fix missing import 2015-12-22 22:18:59 +09:00
Neil Booth
68da937e89 Address history dialog -> window modal 2015-12-22 22:11:37 +09:00
Neil Booth
d98451f114 Make more dialogs window modal 2015-12-22 22:05:27 +09:00
Neil Booth
6442dd59ad Make two more dialogs window-modal 2015-12-22 08:02:01 +09:00
Neil Booth
44a436e964 Make line_dialog, text_dialog window modal
Move new_wallet and get_wallet_folder from qt/__init__.py
to qt/main_window.py for correct centring and window modality.
2015-12-22 07:55:33 +09:00
Neil Booth
8598f9ef9c Permit sweep of private keys for watch-only wallet
Fixes #1585
Warn user if watching-only.
Introduce new helper class WindowModalDialog and use it in a couple
of places.  This is better than process-modal dialogs for our
multi-window daemon setup.
2015-12-21 23:52:48 +09:00
ThomasV
9d3162b1a1 simplify get_label 2015-12-15 12:52:30 +01:00
Neil Booth
e9d0dd578a Put coin selection combo at bottom 2015-12-12 18:26:58 +09:00
Neil Booth
36aaad392d Fix docstring display. 2015-12-12 18:11:07 +09:00
ThomasV
0cef063ee2 add payment requests to kivy 2015-12-11 15:21:21 +01:00
Neil Booth
75b3ecee49 Add coin chooser to try and minimize loss of privacy. 2015-12-09 22:20:23 +09:00
ThomasV
6ec610c359 kivy updates 2015-12-02 12:11:28 +01:00
Neil Booth
e190024f73 Only pass a fixed fee if it was user-specified.
Otherwise we inadvertently fix the fee at the prior calculated one,
which isn't what we want
2015-11-29 23:14:40 +09:00
ThomasV
19533dda15 load wallet in ElectrumWindow constructor 2015-11-24 12:10:43 +01:00
ThomasV
f09d80459d fix #1564 2015-11-24 11:13:48 +01:00
ThomasV
ba2c737a21 finish separation between plugins and GUIs 2015-11-24 09:36:42 +01:00
ThomasV
2c0489c809 plugins: separate GUIs using child classes 2015-11-23 14:15:25 +01:00
ThomasV
175fdbcac6 Disentangle plugins and window management; use Qt signals 2015-11-23 09:05:34 +01:00
Neil Booth
50755d7db3 Use weakref for tabs in QShortCut lambdas
Unfortunately we have no way to directly destroy or remove the
lambdas embedded in the QShortcut objects, so this is the
only solution to avoid leaking references.  As the QShortcut
objects have the window as parent, they are destroyed with the
window so dangling refs to the destroyed window can't happen.

This and 91349d109e fix #1549.
2015-11-14 10:35:29 +09:00