From 22b94994bb502d426171862f5521093be42ae511 Mon Sep 17 00:00:00 2001 From: Craig Everett Date: Wed, 13 Nov 2024 13:19:45 +0900 Subject: [PATCH] Fix a few wallet switching crashes --- ebin/clutch.app | 2 +- src/clutch.erl | 2 +- src/gmc_con.erl | 8 ++++---- src/gmc_grids.erl | 2 +- src/gmc_gui.erl | 9 +++++++-- src/gmc_jt.erl | 2 +- src/gmc_key_master.erl | 2 +- src/gmc_sup.erl | 2 +- src/gmc_v.erl | 2 +- src/gmc_v_netman.erl | 2 +- src/gmc_v_wallman.erl | 7 ++++++- zomp.meta | 4 ++-- 12 files changed, 27 insertions(+), 17 deletions(-) diff --git a/ebin/clutch.app b/ebin/clutch.app index 7ca5678..7c2c554 100644 --- a/ebin/clutch.app +++ b/ebin/clutch.app @@ -3,7 +3,7 @@ {registered,[]}, {included_applications,[]}, {applications,[stdlib,kernel]}, - {vsn,"0.1.1"}, + {vsn,"0.1.2"}, {modules,[clutch,gmc_con,gmc_grids,gmc_gui,gmc_jt, gmc_key_master,gmc_sup,gmc_v,gmc_v_netman, gmc_v_wallman]}, diff --git a/src/clutch.erl b/src/clutch.erl index eccba9c..cb22b8a 100644 --- a/src/clutch.erl +++ b/src/clutch.erl @@ -3,7 +3,7 @@ %%% @end -module(clutch). --vsn("0.1.1"). +-vsn("0.1.2"). -behavior(application). -author("Craig Everett "). -copyright("QPQ AG "). diff --git a/src/gmc_con.erl b/src/gmc_con.erl index 30d914b..5e82258 100644 --- a/src/gmc_con.erl +++ b/src/gmc_con.erl @@ -5,7 +5,7 @@ %%% @end -module(gmc_con). --vsn("0.1.1"). +-vsn("0.1.2"). -author("Craig Everett "). -copyright("QPQ AG "). -license("GPL-3.0-or-later"). @@ -324,6 +324,8 @@ handle_cast({open_wallet, Path, Phrase}, State) -> {noreply, NewState}; handle_cast(close_wallet, State) -> NewState = do_close_wallet(State), + ok = gmc_gui:show([]), + ok = do_show_ui(gmc_v_wallman, NewState), {noreply, NewState}; handle_cast({new_wallet, Name, Path, Password}, State) -> NewState = do_new_wallet(Name, Path, Password, State), @@ -1050,9 +1052,7 @@ do_close_wallet(State = #s{wallet = Current, wallets = Wallets, pass = Pass}) -> #wallet{name = Name} = Current, RW = lists:keyfind(Name, #wr.name, Wallets), ok = save_wallet(RW, Pass, Current), - ok = gmc_gui:show([]), - ok = do_show_ui(gmc_v_wallman, State), - State#s{pass = false, wallet = none}. + State#s{pass = none, wallet = none}. save_wallet(#wr{path = Path, pass = false}, none, Wallet) -> diff --git a/src/gmc_grids.erl b/src/gmc_grids.erl index 7021b23..71d3031 100644 --- a/src/gmc_grids.erl +++ b/src/gmc_grids.erl @@ -37,7 +37,7 @@ %%% @end -module(gmc_grids). --vsn("0.1.1"). +-vsn("0.1.2"). -author("Craig Everett "). -copyright("QPQ AG "). -license("GPL-3.0-or-later"). diff --git a/src/gmc_gui.erl b/src/gmc_gui.erl index e608a81..f486ff2 100644 --- a/src/gmc_gui.erl +++ b/src/gmc_gui.erl @@ -7,7 +7,7 @@ %%% @end -module(gmc_gui). --vsn("0.1.1"). +-vsn("0.1.2"). -author("Craig Everett "). -copyright("QPQ AG "). -license("GPL-3.0-or-later"). @@ -869,7 +869,7 @@ do_show(Accounts, State = #s{sizer = Sizer, prefs = Prefs, picker = Picker}) -> NewState = case Accounts of [] -> - State; + clear_account(State); [_] -> Selected = 0, ok = wxListBox:setSelection(Picker, Selected), @@ -882,6 +882,11 @@ do_show(Accounts, State = #s{sizer = Sizer, prefs = Prefs, picker = Picker}) -> ok = wxSizer:layout(Sizer), NewState. +clear_account(State = #s{balance = {_, #w{wx = B}}, id = {_, #w{wx = I}}}) -> + ok = wxStaticText:setLabel(I, ""), + ok = wxStaticText:setLabel(B, ""), + State. + do_wallet(none, #s{buttons = Buttons}) -> #w{wx = WalletB} = lists:keyfind(wallet, #w.name, Buttons), diff --git a/src/gmc_jt.erl b/src/gmc_jt.erl index 3e34904..64c681e 100644 --- a/src/gmc_jt.erl +++ b/src/gmc_jt.erl @@ -15,7 +15,7 @@ %%% translation library is retained). -module(gmc_jt). --vsn("0.1.1"). +-vsn("0.1.2"). -export([read_translations/1, j/2, oneshot_j/2]). diff --git a/src/gmc_key_master.erl b/src/gmc_key_master.erl index fc1eac7..488cec7 100644 --- a/src/gmc_key_master.erl +++ b/src/gmc_key_master.erl @@ -8,7 +8,7 @@ %%% @end -module(gmc_key_master). --vsn("0.1.1"). +-vsn("0.1.2"). -export([make_key/2, encode/1, decode/1]). diff --git a/src/gmc_sup.erl b/src/gmc_sup.erl index d7039bf..91df466 100644 --- a/src/gmc_sup.erl +++ b/src/gmc_sup.erl @@ -12,7 +12,7 @@ %%% @end -module(gmc_sup). --vsn("0.1.1"). +-vsn("0.1.2"). -behaviour(supervisor). -author("Craig Everett "). -copyright("QPQ AG "). diff --git a/src/gmc_v.erl b/src/gmc_v.erl index 8a2b4e0..ad9caa3 100644 --- a/src/gmc_v.erl +++ b/src/gmc_v.erl @@ -1,5 +1,5 @@ -module(gmc_v). --vsn("0.1.1"). +-vsn("0.1.2"). -author("Craig Everett "). -copyright("QPQ AG "). -license("GPL-3.0-or-later"). diff --git a/src/gmc_v_netman.erl b/src/gmc_v_netman.erl index 50c7dcd..88f7d45 100644 --- a/src/gmc_v_netman.erl +++ b/src/gmc_v_netman.erl @@ -1,5 +1,5 @@ -module(gmc_v_netman). --vsn("0.1.1"). +-vsn("0.1.2"). -author("Craig Everett "). -copyright("QPQ AG "). -license("GPL-3.0-or-later"). diff --git a/src/gmc_v_wallman.erl b/src/gmc_v_wallman.erl index 479432c..0934ba3 100644 --- a/src/gmc_v_wallman.erl +++ b/src/gmc_v_wallman.erl @@ -1,5 +1,5 @@ -module(gmc_v_wallman). --vsn("0.1.1"). +-vsn("0.1.2"). -author("Craig Everett "). -copyright("QPQ AG "). -license("GPL-3.0-or-later"). @@ -245,6 +245,7 @@ do_open3(Path, State = #s{frame = Frame, j = J}) -> do_new(State = #s{frame = Frame, j = J, prefs = Prefs}) -> + tell("new_wallet ~p/~p ~p", [?FUNCTION_NAME, ?FUNCTION_ARITY, ?LINE]), DefaultDir = maps:get(dir, Prefs, zx_lib:path(var, "otpr", "clutch")), Options = [{message, J("Save Location")}, @@ -272,6 +273,7 @@ do_new(State = #s{frame = Frame, j = J, prefs = Prefs}) -> end. do_new2(Path, J, Frame) -> + tell("new_wallet ~p/~p ~p", [?FUNCTION_NAME, ?FUNCTION_ARITY, ?LINE]), Dialog = wxDialog:new(Frame, ?wxID_ANY, J("Set Node"), [{size, {400, 250}}]), Sizer = wxBoxSizer:new(?wxVERTICAL), @@ -306,6 +308,7 @@ do_new2(Path, J, Frame) -> Result = case wxDialog:showModal(Dialog) of ?wxID_OK -> + tell("new_wallet ~p/~p ~p", [?FUNCTION_NAME, ?FUNCTION_ARITY, ?LINE]), Name = case wxTextCtrl:getValue(NameTx) of "" -> Path; @@ -325,8 +328,10 @@ do_new2(Path, J, Frame) -> Result. do_new3(_, _, bad) -> + tell("new_wallet ~p/~p ~p", [?FUNCTION_NAME, ?FUNCTION_ARITY, ?LINE]), abort; do_new3(Name, Path, Pass) -> + tell("new_wallet ~p/~p ~p", [?FUNCTION_NAME, ?FUNCTION_ARITY, ?LINE]), gmc_con:new_wallet(Name, Path, Pass). diff --git a/zomp.meta b/zomp.meta index 91b0ef5..877aecb 100644 --- a/zomp.meta +++ b/zomp.meta @@ -2,9 +2,9 @@ {type,gui}. {modules,[]}. {prefix,"gmc"}. -{author,"Craig Everett"}. {desc,"A desktop client for the Gajumaru network of blockchain networks"}. -{package_id,{"otpr","clutch",{0,1,1}}}. +{author,"Craig Everett"}. +{package_id,{"otpr","clutch",{0,1,2}}}. {deps,[{"otpr","hakuzaru",{0,2,0}}, {"otpr","aesophia",{8,0,1}}, {"otpr","aeserialization",{0,1,2}},