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.
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.
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 91349d109efix#1549.
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.