Commit Graph

586 Commits

Author SHA1 Message Date
Neil Booth 3fbd81f8ab Improved dialog centring
Password requests from the tx dialog box are now centred on the
tx dialog.  Similarly for error messages if misentering the password.
Also, "Signing transaction..." and "Broadcasting transaction..." are
centred on the appropriate tx dialog.
Finally restore the old "Sign" button enabling / disabling, as we
can now tell if the user cancelled the password request.
2015-07-13 21:32:50 +09:00
Neil Booth b0ca9afc1e Improved password wrapper.
Doesn't require any particular argument order of the wrapped
function.
Caller can tell if the user cancelled the request or not.
Optionally handles parent window hints.
2015-07-13 21:31:39 +09:00
Neil Booth 9f665c9994 Use wrapper to drop an unwanted framework argument
QPushButton.clicked passes a "checked" argument to the action
callback.  We don't use or care for it, use a wrapper to drop it
and provide a uniform function signature for menu actions and button
actions.
2015-07-13 21:27:34 +09:00
ThomasV 60afddd595 gui tweaks 2015-07-12 15:06:57 +02:00
ThomasV 3722aeca45 rename method 2015-07-12 11:26:10 +02:00
ThomasV 546c0cc57b tweak settings dialog 2015-07-12 09:01:44 +02:00
ThomasV b3cd334046 show requestor as tooltip 2015-07-12 08:47:58 +02:00
ThomasV dff8f6b338 rework paymentrequest methods 2015-07-11 20:26:30 +02:00
ThomasV 35aba0c14b show alias satus in gui after fetch 2015-07-11 18:14:00 +02:00
ThomasV 2e6aa9067f email: better workflow 2015-07-11 13:57:15 +02:00
ThomasV eadca9f998 add info about alias providers 2015-07-11 13:05:38 +02:00
ThomasV 5562239c5e use daemon thread to fetch alias 2015-07-11 12:43:06 +02:00
ThomasV a95c4c6711 fetch alias on gui startup 2015-07-11 12:26:17 +02:00
ThomasV 37aef8332b add more help messages 2015-07-11 12:13:56 +02:00
ThomasV 411209d2af improve settings dialog 2015-07-11 11:57:10 +02:00
ThomasV cb2bc54f96 store and display signatures of own requests 2015-07-09 14:15:30 +02:00
ThomasV b9d270d438 add alias field to settings 2015-07-07 14:15:11 +02:00
ThomasV f3c4a55e77 add dnssec verification to payment requests 2015-07-07 08:59:03 +02:00
ThomasV d3104a17b7 Revert "Improved dialog centring"
This reverts commit d41dfa394b.
2015-07-05 20:37:57 +02:00
ThomasV bad9030554 Revert "Improved password wrapper."
This reverts commit c33175c312.
2015-07-05 17:56:55 +02:00
Neil Booth d41dfa394b Improved dialog centring
Password requests from the tx dialog box are now centred on the
tx dialog.  Similarly for error messages if misentering the password.
Also, "Signing transaction..." and "Broadcasting transaction..." are
centred on the appropriate tx dialog.
Finally restore the old "Sign" button enabling / disabling, as we
can now tell if the user cancelled the password request.
2015-07-04 18:25:44 +09:00
Neil Booth c33175c312 Improved password wrapper.
Doesn't require any particular argument order of the wrapped
function.
Caller can tell if the user cancelled the request or not.
Optionally handles parent window hints.
2015-07-04 18:15:26 +09:00
Neil Booth 15632adb40 Rename send_tx() to sign_tx()
Because it signs, and it doesn't send.
2015-07-04 16:45:08 +09:00
Neil Booth aa6de86c27 Once a user inputs a fee, retain it.
It has long been a minor annoyance that this isn't the
default behaviour.  Semantics are as follows:

- Fees are calculated automatically, as usual, and shown
  in black
- If the user inputs a fee, it is retained, and shown in
  blue to indicate it is user-overridden
- The user can switch back to automatic fee calculation mode
  in two ways: press Clear, or blank out the fee field
- User fees are also cleared by do_clear(), for instance when
  the payment is sent

I have checked all usage combinations I could think of, including
the ! case, and all work in a sensible and natural fashion.

This also fixes issue #995.
2015-07-03 20:14:12 +09:00
ThomasV 616becd9a8 move openalias from plugins to core 2015-07-02 12:44:53 +02:00
ThomasV 1919d5d63c fix wizard: remove vbox0, improve text 2015-06-28 08:52:16 +02:00
ThomasV 3a9bf8430e fix send button 2015-06-27 15:53:59 +02:00
ThomasV 56b3c98332 generic m of n multisig 2015-06-27 12:43:29 +02:00
Neil Booth 6c25f637b9 Wrapper func to create and show a TxDialog
Add prompt_if_unsaved as explicit argument.
Tested with cosigner pool plugin.
2015-06-27 10:56:01 +09:00
Neil Booth 56488daf04 Have show-before-broadcast defer password request
Show-before-send currently asks for the password
and creates a signed tx before showing anything.

This is a little unnerving as you can't see what
you're being asked to sign.

This patch does a few things:

- Adds a description label to the TX dialog
- You see the tx before being asked for password;
  that is only requested on pressing Sign
- in show-before-broadcast mode, the Send button
  text is instead "Show...".  Hook up this button
  text change to the prefs dialog too.
- Remove many redundant imports.  In particular
  PyQ4 is checked in main_window.py so no need
  in tx_dialog too.

Note I had to remove disabling of the Sign button,
because if the user presses "cancel" nothing will
re-enable it.
2015-06-25 15:58:40 +09:00
ThomasV 7e0a80b697 Merge pull request #1275 from kyuupichan/tx_dialog_send_tx
Have transaction_dialog use send_tx()
2015-06-24 11:15:30 +02:00
Neil Booth 175081d9fc View contact address on block explorer menu item
Resolves issue #1304
2015-06-21 09:57:38 +09:00
ThomasV 444082f90f Merge pull request #1291 from kyuupichan/server_height_zero
Show Synchronizing... when server height is zero
2015-06-12 10:32:43 +02:00
Neil Booth 304f7f273b Show Synchronizing... when server height is zero 2015-06-12 17:23:32 +09:00
Maran 9ef1f300f3 Fix Wizard on first run 2015-06-11 15:08:15 +02:00
ThomasV 2b769b10da bip70 export fixes 2015-06-11 12:38:17 +02:00
ThomasV 060e3aa23e plugins: call load_wallet in install wizard 2015-06-10 12:40:08 +02:00
ThomasV 8bccf7b2db replace httplib with requests 2015-06-10 08:29:50 +02:00
ThomasV f70a996619 fix trezor initialiation hook (pass window in load_wallet) 2015-06-09 09:58:40 +02:00
ThomasV 8995cdbf14 rename fields: 'time' -> 'timestamp', payment_requests 2015-06-08 13:36:35 +02:00
ThomasV 9bd94e5062 refactor payment requests 2015-06-08 12:51:45 +02:00
ThomasV 572a463806 reason->memo 2015-06-08 08:06:38 +02:00
Neil Booth 4b092628df Have transaction_dialog use send_tx()
This is working towards showing transactions before asking for passwords.
I think it also means the transaction dialog now interacts properly with
plugins, whereas it didn't before.

send_tx now takes a callback instead of a label, and does not decide
on whether to broadast itself; that is left to its caller.

broadcast_transaction() takes care of adding the description of the
successfully broadcast transaction to the wallet.  Previously labels
could be added to the wallet even if the broadcast was cancelled by
the user or unsuccessful, which doesn't seem right.

Lengthen the dialog messages a little, as some window managers lose the
"Please Wait" title bar owing to window decorations if the message
is too short.
2015-06-08 07:38:08 +09:00
ThomasV 48e53498db improve requests 2015-06-07 18:44:33 +02:00
ThomasV 5a4a9f5369 make txdialog a nonmodal widget 2015-06-07 16:51:27 +02:00
Maran de535be5fc Cast ByteArray to string. Fixes #1259 2015-06-03 16:09:07 +02:00
ThomasV 088d8e8415 show request status 2015-06-02 11:36:06 +02:00
ThomasV d41785c783 save payment requests in requests_dir 2015-06-02 09:18:39 +02:00
ThomasV 0938299e9b move payment requests logic to wallet, add basic commands 2015-06-01 13:02:09 +02:00
Neil Booth 03e53a5e01 Create a constant for 100000000 and use it
Use same name as is in bitcoind.
Note that one of the constants in text.py had the wrong number
of zeroes previously...
2015-06-01 14:53:36 +09:00
ThomasV bb7437e534 encapsulate variable in openalias plugin 2015-05-31 14:33:26 +02:00
ThomasV ee5f499fc1 use contacts in command line 2015-05-31 14:10:52 +02:00
ThomasV 5cd3bfedb6 always pass coins to wallet.make_unsigned_transactions. fix \! shortcut in commands 2015-05-31 11:31:41 +02:00
Neil Booth 320f9a3790 get_spendable_coins and frozen addrs
Two callers of get_spendable_coins were removing frozen addrs
before calling.  Put that functionality in the function.
We shouldn't be able to send_from a frozen address.  This was
possible in the current release because logic assumed a two-element
tuple was returned when it is now three-element.  Fix that too.

Command line options listunspent and createrawtransaction currently
ignore frozen addresses.  I'm not sure that's right but I've preserved
that behaviour.

With this patch only the wallet class refers to self.frozen_addresses;
other clients use is_frozen() now.
2015-05-31 14:07:50 +09:00
Neil Booth 0f29984f07 Speed up freezing and unfreezing of many addresses
Speedup mainly from writing to storage only once.
Make frozen_addresses a set in memory, as sets give cleaner
code and are more efficient.

Minor change in behaviour: command line freezing used to return
False if the address isn't in the wallet OR the address was already
frozen.  Now it returns more like a success code: it returns False
only if the address isn't in the wallet regardless of frozen state.
Similarly for unfreezing.
2015-05-31 11:54:21 +09:00
ThomasV a1a4fe8e92 fix Commands constructor 2015-05-30 18:55:32 +02:00
ThomasV a36ab7c814 Merge branch 'master' of git://github.com/spesmilo/electrum 2015-05-29 19:27:16 +02:00
ThomasV 2e67ca43e8 use csv instead of mkmanytx 2015-05-29 19:26:06 +02:00
Neil Booth d30955a7fa Two more fixes
Put fee_per_kb to zero rather than None when edit is blank
Changing the set of frozen addresses should update the fee
2015-05-29 17:38:05 +09:00
Neil Booth 05cb9975cb Fix calls to update_fee
Fees should be recalculated when send_from changes.
Fees should be recalculated when editing fee preference, but
only save to storage when leaving the fee per kb widget.
No need to emit a textEdited signal; the widget does that already
(with the effect that we used to call update_fee() twice).
2015-05-28 15:52:31 +09:00
ThomasV d0d1b41d63 fix #1251 2015-05-27 10:25:17 +02:00
ThomasV 778297697a lazy plugin constructor 2015-05-24 20:37:05 +02:00
ThomasV 48ad7c36a8 show plugin dependencies 2015-05-24 10:06:53 +02:00
ThomasV 8f98ea4aca make plugins available without the GUI 2015-05-23 10:38:19 +02:00
ThomasV cc17bb0090 close: use signal to close from gui thread 2015-05-20 09:15:52 +02:00
ThomasV 9bb44e4db3 change mouse cursor over qr code 2015-05-17 09:55:41 +02:00
ThomasV 59a9e4f710 fix new_wallet and seed language 2015-05-10 08:31:31 +02:00
ThomasV c2a4252065 do not pass config to storage. request height from network_proxy if connected 2015-05-08 10:58:54 +02:00
Neil Booth 79de458101 Preparation for moving the set of verified and unverified txs to the wallet.
The verifier will retain responsibility for verification, but will no longer
hold the transaction sets itself.

Change requires_fee to take a wallet.
Add new function add_unverified_tx()
Move get_confirmations() to the wallet from the verifier.
2015-05-07 09:21:08 +09:00
ThomasV 687cc7783f show unmatured coins in status bar. fixes #1163 2015-05-05 20:52:14 +02:00
Neil Booth 4d55cb9528 First of several incremental patches tightening up interface.py.
Remove some unneeded imports, a constant and a line of dead code.
Document the current external API interface.py provides.
2015-05-05 14:02:51 +09:00
ThomasV e4038dcdba move create_csr to gui 2015-05-02 16:26:27 +02:00
ThomasV 51b62c2983 strip transaction text before parsing 2015-05-02 14:40:47 +02:00
ThomasV c35cdf1fd8 rename ssl config variables 2015-04-30 17:33:29 +02:00
Neil Booth 1bafa42fbd Remove two redundant refreshes of history tab during startup.
The call to update_wallet() is redundant with earlier call to load_wallet().
Set the need_update boolean so the timer will refresh rather than
unconditionally refreshing.  This typically results in it merging with
the first network "updated" event resulting in one less refresh.

For me in online mode this results in history being calculated and shown
only twice during startup rather than four times.
2015-04-30 14:21:58 +09:00
ThomasV 8f84a90ab5 Merge pull request #1170 from kyuupichan/tray_tip_wallet
Tray tip wallet
2015-04-30 07:01:35 +02:00
Neil Booth db2517b901 Shrink size of changes; functionality unchanged. 2015-04-30 13:32:01 +09:00
Neil Booth 506ed8ee74 Merge branch 'master' into tray_tip_wallet 2015-04-30 13:28:13 +09:00
Neil Booth 737a0ce9d8 Avoid ugly flash of small window during startup.
Electrum 2.x flashes a small window during startup before the main window appears.
This turns out to be the fee edit box being enabled in create_send_tab().
Setting it to visible when the grid containing it is unparented causes QT to actually
display a window with just the edit box widget for some reason.  So defer the
call to set its visibility until the grid is parented.
2015-04-30 11:34:06 +09:00
ThomasV 953674aac7 resize columns to content by default 2015-04-29 09:26:22 +02:00
Neil Booth f56413d602 Put title() member func, with localization, in main_window.py 2015-04-28 21:12:25 +09:00
Neil Booth 889174ae19 Show wallet basename in tray tooltip for those of us using multiple wallets
Move basename (and title) logic to the wallet and use those member functions.
2015-04-28 19:32:56 +09:00
Neil Booth 72cf707e61 Filter on an array of columns. Make search string lower case too. 2015-04-27 08:37:03 +09:00
Neil Booth 329fd913e1 Merge branch 'master' of https://github.com/spesmilo/electrum 2015-04-26 22:14:57 +09:00
Neil Booth deec78a9d4 Clean up block explorer handling. Add menu item to go to block explorer for an address.
Block explorer code is data-driven now.
Put block explorer defaulting in one place.
Fix URLs for insight.is and blockr.io.
Add tradeblock.com explorer.
Add menu item to view address on block explorer provided only one is selected.
2015-04-26 22:02:21 +09:00
ThomasV b6c7a97d5f search invoices list by description 2015-04-26 14:31:27 +02:00
ThomasV f02b95c81a pay to many 2015-04-26 13:16:09 +02:00
ThomasV 9fbbef4d17 disable sorting of addresses 2015-04-24 06:42:12 +02:00
ThomasV de5c9c2f83 Merge pull request #1151 from romanz/master
Fix transaction broadcasting issues
2015-04-23 15:53:03 +02:00
ThomasV 9d54afa04f fix search: column number 2015-04-23 14:55:16 +02:00
ThomasV 77e902be63 add search box to incoices too 2015-04-23 13:55:52 +02:00
ThomasV 45081b1c8b search box 2015-04-23 13:50:35 +02:00
ThomasV 6fb9f2e241 smaller column 2015-04-23 12:53:29 +02:00
ThomasV 343d452706 sort contacts. fixes #920 2015-04-23 12:50:22 +02:00
ThomasV e8189490e9 store contacts in a separate file, shared between wallets 2015-04-23 12:16:46 +02:00
ThomasV 7f3fc232a0 minor fixes for receive tab 2015-04-23 09:32:50 +02:00
ThomasV 1b7cd02bce fix item selection bug 2015-04-23 09:11:55 +02:00
Roman Zeyde d3f696c301 main_window: call pr.get_id() before it's required 2015-04-23 09:17:46 +03:00
ThomasV 6cff7a284a store invoices as dict. rename domain -> requestor 2015-04-22 13:59:38 +02:00
ThomasV 74b0ed5f48 move get_status to InvoiceStore 2015-04-22 13:36:07 +02:00