Fixed crash-bug when close application after language changing
This commit is contained in:
parent
bfe7896709
commit
c10e9a6840
3 changed files with 13 additions and 0 deletions
|
@ -56,6 +56,7 @@
|
||||||
|
|
||||||
#include "../Utils/PresetUpdater.hpp"
|
#include "../Utils/PresetUpdater.hpp"
|
||||||
#include "../Config/Snapshot.hpp"
|
#include "../Config/Snapshot.hpp"
|
||||||
|
#include "3DScene.hpp"
|
||||||
|
|
||||||
|
|
||||||
namespace Slic3r { namespace GUI {
|
namespace Slic3r { namespace GUI {
|
||||||
|
@ -109,6 +110,7 @@ wxNotebook *g_wxTabPanel = nullptr;
|
||||||
AppConfig *g_AppConfig = nullptr;
|
AppConfig *g_AppConfig = nullptr;
|
||||||
PresetBundle *g_PresetBundle= nullptr;
|
PresetBundle *g_PresetBundle= nullptr;
|
||||||
PresetUpdater *g_PresetUpdater = nullptr;
|
PresetUpdater *g_PresetUpdater = nullptr;
|
||||||
|
_3DScene *g_3DScene = nullptr;
|
||||||
wxColour g_color_label_modified;
|
wxColour g_color_label_modified;
|
||||||
wxColour g_color_label_sys;
|
wxColour g_color_label_sys;
|
||||||
wxColour g_color_label_default;
|
wxColour g_color_label_default;
|
||||||
|
@ -194,6 +196,11 @@ void set_preset_updater(PresetUpdater *updater)
|
||||||
g_PresetUpdater = updater;
|
g_PresetUpdater = updater;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void set_3DScene(_3DScene *scene)
|
||||||
|
{
|
||||||
|
g_3DScene = scene;
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<Tab *>& get_tabs_list()
|
std::vector<Tab *>& get_tabs_list()
|
||||||
{
|
{
|
||||||
return g_tabs_list;
|
return g_tabs_list;
|
||||||
|
@ -392,6 +399,7 @@ void add_config_menu(wxMenuBar *menu, int event_preferences_changed, int event_l
|
||||||
save_language();
|
save_language();
|
||||||
show_info(g_wxTabPanel, _(L("Application will be restarted")), _(L("Attention!")));
|
show_info(g_wxTabPanel, _(L("Application will be restarted")), _(L("Attention!")));
|
||||||
if (event_language_change > 0) {
|
if (event_language_change > 0) {
|
||||||
|
g_3DScene->remove_all_canvases();// remove all canvas before recreate GUI
|
||||||
wxCommandEvent event(event_language_change);
|
wxCommandEvent event(event_language_change);
|
||||||
g_wxApp->ProcessEvent(event);
|
g_wxApp->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,7 @@ class AppConfig;
|
||||||
class PresetUpdater;
|
class PresetUpdater;
|
||||||
class DynamicPrintConfig;
|
class DynamicPrintConfig;
|
||||||
class TabIface;
|
class TabIface;
|
||||||
|
class _3DScene;
|
||||||
|
|
||||||
#define _(s) Slic3r::translate((s))
|
#define _(s) Slic3r::translate((s))
|
||||||
inline wxString translate(const char *s) { return wxGetTranslation(wxString(s, wxConvUTF8)); }
|
inline wxString translate(const char *s) { return wxGetTranslation(wxString(s, wxConvUTF8)); }
|
||||||
|
@ -87,6 +88,7 @@ void set_tab_panel(wxNotebook *tab_panel);
|
||||||
void set_app_config(AppConfig *app_config);
|
void set_app_config(AppConfig *app_config);
|
||||||
void set_preset_bundle(PresetBundle *preset_bundle);
|
void set_preset_bundle(PresetBundle *preset_bundle);
|
||||||
void set_preset_updater(PresetUpdater *updater);
|
void set_preset_updater(PresetUpdater *updater);
|
||||||
|
void set_3DScene(_3DScene *scene);
|
||||||
|
|
||||||
AppConfig* get_app_config();
|
AppConfig* get_app_config();
|
||||||
wxApp* get_app();
|
wxApp* get_app();
|
||||||
|
|
|
@ -101,3 +101,6 @@ void desktop_open_datadir_folder()
|
||||||
|
|
||||||
void fix_model_by_win10_sdk_gui(ModelObject *model_object_src, Print *print, Model *model_dst)
|
void fix_model_by_win10_sdk_gui(ModelObject *model_object_src, Print *print, Model *model_dst)
|
||||||
%code%{ Slic3r::fix_model_by_win10_sdk_gui(*model_object_src, *print, *model_dst); %};
|
%code%{ Slic3r::fix_model_by_win10_sdk_gui(*model_object_src, *print, *model_dst); %};
|
||||||
|
|
||||||
|
void set_3DScene(SV *scene)
|
||||||
|
%code%{ Slic3r::GUI::set_3DScene((_3DScene *)wxPli_sv_2_object(aTHX_ scene, "Slic3r::Model::3DScene") ); %};
|
||||||
|
|
Loading…
Reference in a new issue