Commit Graph

897 Commits

Author SHA1 Message Date
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
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 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 2a3c97813d wallet.get_max_amount method, used by qt and kivy 2015-10-30 14:10: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
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 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 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 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 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
ThomasV 5df03951e5 move window initialization hook inside class 2015-09-03 08:24:05 +02:00
Neil Booth 49797c3094 Create a Plugins class
Encapsulates plugin logic and removes global variable ugliness.
2015-09-03 12:02:03 +09:00
Neil Booth f2fb856f1c Exchange rate plugin fixes for multiple windows
This should be enough to keep everything working that was working
before.  The plugin itself needs a lot more work to fix existing
bugs and be sane.
2015-09-02 20:40:55 +09:00
ThomasV 280b5c79d2 minor fix 2015-09-02 12:11:52 +02:00
ThomasV bdb4d3ecb8 move methods calling installwizard to main gui class 2015-09-02 12:05:33 +02:00
ThomasV 4e458b5639 minor fix 2015-09-02 10:09:48 +02:00
ThomasV 0cb8c21130 use wallet path instead of config 2015-09-02 10:06:45 +02:00
ThomasV 3e4d332a4c strip spaces from txid dialog output 2015-09-02 09:15:34 +02:00
Neil Booth 0fa48b926c Fix system tray icon for multiple wallets
QT doesn't permit dynamic menus for QSystemTrayIcon for some reason
so we need to rebuild it each time the window set changes.
Add a close and hide/show submenu for each wallet.
Double click hides / shows all the wallets.
2015-09-02 11:48:03 +09:00
ThomasV ce06d92100 open each wallet in a separate window 2015-09-01 12:16:07 +02:00
ThomasV bbe64621ca close wallet when window is closed 2015-09-01 09:35:32 +02:00
ThomasV f84d873f62 rm unneeded import 2015-09-01 09:01:02 +02:00
ThomasV d4bba181c2 fix: show tabs in load_wallet 2015-09-01 01:18:02 +02:00
Neil Booth 2d05e7d891 Merge the network and network_proxy 2015-08-31 12:00:38 +09:00
ThomasV 92e0744470 Refactoring of daemon:
* gui and daemon are in the same process
 * commands that require network are sent to the daemon
 * open only one gui window per wallet
2015-08-30 11:31:51 +02:00
Neil Booth 32c1b9cd59 Handle openalias properly in contacts tab
- Filter out of block explorer URLs
- Make them uneditable
2015-08-29 21:55:17 +09:00
Neil Booth 62fe37a863 Permit multiselect in contacts tab
You can select multiple contacts, and still do all the actions
you could do on a single contact.  In particular, paying to them
all and removing them all.

This covers the first two bullet points of #1372.

Finally, make the new contact dialog box have a sensible width
that can display a full address without scrolling
2015-08-29 21:36:42 +09:00
Neil Booth 607664e663 Fix contact editing.
This fixes some bugs in contact editing:

- a changed address is now checked for validity. Shows
  error if invalid and restores prior value
- the changes are saved, before they were dropped
- adding a new contact switches to the contacts tab,
  it used to switch to the address tab

As an enhancement, the contact name, as well as its address,
can be edited and updated.

Finally, the platform edit key can also be used to edit,
in adition to double-clicking.  This is typically the F2 key.
2015-08-29 21:22:08 +09:00
Neil Booth 851db130ea Cleaner column editing in MyTreeWidget
Also enables arbitrary columns to be edited, but nothing
uses that yet.
2015-08-29 20:58:08 +09:00
ThomasV b7555240ef message reformatting 2015-08-27 08:24:49 +02:00
Neil Booth 68e57bbaa7 Don't let the "send from list" sort itself
Order matters for correspondence of display position to internal list.
Fixes #1420.
2015-08-27 11:01:49 +09:00
ThomasV aedfbd3855 start wizard from main_window. fixes #1250 2015-08-22 13:43:10 +02:00
ThomasV d895e5d132 load_wallet: don't hide and show gui unless we start the wizard 2015-08-22 09:27:33 +02:00
ThomasV 679f2fe2b1 add safety warning for watching only wallets 2015-08-21 07:58:50 +02:00
ThomasV 53b1ce2c50 restore 'save' menu. fixes #1407 2015-08-19 19:25:05 +02:00
ThomasV b2e2218556 fix: remove deprecated parameter 2015-08-19 18:33:49 +02:00
ThomasV bba9da91de rm debugging statement 2015-08-18 17:16:15 +02:00
ThomasV e9523f231b fix account renaming issues #1158 #1299 2015-08-17 12:49:04 +02:00
ThomasV 1b3f450267 fix #1401 2015-08-16 11:43:59 +02:00
ThomasV bfae04e6f0 Improved in network callbacks:
* Pass arguments
 * Don't redraw history when a tx is verified.
 * Fix new tx notifications.
2015-08-16 11:36:23 +02:00
ThomasV c5ee6bf57c emit signal for fiat_amount update 2015-08-15 13:39:11 +02:00
ThomasV 717a8a5ca7 perform fee computation as a timer action 2015-08-15 13:32:59 +02:00
ThomasV 8a3e5032b1 Merge pull request #1389 from romanz/master
remove unused code
2015-08-14 16:48:23 +02:00
ThomasV 1a9e768e31 fix dynamic fee slider behaviour in OSX 2015-08-13 15:19:34 +02:00
Roman Zeyde a3a01be8ce remove unused code 2015-08-09 19:02:04 +03:00
ThomasV 4b9a149987 recently visited wallets: increase shortcut index 2015-08-09 13:17:04 +02:00
ThomasV d0e2f0a5db tooltips 2015-08-07 19:44:50 +02:00
ThomasV 743d2721db fix: recently_open 2015-08-07 19:28:05 +02:00
ThomasV 464a89ddf5 improve recently_open menu 2015-08-07 19:24:43 +02:00
ThomasV b40f3571e8 tx window: do not always set prompt_if_unsaved 2015-08-07 18:59:50 +02:00
ThomasV c844d22a19 synchronous_get: return -> raise exception 2015-08-07 12:22:47 +02:00
ThomasV 77d7aa772d fix typo 2015-08-07 08:59:00 +02:00
ThomasV 714445aba8 fix: wallet.is_used 2015-08-06 19:19:25 +02:00
ThomasV ef83328042 fix insert parameter order 2015-08-06 16:57:57 +02:00
ThomasV 385110653b gui tweaks 2015-08-06 16:56:20 +02:00
ThomasV eef49a328a add recently open files to menu. fixes #1273 2015-08-06 16:27:49 +02:00
ThomasV 2515fc9b6a use blue color to denote auto-filled values (fee, exchange rates plugin) 2015-08-06 12:56:48 +02:00
ThomasV e18ddd0096 do not show plugins that register a custom wallet type in the plugins toggle dialog 2015-08-06 11:12:15 +02:00
ThomasV a9e74da11c check SSL certificate in config dialog 2015-08-05 20:49:45 +02:00
ThomasV 7b3e1dafd4 replace wallet.set_fee calls 2015-08-05 18:35:36 +02:00
ThomasV 252c73a06a fix issue #1387 2015-08-05 18:01:56 +02:00
ThomasV 43880d452e dynamic fees 2015-08-05 15:45:28 +02:00
ThomasV 959620db46 fix fee estimate bug; follow up to aa6de86 2015-08-05 15:20:29 +02:00
ThomasV 6ca9f148d4 fix config var names for ssl preferences 2015-08-04 18:48:38 +02:00
ThomasV 2ba07377da pr error: clear after showing error 2015-08-04 17:29:17 +02:00
ThomasV 0dc99a7a1f fix: reset payment_request in do_clear 2015-07-25 17:22:45 +02:00
ThomasV 508b5373ac minor fixes 2015-07-22 15:33:50 +02:00
ThomasV acbd434f76 cleanup request signing 2015-07-22 09:06:03 +02:00
ThomasV 878e3f80ad fix expiration date display 2015-07-21 16:35:16 +02:00
ThomasV e4ea07c168 better help msg 2015-07-21 13:23:16 +02:00
ThomasV 01d4118221 rm useless warning 2015-07-21 13:09:34 +02:00
ThomasV a6c65b8997 change internal format of requests 2015-07-21 12:26:37 +02:00
ThomasV 2c1fb1e37c do not raise exception if uri has an unknown key 2015-07-21 11:54:45 +02:00
ThomasV e77f0c98e7 extend bitcoin: URI with signature data, instead of serialized format 2015-07-21 11:40:55 +02:00
ThomasV 1e668209dc improve signed URI window 2015-07-19 10:54:45 +02:00
ThomasV 9c30ad3dd5 extend bitcoin URIs with signed payment requests passed directly 2015-07-18 18:42:56 +02:00
ThomasV 47d86d12be add ssl_cert path to preferences 2015-07-18 11:45:29 +02:00
ThomasV e444ff3519 catch invalid password exception 2015-07-16 10:03:07 +02:00
ThomasV 17948fb781 fix 1360 2015-07-15 13:54:29 +02:00
ThomasV 471cab6089 do not base64encode signatures in requests 2015-07-14 16:37:04 +02:00
ThomasV 7588519e8e improve payreq signing message 2015-07-14 16:03:42 +02:00
ThomasV 5c4717b53c use signal disconnect instead of boolean 2015-07-13 22:59:02 +02:00
ThomasV eb3442ab47 use date_str in invoices list 2015-07-13 21:31:12 +02:00
ThomasV 6fa7f57f10 express expiration dates in natural language 2015-07-13 20:47:11 +02:00
ThomasV 0fad7cd5e1 do not show openalias field in red if no alias is defined 2015-07-13 19:35:27 +02:00
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