Commit Graph

1365 Commits

Author SHA1 Message Date
ThomasV 0e7795f2a7 show/hide addresses tab in Qt GUI 2016-05-25 12:22:10 +02:00
ThomasV be75b337aa help text for RBF button 2016-05-23 17:57:36 +02:00
ThomasV f01f931e83 add extra checkbox for RBF 2016-05-23 17:34:33 +02:00
ThomasV 18a2498b76 show UTXOs in address tab 2016-05-23 11:52:38 +02:00
ThomasV 85aa633269 simplify wizard handling of hardware wallets. fixes #1793 2016-05-21 18:43:41 +02:00
ThomasV 0e853a6769 fee slider: use tooltips 2016-05-21 11:12:56 +02:00
ThomasV fff8462f36 add explicit 'max' button to send tab. fixes #1428 2016-05-20 20:14:21 +02:00
ThomasV 3314b3acc7 Use dynamic fees by default, show fee slider in send tab, and discretize fee levels. 2016-05-20 15:30:39 +02:00
ThomasV edb145e66a QT gui: add new tab to preferences dialog 2016-05-20 11:41:42 +02:00
ThomasV bc1bef60a0 support Replace-By-Fee in GUI 2016-05-20 10:38:48 +02:00
Neil Booth 11ef0f5489 Properly disable the next button if no choices
Fixes 1793, 1786
2016-05-19 07:39:53 +09:00
Neil Booth db1aa13015 Permit empty passphrases when creating HW wallet
They used to be confused as a user cancel.
Fixes #1788
Also fix Cancel pressed in passphrase dialog when *restoring*
a hardware wallet in install wizard; it used to be taken as an
empty passphrase.  Like the password dialog it now cancels the
wizard.
2016-05-07 10:40:12 +09:00
ThomasV 8e6e287802 make restore thread a daemon 2016-04-05 10:49:28 +02:00
ThomasV 7ea2a217cd fix issue #1748 2016-04-04 16:49:19 +02:00
The Phez c1230cf270 Label colour - History Window
Set colour of label for outgoing transactions to match the colour of the
value field (red)
2016-03-25 10:01:48 -04:00
ThomasV 94dbfe6791 fix #1728 2016-03-20 19:05:38 +01:00
ThomasV 9659e8542d fix transaction parsing from command line 2016-03-16 10:31:33 +01:00
ThomasV bca0f31fca coinchooser methods should not belong in wallet class 2016-03-10 16:37:45 +01:00
ThomasV 80b1b2716c kivy: open last wallet 2016-03-08 11:10:04 +01:00
Neil Booth 467b0c0973 tx_dialog: make a deep copy of the tx
I've confirmed this
Fixes #1690
2016-02-28 19:10:09 +09:00
ThomasV 96f144eb03 make sure the broadcast tx thread always times out 2016-02-25 08:55:06 +01:00
ThomasV 305843999e Relicensing 2016-02-24 10:20:30 +01:00
ThomasV b53a54cded remove bmp.py; use Qt instead 2016-02-23 15:27:00 +01:00
ThomasV 41f6fec2ac kivy: set_paid for paid invoices 2016-02-19 13:53:01 +01:00
ThomasV f1822a9603 pending->unconfirmed 2016-02-15 19:50:44 +01:00
ThomasV 04c7d2b455 add 'donate to server' menu item 2016-02-15 16:17:07 +01:00
Neil Booth 5f590c9c64 2 fee colour fixes
update_fee() if removing an item from send_from
update not_enough_funds when pressing !
2016-02-13 15:40:34 +09:00
ThomasV cc526a8734 tx dialog: don't use tx.raw 2016-02-12 15:20:34 +01:00
Neil Booth 061152245e Merge branch 'no_force_wo' 2016-02-08 18:58:23 +09:00
Neil Booth c41e694534 show_seed_dialog: return if user cancels p/w input
Update stale comment.
2016-02-07 18:05:24 +09:00
Neil Booth 6b9d12e369 Tweak tooltip 2016-02-07 17:51:56 +09:00
Neil Booth 9490debf0f hw_wallet: don't make watching only if cannot pair
Instead issue a warning.  Being watching-only disables
various functionality that should instead just ask again
for the PIN to be input.
2016-02-07 17:38:34 +09:00
Neil Booth bb3de0eb63 change_password_dialog: remove redundant check
This is guaranteed False by wallet.can_change_password()
2016-02-07 16:45:29 +09:00
Neil Booth 5c2c7b1557 trezor: create new accounts in non-GUI thread 2016-02-07 15:15:58 +09:00
Neil Booth 16397b1ed7 trezor: more user friendly when cannot connect
Tell the user and ask if they want to try again.  If they
say no, raise a silent exception.  Apply this more friendly
behaviour to the install wizard too (see issue #1668).
2016-02-06 19:51:39 +09:00
Neil Booth 4ea9518aef QT install wizard: catch general exceptions
and show an error before re-raising and exiting.  Improvement on
prior.
2016-02-06 15:13:27 +09:00
ThomasV 6faac2ca36 My Requests -> Requests 2016-02-04 11:49:12 +01:00
ThomasV 2a507b91c1 fix #1666 2016-02-03 10:29:31 +01:00
ThomasV 3ee61c4c6e define wallet.dummy_address method 2016-02-02 19:56:34 +01:00
ThomasV 5aa0a87d7a trustedcoin: restore the display of fees 2016-02-02 16:26:47 +01:00
Neil Booth 274d91fd6e watching_only: warn after showing main window 2016-02-01 07:45:16 +09:00
Neil Booth ab488b566b warn_if_watching_only: don't call twice 2016-02-01 07:42:53 +09:00
Neil Booth e61fffab55 Trezor/KeepKey: force watching only improvements
Only warn about watching only once given a chance to pair.
Failure to pair makes watching-only and warns.
In error message to user, distinguish between failure to connect
and failure to pair.
2016-01-31 19:36:21 +09:00
Neil Booth 69da96feb4 The daemon stops the wallet threads now 2016-01-31 14:38:16 +09:00
Neil Booth 58d5215e2e No need to pass daemon and network together
The daemon has the network
2016-01-29 22:25:59 +09:00
ThomasV 08e5aecee2 Revert "Plugins: remove init_qt hook; clean up"
This reverts commit e20369bf94.
2016-01-28 14:57:59 +01:00
Neil Booth 9fa8c4de27 Installwizard: not app-modal on MacOSX
Making a window with no parent window-modal on Mac makes it
application-modal.  This is different to behaviour under X, and
we don't want that.  Use QDialog instead.
2016-01-27 22:10:34 +09:00
ThomasV fe9ec6de06 reformatting 2016-01-26 13:51:47 +01:00
ThomasV 9b09c55356 dynamic fees: use hardcoded value as upper bound 2016-01-25 16:46:50 +01:00
Neil Booth c0295c767e tx_dialog: prompt if signed but not saved
I've lost a signed TX one too many times now
2016-01-25 19:26:02 +09:00
Neil Booth 60be9d59bc Fix prior; scale is off-by-50 2016-01-24 21:29:02 +09:00
Neil Booth c02e3621f3 Settings: improvements to dynamic fee slider
Fixes #1595
2016-01-24 20:58:00 +09:00
Neil Booth e20369bf94 Plugins: remove init_qt hook; clean up
Fixes #1644
2016-01-24 20:14:08 +09:00
Neil Booth f8ed7b058d Improved multi-device handling
Ask user which device to use when there are many.  If there
is only one skip the question.  We used to just pick the
first one we found; user had no way to switch.

We have to handle querying from the non-GUI thread.
2016-01-24 13:41:03 +09:00
Neil Booth 38a8385287 Remove stale comment 2016-01-23 16:52:24 +09:00
Neil Booth 9f95e90706 Remove wrong code
The correct line is 3 below
2016-01-23 16:26:37 +09:00
Neil Booth f92843bb10 Top level window fix for tx_dialog and h/w wallets 2016-01-23 16:06:32 +09:00
Neil Booth 618026f96c Installwizard: tweak hardware wallet handling 2016-01-22 22:16:58 +09:00
Neil Booth 1f75ab89fa Installwizard: handle Escape key 2016-01-22 21:36:10 +09:00
Neil Booth 95a0cbabfd Add a note regarding hardware wallets 2016-01-22 21:07:41 +09:00
ThomasV 858b9c5655 kivy: improve settings dialog 2016-01-21 12:12:55 +01:00
Neil Booth eebabdf209 Merge branch 'client_thread' 2016-01-19 21:01:46 +09:00
ThomasV 4122c108fc plugins: enable & disable methods 2016-01-19 10:03:05 +01:00
Neil Booth 9ab9c73d6d Threaded wallet creation 2016-01-18 07:33:04 +09:00
Neil Booth b32a34b8ba Threaded message signing 2016-01-18 07:33:04 +09:00
Neil Booth ef2c472739 Threaded decryption 2016-01-18 07:33:04 +09:00
Neil Booth 06c262d0dc TrezorClient: should be in a separate thread
First steps; get show_address working.
Client is not responsible for showing exceptions.
Suppress uninteresting exceptions.
2016-01-18 07:33:04 +09:00
ThomasV d200b236ae replace tx.input, tx.output by methods, so that deserialize calls are encapsulated 2016-01-17 15:04:11 +01:00
Neil Booth e2627e0944 QMessageBox is a top-level window 2016-01-17 19:40:05 +09:00
Neil Booth 144f53be18 Use TaskThread to simplify ThreadedButton
And improve labels dialog
2016-01-17 16:13:32 +09:00
Neil Booth c714acf739 Add TaskThread, use to simplify WaitingDialog
This will be useful as a client thread for hardware wallets
2016-01-17 15:47:08 +09:00
Neil Booth d9a84875dc Fix prior; keep tx dialog as top-level window 2016-01-17 13:41:09 +09:00
Neil Booth d9a13a5dd1 transaction_dialog: don't override base class
Rename parent to main_window.  Make the main window our parent.
2016-01-17 13:36:40 +09:00
ThomasV 3574ade484 fix #1635 2016-01-17 02:56:52 +01:00
ThomasV eb085c2e23 Clarify preferences dialog:
* rename 'Oldest First' policy as Priority
 * show multiple change and fee multiplier on separate lines
2016-01-15 09:02:03 +01:00
Neil Booth 6bf91b8ae2 Update comments and tooltips. 2016-01-15 15:25:01 +09:00
Neil Booth 53fa973898 Move change_amounts() to base class.
Update tooltip of the preference.
2016-01-15 15:21:25 +09:00
Neil Booth 641f23229d Add multiple change output preference
Limit to 3 if enabled.
2016-01-15 14:54:26 +09:00
ThomasV 0d52911561 define constants for tx output types 2016-01-14 17:15:50 +01:00
ThomasV b5313ce17d follow up da8fce1914 2016-01-14 16:23:12 +01:00
Neil Booth bda9adc01f Close install wizard when cancelled from menu 2016-01-13 22:50:25 +09:00
Neil Booth 889c4cb7fb Multisig: create and restore work
Override run in derived class to catch UserCancelled again
Restore self.finished() hook.
Fix a typo.
2016-01-13 22:38:32 +09:00
Neil Booth 6178f5a28f Fix some more regressions and trustedcoin plugin 2016-01-13 22:25:40 +09:00
Neil Booth fd66e15d3d Fix some regressions from layout rework. 2016-01-13 21:25:48 +09:00
Neil Booth 9390a97e9e Bring the network dialog into the new framework 2016-01-13 21:11:06 +09:00
Neil Booth 4c9b224d4c Put open_wallet back as class method. 2016-01-13 20:56:44 +09:00
Neil Booth cb8bc4ec73 Bring query_choice into the new framework. 2016-01-13 19:49:58 +09:00
ThomasV 632905dfbe instantiate wizard only if needed 2016-01-13 11:27:17 +01:00
Neil Booth 0219687d41 Some work on multisig. 2016-01-13 19:20:58 +09:00
Neil Booth 576500aa29 Embed generating addresses text 2016-01-12 23:36:25 +09:00
Neil Booth f94d2db9a4 Embed password dialog. 2016-01-12 23:32:13 +09:00
Neil Booth 2ae3543dc4 Start work on persistent install wizard 2016-01-12 22:31:53 +09:00
Neil Booth f7b39f4952 A different approach to d5aa646
Only clean up the MainWindow once.
2016-01-12 20:19:21 +09:00
Neil Booth d5aa6466c9 Be careful removing windows from the list
I've occasionally had Python throw saying the window
isn't in the list.
2016-01-11 22:32:19 +09:00
Neil Booth 45f518e191 Improve Master Public Keys dialog
- Put the radio buttons inside the group box
- Share more code between the have-group-box and not cases
- Use ChoicesLayout
- Don't use cosigner terminology unless it's a Multisig wallet
2016-01-11 12:31:45 +09:00
Neil Booth 384b8cd5f2 Install wizard: simplify create_or_restore
- Use ChoiceLayout to organize the layouts
- Do wallet filtering in wizard.py as it's GUI independent.
- Only pass the descriptions.
2016-01-10 23:00:59 +09:00
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 9cf0a9720f QT handler improvements
Now we have the top_level_window() function, stop using the window
stack.
2016-01-10 13:24:56 +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
ThomasV 9ad4d63ad1 wizard: small tweaks, fix show_restore 2016-01-09 10:35:10 +01:00
Neil Booth 2377476207 Separate out new QT util ChoicesLayout
For future use elsewhere
2016-01-09 15:38:27 +09:00
Neil Booth 3e8598c245 Move trezor-specific install wizard code to plugin 2016-01-09 15:21:38 +09:00
Kefkius d29fd4d9d1
Use info message box for Pay-To-Many instructions 2016-01-08 05:00:15 -05:00
ThomasV 5915b9b7e1 restore action-driven wizard logic 2016-01-07 00:55:23 +01:00
Neil Booth 6fb7dbd30d Implement passphrase protection toggling.
Along with chicken box.
2016-01-06 23:08:02 +09:00
Neil Booth 9b29c6c2e6 Trezor: all four available device initializations
Trezor and KeepKey devices can now be initialized by:
- device-generated seed
- existing seed
- BIP39 mnemonic
- master private key
2016-01-06 22:18:56 +09: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
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
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 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 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 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 84b18e0949 qt: save last active window, not last opened window 2015-12-05 16:53:56 +01:00
ThomasV e9ee851bb2 fix: set auto_connect in installwizard 2015-12-03 23:50:50 +01: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 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
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 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 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 2a3c97813d wallet.get_max_amount method, used by qt and kivy 2015-10-30 14:10:41 +01:00
ThomasV bb7b0884e3 Various fixes for command line. Make 'payto' command require network (fixes #1525) 2015-10-29 11:06:09 +01:00
ThomasV 079cb311ec call wallet.wait_until_synchronized before commands 2015-10-29 05:01:06 +01:00
ThomasV db0a5f9b31 fix: missing import 2015-10-28 12:10:43 +01:00
ThomasV 5f09ba661a sanitize inputs in network dialog 2015-10-28 12:07:45 +01:00
ThomasV 052d8b236e fix #1494 2015-10-28 10:36:44 +01:00
Neil Booth 41820eec29 Get correct domain in address_dialog
Fixes #1509
Also clean up imports.
2015-10-28 10:55:04 +09:00
ThomasV 26682491b2 generic restore from command line 2015-10-27 14:33:41 +01:00
Neil Booth 97568bedf5 Default to unused address for privkey sweeps
Fixes #1506

- New function wallet.get_unused_addresses
- Have wallet.get_unused_address use it
- Use it for the sweep key dialog
2015-10-26 20:33:35 +09:00
Fredrick Brennan 939ed8fe40 Merge branch 'master' of https://github.com/spesmilo/electrum into uncopyable-seed 2015-10-19 13:29:15 +08:00
Fredrick Brennan 7685758360 Make it so uncopyable seed only affects wizard
Previously it also affected the menu item Wallet->Seed, which is not the
expected or desired behavior.
2015-10-19 13:27:15 +08:00
ThomasV f8e51e3323 remove themes, check python3 in setup.py 2015-10-18 12:43:20 +02:00
Fredrick Brennan 88ca99c624 Fix context menu when paranoid=False 2015-10-18 16:00:28 +08:00
Fredrick Brennan b14b5d3dd4 Make seed uncopyable
Other wallets, such as Mycelium, do not allow the user to simply copy
and paste the seed. This is very useful to assure users follow
directions on the next screen, because previously it was easily possible
to just copy the seed and paste it on the next screen. The user's wallet
would work well for a while like this, but without having the seed
written down it's more of a ticking time bomb than a wallet.

I recommend pulling this patch as I have read many cases where users do
not write the seed down, and I believe that the main cause is lack of
friction forcing them to do so.

This patch was inspired by reading this Reddit conversation:

https://www.reddit.com/r/Bitcoin/comments/3p4bq1/electrum_v25/cw380kg

But I'm not a participant in that convo.
2015-10-18 15:42:11 +08:00
ThomasV de92f1c98f fix #1488: add formerly deleted method 2015-10-17 20:53:33 +02:00
ThomasV 7a060e86b2 minor fix FX plugin 2015-10-17 12:46:05 +02:00
ThomasV da79f02fc3 rm version_getter 2015-10-17 12:10:28 +02:00
ThomasV 302ce7c15b simplify exchange_rate hooks 2015-10-17 06:26:37 +02:00
ThomasV dd679ccb27 bug report guidelines 2015-09-30 10:35:22 +02:00
ThomasV 242ee61ef4 restore previously deleted winpos-qt 2015-09-29 11:08:16 +02:00
Neil Booth 5071d75912 Clean up install wizard a little
Also fixes #1462
2015-09-26 17:19:42 +09:00
Neil Booth cf44e65ba8 Rework resizing of send and receive tabs
Should fix #1458
They now function in essentially the same way.
2015-09-26 12:14:35 +09:00
ThomasV f63bc61ec4 fix #1461 2015-09-25 17:23:54 +02:00
Joel Stanner 82a75f3949 Remove redundant "in"
For example, this avoids displaying "Request expires in [ in about 24 hours]"
2015-09-23 19:59:42 -07:00
Joel Stanner cdbee6f4c9 Expiration value typo bug 2015-09-23 19:56:20 -07:00
fireduck64 978dddad80 Make verbage from requests a little more clear 2015-09-22 12:53:50 -07:00
ThomasV 6cec75150c fix docs link 2015-09-19 18:49:12 +02:00
ThomasV 6117c58a59 update documentation hard link 2015-09-18 13:18:29 +02:00
ThomasV 7f7d73a4a9 helper function without decorator: sign_tx_with_password 2015-09-11 17:38:01 +02:00
ThomasV 483cf2286f format_amount_and_units: general method to display amounts and fiat values. fixes #1078 2015-09-11 16:46:37 +02:00
ThomasV 7c4b749340 single dialog for confirmation and password 2015-09-11 16:22:16 +02:00
Neil Booth c64e8b9885 Only write wallet if necessary 2015-09-10 17:57:50 +09:00
Neil Booth 886192aba7 Make trustedcoin.py multi-window compatible 2015-09-09 17:27:58 +09:00
Neil Booth 0371a3dc32 Don't refresh whilst editing!
It's long been a pet peeve of mine that whilst editing a label,
something would cause Electrum to refresh the widget, such as
an incoming tx or a new block, and you'd lose your edits.
This changes MyTreeWidget so that, if editing, updates are
deferred until editing finishes.
2015-09-09 09:36:35 +09:00
Neil Booth 544b829f6e Rework MyTreeWidget editing
Gets rid of need for EditableItem class.
New callback on_permit_edit to permit widgets to refuse editing.
Restores popup menu on activating a non-editable column behaviour.
2015-09-09 07:38:54 +09:00
ThomasV 533cdde366 right align numerical values in history widget 2015-09-08 12:09:22 +02:00
ThomasV f3b0d83782 rename 'gui' console variable to 'window' 2015-09-08 09:37:12 +02:00
Neil Booth 39615333c0 Attribute more diagnostic messages 2015-09-06 22:04:44 +09:00
Neil Booth 9b50d1e7bc Fix history headers on plugin load / unload 2015-09-06 21:14:36 +09:00
Neil Booth 93b964f11d Two fixes for main_window.py
- initialize r when getting status text
- fix so settings widgets appear and are enabled
  appropriately
2015-09-06 19:38:44 +09:00
Neil Booth 1d35954541 Fix status bar FX balance display 2015-09-06 14:16:54 +09:00
Neil Booth 34ce6d1821 Updates for exchange_rate plugin
Have AmountEdit return an int if is_int, otherwise a Decimal
Set the tray tooltip unconditionally.
More verbose logging for exchage_rate plugin.
Get rate_float from Coindesk as rate can have commas.
Plugin tracks windows itself, and doesn't create its own
members in the window objects.
Clean up the edit handling.
2015-09-06 13:42:40 +09:00
Neil Booth 9e0e54157e More improvements to exchange_rate plugin
Everything should now update correctly on incoming data from
the exchange server.
2015-09-05 22:47:01 +09:00
ThomasV 24cd18e193 cleanup unneeded array in history widget 2015-09-05 10:09:01 +02:00
ThomasV 1f215ae673 cleanup 2015-09-05 09:35:09 +02:00
ThomasV 015e274dab rework exchange_rate hooks 2015-09-05 09:11:48 +02:00
ThomasV 0ef7320d7d remove forgotten file from lite gui 2015-09-05 08:41:04 +02:00
Neil Booth 9da22000b6 More improvements to exchange_rate plugin
- better historical rate handling, including caching
- grabbing and scanning wallet transactions no longer needed
- fix autosize of fiat column
- more efficient
2015-09-05 14:05:37 +09:00
Neil Booth 317582e9a7 Permit menu editing of address list
Fixes recent addition to #1435
2015-09-04 22:02:22 +09:00
Neil Booth 46067da42f Fix thinko
Fixes #1441
2015-09-04 21:52:36 +09:00
Neil Booth 835bc4e4aa More cleanup now self.window is gone
No need for self.main_window in gui object.
No need for hooks "init_qt" and "close_main_window".
2015-09-04 18:29:52 +09:00
Neil Booth bbd50ba83c Remove all self.window references from plugins 2015-09-04 18:23:18 +09:00
Neil Booth 8e7bcfeeb9 Update email plugin for multiple windows. 2015-09-04 13:29:33 +09:00
Neil Booth 392335487b Add plugins variable to console 2015-09-04 10:27:28 +09:00
Neil Booth 77a029082a Improved new_window handling.
Remove new_window hook.
Plugin informed of all windows via events when first loaded.
init_qt no longer needed for exchange_rate plugin.
2015-09-04 10:20:52 +09:00
Neil Booth fcc452d7b0 Fix window closing
Only closing via the menu did it properly.  Closing a window via
the window manager didn't shut the window down at all, because
the code wasn't in the closeEvent handler.
2015-09-04 10:10:44 +09:00
Neil Booth 8ce2a95695 Have plugins object track the window set
No need for self.gui nor init_qt hook any more.  This makes
plugins more independent of window and gui types.
2015-09-04 09:26:35 +09:00
ThomasV 897a5d34ed share contacts and invoices objects between windows 2015-09-03 16:52:40 +02:00
Roman Zeyde a1586b2bb3 main_window: fix typo at do_process_from_text() 2015-09-03 12:36:23 +03:00