Commit Graph

1656 Commits

Author SHA1 Message Date
ThomasV 62868ab29a Register loaded wallets in daemon, to prevent a wallet from being opened twice.
Simplify the wizard logic.
2016-01-06 00:58:43 +01:00
Neil Booth 9ed987c2da Use a real dummy address
Fixes #1599
2016-01-04 17:54:23 +09:00
ThomasV 6210c61eb6 fix #1597 2016-01-03 17:47:02 +01: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 1ffc14df76 Force OK button to be default
Until we work out the right way to use the stacked dialogs.
2016-01-03 20:09:05 +09:00
Neil Booth 87363c8301 Trezor: Implement resetting a device 2016-01-03 13:34:03 +09:00
Neil Booth 13154d4ce7 Fix import in main_window.py 2016-01-03 11:20:22 +09:00
Neil Booth 40ae744c1e Fix show_error inheritance issue 2016-01-03 11:18:20 +09:00
Neil Booth 6e660f562f Change inheritance order in installwizard.py
Also put back set_layout.  This is causing two things:

a) on MacOSX the next / cancel buttons vanish if in one position
b) on all O/Ses the Next button is not the default

We're obviously abusing StackedLayout in an unintended way.
2016-01-03 10:39:44 +09:00
Neil Booth a7028176cd Trezor: Add wipe device functionality
Also add a chicken box for PIN removal.
2016-01-03 10:26:34 +09:00
Neil Booth 9aae66a9d2 Move set_layout call
This code is identical to before, but for some reason the positioning
of this affects whether Next is the default action or not!

And it didn't have that effect with the old install wizard.  Odd.
2016-01-03 09:32:41 +09:00
Neil Booth f3e6bf0280 Passphrase-related fixes
Move normalize code to one place on the wallet
Passphrases don't have password strength meter
2016-01-03 09:03:07 +09:00
Neil Booth 3422d855c9 A few small fixes 2016-01-02 23:06:53 +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 12f62212ba Move wallet_kinds to the base class
This logic isn't gui-dependent so belongs in wizard.py
2016-01-02 00:35:09 +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 441b695815 Break out logic into a function 2015-12-31 12:16:32 +09:00
Neil Booth 3df8d11f1a Pass the gui object to the install wizard 2015-12-31 12:09:23 +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 0ecf2565ce MessageBoxMixin-related cleanup 2015-12-23 20:05:09 +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 62201b37f5 MacOSX fix
If these lines are the other way round, the buttons don't appear
on MacOSX!
2015-12-23 15:23:35 +09:00
Neil Booth 15e9991e2a Move message box logic to a mixin 2015-12-23 15:10:15 +09:00
Neil Booth 72fdf0cd21 Better error when opening a non-wallet file
Also window modality fixes for __init__.py
2015-12-23 13:54:43 +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 4c36987845 Change password QT dialog window modal 2015-12-22 23:09:09 +09:00
Neil Booth 7437746cd2 Network dialog -> window modal
Clean up imports
2015-12-22 22:23:51 +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 5f0a7db598 kivy: password dialog and wizard fixes 2015-12-20 17:37:07 +01:00
Neil Booth 2226667437 QT: Stop timer cleanly to avoid exceptions on exit 2015-12-20 16:15:33 +09:00
Neil Booth e1c0298fc2 Write the wallet less often
This should speed up synchronization / restoration of large wallets.
Wallets are written only when they switch to up_to_date state, or
when stop_threads() is called when closing the daemon, or when
a command line command finishes.
2015-12-20 15:47:46 +09:00
ThomasV ee4ccd9b1b kivy: move wallets dialog 2015-12-18 15:03:38 +01:00
ThomasV e46b00bb39 move methods related to amount dialog 2015-12-18 13:04:19 +01:00
ThomasV f7a3b53c3f kivy: add status dialog 2015-12-18 11:29:56 +01:00
ThomasV 9efaf73336 kivy cleanup 2015-12-18 11:05:10 +01:00
ThomasV ff163e34d8 kivy: wallets and settings menus 2015-12-18 10:53:50 +01:00
ThomasV f8f124ad84 kivy: add delay to ActionButtons 2015-12-16 12:40:30 +01:00
ThomasV b3ef2249b5 add more features to settings dialog 2015-12-16 11:53:37 +01:00
ThomasV 30ace570d3 kivy: choice_dialog and load_wallet_by_name 2015-12-16 08:57:47 +01:00
ThomasV 9d3162b1a1 simplify get_label 2015-12-15 12:52:30 +01:00
ThomasV 2990b1e865 fix: follow up to ba26996367 2015-12-15 12:33:36 +01:00
ThomasV ba26996367 fix exchange_rate in kivy 2015-12-15 12:29:48 +01:00
ThomasV 3568c325ea kivy: use Clock to improve button responsiveness 2015-12-14 21:34:25 +01:00
ThomasV 0b1561f447 kivy: fix qr code 2015-12-14 21:32:57 +01:00
ThomasV b5b3679404 kivy: recreate context menu everytime an item is selected 2015-12-14 15:02:57 +01:00
ThomasV 5e5f3202b1 kivy: move amount dialog 2015-12-14 14:27:39 +01:00
ThomasV c55a253f6d kivy: improve layout 2015-12-14 13:37:19 +01:00
ThomasV 8977493a62 kivy: label dialogs 2015-12-14 12:08:11 +01:00
ThomasV 98d4384641 kivy: fix set amount 2015-12-13 17:54:17 +01:00
ThomasV 9b44635e3c kivy: make tabs one third of screen width and fix tabs scrolling 2015-12-13 17:36:23 +01:00
ThomasV f7ffdfc2b1 kivy: fix qrcodewidget (only update from gui thread) 2015-12-13 16:21:50 +01:00
ThomasV a190d1dbe6 kivy: fixes 2015-12-13 15:26:08 +01:00
ThomasV 9caf174d7f kivy: add status icons, improve requests layout 2015-12-13 10:42:48 +01:00
ThomasV cd0ab62cae kivy: various small fixes 2015-12-13 06:41:22 +01:00
ThomasV eef62112a8 kivy: invoices and requests handlers 2015-12-12 23:23:58 +01:00
ThomasV 6bd37723d3 kivy: add context menus 2015-12-12 16:54:32 +01:00
Neil Booth e9d0dd578a Put coin selection combo at bottom 2015-12-12 18:26:58 +09:00
Neil Booth 1524fa29af Raise dialog width slightly. 2015-12-12 18:20:49 +09:00
Neil Booth 36aaad392d Fix docstring display. 2015-12-12 18:11:07 +09:00
Neil Booth 34955bd0f5 Show value if available 2015-12-12 17:52:19 +09:00
Neil Booth f3a7d3f2bf Show amount of inputs too. 2015-12-12 09:41:31 +09:00
ThomasV 680c9c888a kivy: add save_request button 2015-12-11 15:48:56 +01:00
ThomasV c71b8d7328 kivy: reorganize tabs 2015-12-11 15:32:48 +01:00
ThomasV 0cef063ee2 add payment requests to kivy 2015-12-11 15:21:21 +01:00
ThomasV 4195001aed kivy: fix animate_to_center 2015-12-10 15:26:38 +01:00
ThomasV 1b0e29d385 kivy: add screens for invoices and requests, disable contacts 2015-12-10 11:33:58 +01:00
ThomasV 8e7c5a180f kivy: handle absence of fiat exchange rate 2015-12-10 11:33:30 +01:00
Neil Booth 75b3ecee49 Add coin chooser to try and minimize loss of privacy. 2015-12-09 22:20:23 +09:00
ThomasV de964f4033 plugins: on_close method 2015-12-09 09:41:24 +01:00
ThomasV add9665584 cleanup 2015-12-07 18:41:58 +01:00
ThomasV 346307d249 kivy: tweaks 2015-12-07 16:43:18 +01:00
ThomasV 1c7f3c65e2 kivy: fix settings layout 2015-12-07 15:59:59 +01:00
ThomasV 37e93928ab kivy: improve settings and password dialogs 2015-12-07 14:33:35 +01:00
ThomasV 0d5114b6c2 kivy: improve amount and password dialogs 2015-12-07 10:40:10 +01:00
ThomasV 3c4801b8de kivy: layout 2015-12-06 13:34:28 +01:00
ThomasV b171b8eb4d kivy: fix 2015-12-06 11:11:57 +01:00
ThomasV 44037ba381 kivy: minor fix 2015-12-06 10:45:57 +01:00
ThomasV 9edd778204 kivy: use switches for plugins 2015-12-06 10:41:44 +01:00
ThomasV 2f13910bf1 kivy: add context button for tx details 2015-12-06 10:29:20 +01:00
ThomasV 9b2885e697 kivy: updates 2015-12-05 18:14:17 +01:00
ThomasV 84b18e0949 qt: save last active window, not last opened window 2015-12-05 16:53:56 +01:00
ThomasV b6242a453b kivy: minor fix 2015-12-04 12:57:17 +01:00
ThomasV 011ccc6e54 kivy: sanitize inputs 2015-12-04 12:01:13 +01:00
ThomasV df02269bcf kivy: rework send and receive screens 2015-12-04 11:47:46 +01:00
ThomasV e9ee851bb2 fix: set auto_connect in installwizard 2015-12-03 23:50:50 +01:00
ThomasV b700340ff9 kivy: use exchange rates in amount dialog 2015-12-03 22:43:43 +01:00
ThomasV f651742f86 kivy: layout 2015-12-02 19:25:07 +01:00
ThomasV 58acb6c759 whitelist csv 2015-12-02 18:41:59 +01:00
ThomasV fb641b5bf1 kivy updates 2015-12-02 18:02:11 +01:00
ThomasV d60be8e19c kivy: use exclude_dirs instead of blacklist 2015-12-02 16:16:21 +01:00
ThomasV 1126555f14 kivy updates 2015-12-02 15:27:23 +01:00
ThomasV 6ec610c359 kivy updates 2015-12-02 12:11:28 +01:00
ThomasV 95bf92b683 update kivy blacklist 2015-12-01 18:56:39 +01:00
ThomasV deefd74c37 labels sync for kivy 2015-12-01 17:29:24 +01:00
ThomasV 0215aee047 kivy: plugins layout 2015-12-01 16:54:16 +01:00
ThomasV 20cf074a8f fix plugin name 2015-12-01 16:51:14 +01:00
ThomasV 409557bca5 fix typo 2015-12-01 13:50:47 +01:00
ThomasV 4682d95a76 merge jsonrpc gui and daemon 2015-11-30 10:09:54 +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
ThomasV 47e5bd653a add a color pair for qr code 2015-11-15 17:53:02 +01:00
ThomasV 88c238dda7 fix Settings dialog in text gui 2015-11-15 13:29:31 +01:00
Neil Booth 53f6fb9876 Add a GC debugger
Add commented-out GC debugging step
2015-11-14 10:47:44 +09: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
Neil Booth 91349d109e Add explanatory comment. 2015-11-13 23:42:46 +09:00
Neil Booth ae4cfc9f0b Unregister network callbacks from QT gui
Rework the callback system in QT to make this easy, and avoid
leaking window references that prevent the window from being
GC-ed on close
2015-11-13 23:36:29 +09:00
Neil Booth 51ebdc5ce8 Remove another non-existent callback 2015-11-12 15:33:58 +09:00
Neil Booth afb5013272 Remove non-existent callbacks and handlers 2015-11-12 15:32:24 +09:00
ThomasV 55fafc35c1 fix json_encode with python console 2015-11-09 16:09:57 +01:00
Neil Booth 7b40b63a3d Refresh all amount edits when units change.
Improved version of prior commit.
2015-11-09 20:06:36 +09:00
ThomasV 386319b015 clear send fields if unit setting is changed 2015-11-08 00:00:11 +01:00
ThomasV 798664e299 remove minimum window size 2015-11-06 17:13:11 +01:00
ThomasV 3ae3dbd80c add qrcode to text gui 2015-11-06 16:31:24 +01:00
Juraj Variny 812399f51d Fix 'need more than 2 values to unpack' error. 2015-11-04 19:07:50 +01:00
ThomasV 55494e4224 save window geometry in wallet file, since the GUI can open several windows 2015-11-02 15:53:31 +01:00
ThomasV 4a7c7a6616 installwizard: do not start in offline mode when disconnected (fix #1531) 2015-11-02 12:58:47 +01:00
ThomasV 2d6c67bd55 kivy window input_mode 2015-11-01 09:32:40 +01:00
ThomasV 3613e4ebf0 kivy: fix formatting in get_max_amount 2015-10-31 15:25:22 +01:00
ThomasV b8b2840d18 kivy: sign and send in a thread 2015-10-31 15:12:34 +01:00
ThomasV 77d6ee74f9 revert PR #1492. clear clipboard instead 2015-10-31 11:48:37 +01:00
ThomasV dae9352c18 add warning against printers to seed dialog 2015-10-31 11:03:49 +01:00
ThomasV b1ab49a282 Merge pull request #1492 from ctrlcctrlv/uncopyable-seed
Make seed uncopyable
2015-10-31 10:59:19 +01:00
ThomasV 6bb6169541 kivy: pass show_max as parameter 2015-10-30 15:48:17 +01:00
ThomasV c19c314c0f Merge branch 'master' of git://github.com/spesmilo/electrum 2015-10-30 15:45:23 +01:00
akshayaurora 6e45f42b19 amount dialog: use show_max bool to decide wheather max_button is displayed 2015-10-30 19:41:54 +05:30
ThomasV 728ef1f76c remove redundant label 2015-10-30 14:44:36 +01:00
ThomasV 7b87a7f707 Merge pull request #1529 from akshayaurora/overflow_action
fix overflow_icon and use template for `ActionOvrButton`
2015-10-30 14:38:52 +01:00
akshayaurora b3b94f1c52 fix overflow_icon and use template for `ActionOvrButton` 2015-10-30 19:05:17 +05:30