Fix UI problem where key interactions could be requests without any wallet being selected
This commit is contained in:
+23
-1
@@ -3,7 +3,7 @@
|
||||
%%% @end
|
||||
|
||||
-module(gd_gui).
|
||||
-vsn("0.6.5").
|
||||
-vsn("0.6.6").
|
||||
-author("Craig Everett <craigeverett@qpq.swiss>").
|
||||
-copyright("QPQ AG <info@qpq.swiss>").
|
||||
-license("GPL-3.0-or-later").
|
||||
@@ -147,6 +147,12 @@ init(Prefs) ->
|
||||
end,
|
||||
|
||||
Buttons = [WallW, ChainW, NodeW, DevW | lists:map(MakeButton, ButtonTemplates)],
|
||||
Disable =
|
||||
fun(Button) ->
|
||||
#w{wx = W} = lists:keyfind(Button, #w.name, Buttons),
|
||||
wxButton:disable(W)
|
||||
end,
|
||||
ok = lists:foreach(Disable, key_buttons()),
|
||||
|
||||
ChainSz = wxBoxSizer:new(?wxHORIZONTAL),
|
||||
AccountSz = wxBoxSizer:new(?wxHORIZONTAL),
|
||||
@@ -916,12 +922,28 @@ clear_account(State = #s{balance = {_, #w{wx = B}}, id = {_, #w{wx = I}}}) ->
|
||||
|
||||
do_wallet(none, #s{buttons = Buttons}) ->
|
||||
#w{wx = WalletB} = lists:keyfind(wallet, #w.name, Buttons),
|
||||
Disable =
|
||||
fun(Button) ->
|
||||
#w{wx = W} = lists:keyfind(Button, #w.name, Buttons),
|
||||
wxButton:disable(W)
|
||||
end,
|
||||
ok = lists:foreach(Disable, key_buttons()),
|
||||
ok = wxButton:setLabel(WalletB, "[no wallet]");
|
||||
do_wallet(Name, #s{buttons = Buttons}) ->
|
||||
#w{wx = WalletB} = lists:keyfind(wallet, #w.name, Buttons),
|
||||
Enable =
|
||||
fun(Button) ->
|
||||
#w{wx = W} = lists:keyfind(Button, #w.name, Buttons),
|
||||
wxButton:enable(W)
|
||||
end,
|
||||
ok = lists:foreach(Enable, key_buttons()),
|
||||
ok = wxButton:setLabel(WalletB, Name).
|
||||
|
||||
|
||||
key_buttons() ->
|
||||
[make_key, recover, mnemonic, rename, drop_key].
|
||||
|
||||
|
||||
do_chain(none, none, #s{buttons = Buttons}) ->
|
||||
#w{wx = ChainB} = lists:keyfind(chain, #w.name, Buttons),
|
||||
#w{wx = NodeB} = lists:keyfind(node, #w.name, Buttons),
|
||||
|
||||
Reference in New Issue
Block a user