Fixed status of Slice now and Export G-Code buttons after object import

This commit is contained in:
Enrico Turri 2018-07-23 10:16:56 +02:00
parent 86caf83721
commit df36de0d35
8 changed files with 12 additions and 9 deletions

View file

@ -2102,7 +2102,8 @@ sub object_list_changed {
my $export_in_progress = $self->{export_gcode_output_file} || $self->{send_gcode_file}; my $export_in_progress = $self->{export_gcode_output_file} || $self->{send_gcode_file};
my $model_fits = $self->{canvas3D} ? Slic3r::GUI::_3DScene::check_volumes_outside_state($self->{canvas3D}, $self->{config}) : 1; my $model_fits = $self->{canvas3D} ? Slic3r::GUI::_3DScene::check_volumes_outside_state($self->{canvas3D}, $self->{config}) : 1;
my $method = ($have_objects && ! $export_in_progress && $model_fits) ? 'Enable' : 'Disable'; # $model_fits == 1 -> ModelInstance::PVS_Partly_Outside
my $method = ($have_objects && ! $export_in_progress && ($model_fits != 1)) ? 'Enable' : 'Disable';
$self->{"btn_$_"}->$method $self->{"btn_$_"}->$method
for grep $self->{"btn_$_"}, qw(reslice export_gcode print send_gcode); for grep $self->{"btn_$_"}, qw(reslice export_gcode print send_gcode);
} }

View file

@ -1651,7 +1651,7 @@ void _3DScene::update_volumes_selection(wxGLCanvas* canvas, const std::vector<in
s_canvas_mgr.update_volumes_selection(canvas, selections); s_canvas_mgr.update_volumes_selection(canvas, selections);
} }
bool _3DScene::check_volumes_outside_state(wxGLCanvas* canvas, const DynamicPrintConfig* config) int _3DScene::check_volumes_outside_state(wxGLCanvas* canvas, const DynamicPrintConfig* config)
{ {
return s_canvas_mgr.check_volumes_outside_state(canvas, config); return s_canvas_mgr.check_volumes_outside_state(canvas, config);
} }

View file

@ -460,7 +460,7 @@ public:
static void deselect_volumes(wxGLCanvas* canvas); static void deselect_volumes(wxGLCanvas* canvas);
static void select_volume(wxGLCanvas* canvas, unsigned int id); static void select_volume(wxGLCanvas* canvas, unsigned int id);
static void update_volumes_selection(wxGLCanvas* canvas, const std::vector<int>& selections); static void update_volumes_selection(wxGLCanvas* canvas, const std::vector<int>& selections);
static bool check_volumes_outside_state(wxGLCanvas* canvas, const DynamicPrintConfig* config); static int check_volumes_outside_state(wxGLCanvas* canvas, const DynamicPrintConfig* config);
static bool move_volume_up(wxGLCanvas* canvas, unsigned int id); static bool move_volume_up(wxGLCanvas* canvas, unsigned int id);
static bool move_volume_down(wxGLCanvas* canvas, unsigned int id); static bool move_volume_down(wxGLCanvas* canvas, unsigned int id);

View file

@ -1878,9 +1878,11 @@ void GLCanvas3D::update_volumes_selection(const std::vector<int>& selections)
} }
} }
bool GLCanvas3D::check_volumes_outside_state(const DynamicPrintConfig* config) const int GLCanvas3D::check_volumes_outside_state(const DynamicPrintConfig* config) const
{ {
return m_volumes.check_outside_state(config, nullptr); ModelInstance::EPrintVolumeState state;
m_volumes.check_outside_state(config, &state);
return (int)state;
} }
bool GLCanvas3D::move_volume_up(unsigned int id) bool GLCanvas3D::move_volume_up(unsigned int id)

View file

@ -495,7 +495,7 @@ public:
void deselect_volumes(); void deselect_volumes();
void select_volume(unsigned int id); void select_volume(unsigned int id);
void update_volumes_selection(const std::vector<int>& selections); void update_volumes_selection(const std::vector<int>& selections);
bool check_volumes_outside_state(const DynamicPrintConfig* config) const; int check_volumes_outside_state(const DynamicPrintConfig* config) const;
bool move_volume_up(unsigned int id); bool move_volume_up(unsigned int id);
bool move_volume_down(unsigned int id); bool move_volume_down(unsigned int id);

View file

@ -237,7 +237,7 @@ void GLCanvas3DManager::update_volumes_selection(wxGLCanvas* canvas, const std::
it->second->update_volumes_selection(selections); it->second->update_volumes_selection(selections);
} }
bool GLCanvas3DManager::check_volumes_outside_state(wxGLCanvas* canvas, const DynamicPrintConfig* config) const int GLCanvas3DManager::check_volumes_outside_state(wxGLCanvas* canvas, const DynamicPrintConfig* config) const
{ {
CanvasesMap::const_iterator it = _get_canvas(canvas); CanvasesMap::const_iterator it = _get_canvas(canvas);
return (it != m_canvases.end()) ? it->second->check_volumes_outside_state(config) : false; return (it != m_canvases.end()) ? it->second->check_volumes_outside_state(config) : false;

View file

@ -75,7 +75,7 @@ public:
void deselect_volumes(wxGLCanvas* canvas); void deselect_volumes(wxGLCanvas* canvas);
void select_volume(wxGLCanvas* canvas, unsigned int id); void select_volume(wxGLCanvas* canvas, unsigned int id);
void update_volumes_selection(wxGLCanvas* canvas, const std::vector<int>& selections); void update_volumes_selection(wxGLCanvas* canvas, const std::vector<int>& selections);
bool check_volumes_outside_state(wxGLCanvas* canvas, const DynamicPrintConfig* config) const; int check_volumes_outside_state(wxGLCanvas* canvas, const DynamicPrintConfig* config) const;
bool move_volume_up(wxGLCanvas* canvas, unsigned int id); bool move_volume_up(wxGLCanvas* canvas, unsigned int id);
bool move_volume_down(wxGLCanvas* canvas, unsigned int id); bool move_volume_down(wxGLCanvas* canvas, unsigned int id);

View file

@ -230,7 +230,7 @@ update_volumes_selection(canvas, selections)
CODE: CODE:
_3DScene::update_volumes_selection((wxGLCanvas*)wxPli_sv_2_object(aTHX_ canvas, "Wx::GLCanvas"), selections); _3DScene::update_volumes_selection((wxGLCanvas*)wxPli_sv_2_object(aTHX_ canvas, "Wx::GLCanvas"), selections);
bool int
check_volumes_outside_state(canvas, config) check_volumes_outside_state(canvas, config)
SV *canvas; SV *canvas;
DynamicPrintConfig *config; DynamicPrintConfig *config;