diff options
author | Dan Gudmundsson <[email protected]> | 2014-01-08 14:47:11 +0100 |
---|---|---|
committer | Dan Gudmundsson <[email protected]> | 2014-01-27 16:13:57 +0100 |
commit | 61115ab061a21912743c62de19ad0eda57224545 (patch) | |
tree | abd1b4f8e0ee002674edeeb26d87167b9c877eb5 | |
parent | 9da4c7b4e41c325569d2576fa4c55568a1f1cfa2 (diff) | |
download | otp-61115ab061a21912743c62de19ad0eda57224545.tar.gz otp-61115ab061a21912743c62de19ad0eda57224545.tar.bz2 otp-61115ab061a21912743c62de19ad0eda57224545.zip |
observer: Fix progress dialog creation
Should not call showModal on a wxProgressdialog it is already display
(see doc) and it hangs on MacOSX until someone presses the menu.
-rw-r--r-- | lib/observer/src/observer_lib.erl | 34 | ||||
-rw-r--r-- | lib/observer/test/crashdump_viewer_SUITE.erl | 6 |
2 files changed, 14 insertions, 26 deletions
diff --git a/lib/observer/src/observer_lib.erl b/lib/observer/src/observer_lib.erl index 6288dd3a45..863ef8c2dc 100644 --- a/lib/observer/src/observer_lib.erl +++ b/lib/observer/src/observer_lib.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2011-2013. All Rights Reserved. +%% Copyright Ericsson AB 2011-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -730,31 +730,19 @@ progress_loop(Title,PD,Caller) -> unlink(Caller) end. -progress_dialog(Env,Title,Str) -> - %% Spawning separat process to hold this since we use showModal. - spawn_link( - fun() -> - wx:set_env(Env), - PD = wxProgressDialog:new(Title,Str, - [{maximum,101}, - {style, - ?wxPD_APP_MODAL bor - ?wxPD_SMOOTH bor - ?wxPD_AUTO_HIDE}]), - wxProgressDialog:setMinSize(PD,{200,-1}), - ?progress_handler ! {progress_dialog,PD}, - wxProgressDialog:showModal(PD), - wxDialog:destroy(PD) - end), - receive - {progress_dialog,PD} -> - timer:sleep(300), % To allow the window to show before reporting - PD - end. +progress_dialog(_Env,Title,Str) -> + PD = wxProgressDialog:new(Title,Str, + [{maximum,101}, + {style, + ?wxPD_APP_MODAL bor + ?wxPD_SMOOTH bor + ?wxPD_AUTO_HIDE}]), + wxProgressDialog:setMinSize(PD,{200,-1}), + PD. update_progress(PD,Value) -> wxProgressDialog:update(PD,Value). update_progress_text(PD,Text) -> wxProgressDialog:update(PD,0,[{newmsg,Text}]). finish_progress(PD) -> - wxProgressDialog:endModal(PD, ?wxID_OK). + wxProgressDialog:destroy(PD). diff --git a/lib/observer/test/crashdump_viewer_SUITE.erl b/lib/observer/test/crashdump_viewer_SUITE.erl index 3c8d1856b1..7a582436b4 100644 --- a/lib/observer/test/crashdump_viewer_SUITE.erl +++ b/lib/observer/test/crashdump_viewer_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2003-2013. All Rights Reserved. +%% Copyright Ericsson AB 2003-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -132,9 +132,9 @@ start_stop(Config) when is_list(Config) -> true = is_pid(whereis(cdv_atom_cb)), true = is_pid(whereis(cdv_dist_cb)), true = is_pid(whereis(cdv_mod_cb)), - timer:sleep(1000), % give some time to live + timer:sleep(5000), % give some time to live ok = crashdump_viewer:stop(), - timer:sleep(100), % give some time to stop + timer:sleep(1000), % give some time to stop undefined = whereis(crashdump_viewer_server), undefined = whereis(cdv_wx), ProcsAfter=length(processes()), |