Commit graph

138 commits

Author SHA1 Message Date
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
83cc5e2001 Fix top level window issue on Mac
Better, more generic fix superseding prior two patches.
2016-01-10 12:56:12 +09: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
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
0ecf2565ce MessageBoxMixin-related cleanup 2015-12-23 20:05:09 +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
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
2226667437 QT: Stop timer cleanly to avoid exceptions on exit 2015-12-20 16:15:33 +09:00
ThomasV
84b18e0949 qt: save last active window, not last opened window 2015-12-05 16:53:56 +01:00
ThomasV
19533dda15 load wallet in ElectrumWindow constructor 2015-11-24 12:10:43 +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
ThomasV
77d6ee74f9 revert PR #1492. clear clipboard instead 2015-10-31 11:48:37 +01:00
Neil Booth
5071d75912 Clean up install wizard a little
Also fixes #1462
2015-09-26 17:19:42 +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
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
ThomasV
2a889d318b fix: make uri optional in new_window 2015-09-03 11:27:33 +02:00
ThomasV
3cc7c1454b move back URI rewriting to main electrum script 2015-09-03 11:18:35 +02:00
Neil Booth
87cff8e380 Check URI in "electrum" because of ambiguity 2015-09-03 18:07:15 +09:00
Neil Booth
27917af2bf Get URIs working properly for multiple windows 2015-09-03 17:52:41 +09:00
Neil Booth
14cc260092 Remove redundant config argument.
Also don't default path for clarity.
2015-09-03 16:40:48 +09: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
bdb4d3ecb8 move methods calling installwizard to main gui class 2015-09-02 12:05:33 +02:00
ThomasV
0cb8c21130 use wallet path instead of config 2015-09-02 10:06:45 +02:00
Neil Booth
3ac99af7c6 Remove unused variable 2015-09-02 17:00:33 +09:00
ThomasV
93c468504e use the parent config instance when daemon starts a window 2015-09-02 09:55:45 +02:00
Neil Booth
90316d0459 Clean up imports, 2nd attempt 2015-09-02 12:06:11 +09: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
c33b223cbe Merge branch 'master' of git://github.com/spesmilo/electrum 2015-09-01 12:16:16 +02:00
ThomasV
ce06d92100 open each wallet in a separate window 2015-09-01 12:16:07 +02:00
Neil Booth
2b7a555f0f Unminimize and raise an existing window
if its wallet is requested.
2015-09-01 19:14:25 +09:00
ThomasV
bbe64621ca close wallet when window is closed 2015-09-01 09:35:32 +02: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
ThomasV
aedfbd3855 start wizard from main_window. fixes #1250 2015-08-22 13:43:10 +02:00
ThomasV
e77f0c98e7 extend bitcoin: URI with signature data, instead of serialized format 2015-07-21 11:40:55 +02:00
ThomasV
060e3aa23e plugins: call load_wallet in install wizard 2015-06-10 12:40:08 +02:00
ThomasV
f70a996619 fix trezor initialiation hook (pass window in load_wallet) 2015-06-09 09:58:40 +02:00
ThomasV
d5f6651237 follow up e20dfcd3eb 2015-05-25 08:47:25 +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
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
7a7ad7fe2d call go_lite after load_wallet 2015-04-23 17:18:38 +02:00
ThomasV
8251c5b6d9 fix #1057 2015-04-20 10:33:32 +02:00
ThomasV
21b2fcbe85 always_hook. fix trezor handler. fixes #1146 2015-04-18 14:59:46 +02:00
ThomasV
7e6bd2eb8c give user the option to remove incomplete wallet 2015-04-03 13:10:43 +02:00