mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-08 15:37:30 -06:00
FIX: can not save project when modify bed type in the scene
Change-Id: Iaea1bef142edcf0c68a64cfa1f3b1d309b96f251
This commit is contained in:
parent
8183b7d333
commit
e70253cf25
4 changed files with 12 additions and 2 deletions
|
@ -1775,6 +1775,7 @@ struct Plater::priv
|
||||||
bool need_update() const { return m_need_update; }
|
bool need_update() const { return m_need_update; }
|
||||||
void set_need_update(bool need_update) { m_need_update = need_update; }
|
void set_need_update(bool need_update) { m_need_update = need_update; }
|
||||||
|
|
||||||
|
void set_plater_dirty(bool is_dirty) { dirty_state.set_plater_dirty(is_dirty); }
|
||||||
bool is_project_dirty() const { return dirty_state.is_dirty(); }
|
bool is_project_dirty() const { return dirty_state.is_dirty(); }
|
||||||
bool is_presets_dirty() const { return dirty_state.is_presets_dirty(); }
|
bool is_presets_dirty() const { return dirty_state.is_presets_dirty(); }
|
||||||
void update_project_dirty_from_presets()
|
void update_project_dirty_from_presets()
|
||||||
|
@ -7387,6 +7388,7 @@ bool Plater::Show(bool show)
|
||||||
|
|
||||||
bool Plater::is_project_dirty() const { return p->is_project_dirty(); }
|
bool Plater::is_project_dirty() const { return p->is_project_dirty(); }
|
||||||
bool Plater::is_presets_dirty() const { return p->is_presets_dirty(); }
|
bool Plater::is_presets_dirty() const { return p->is_presets_dirty(); }
|
||||||
|
void Plater::set_plater_dirty(bool is_dirty) { p->set_plater_dirty(is_dirty); }
|
||||||
void Plater::update_project_dirty_from_presets() { p->update_project_dirty_from_presets(); }
|
void Plater::update_project_dirty_from_presets() { p->update_project_dirty_from_presets(); }
|
||||||
int Plater::save_project_if_dirty(const wxString& reason) { return p->save_project_if_dirty(reason); }
|
int Plater::save_project_if_dirty(const wxString& reason) { return p->save_project_if_dirty(reason); }
|
||||||
void Plater::reset_project_dirty_after_save() { p->reset_project_dirty_after_save(); }
|
void Plater::reset_project_dirty_after_save() { p->reset_project_dirty_after_save(); }
|
||||||
|
@ -10964,8 +10966,13 @@ int Plater::select_plate_by_hover_id(int hover_id, bool right_click)
|
||||||
PartPlate* curr_plate = p->partplate_list.get_curr_plate();
|
PartPlate* curr_plate = p->partplate_list.get_curr_plate();
|
||||||
dlg.sync_bed_type(curr_plate->get_bed_type(false));
|
dlg.sync_bed_type(curr_plate->get_bed_type(false));
|
||||||
dlg.Bind(EVT_SET_BED_TYPE_CONFIRM, [this, plate_index](wxCommandEvent& e) {
|
dlg.Bind(EVT_SET_BED_TYPE_CONFIRM, [this, plate_index](wxCommandEvent& e) {
|
||||||
|
PartPlate *curr_plate = p->partplate_list.get_curr_plate();
|
||||||
|
BedType old_bed_type = curr_plate->get_bed_type(false);
|
||||||
auto type = (BedType)(e.GetInt());
|
auto type = (BedType)(e.GetInt());
|
||||||
p->partplate_list.get_curr_plate()->set_bed_type(type);
|
if (old_bed_type != type) {
|
||||||
|
curr_plate->set_bed_type(type);
|
||||||
|
set_plater_dirty(true);
|
||||||
|
}
|
||||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("select bed type %1% for plate %2% at plate side")%type %plate_index;
|
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("select bed type %1% for plate %2% at plate side")%type %plate_index;
|
||||||
});
|
});
|
||||||
dlg.ShowModal();
|
dlg.ShowModal();
|
||||||
|
|
|
@ -187,6 +187,7 @@ public:
|
||||||
|
|
||||||
bool is_project_dirty() const;
|
bool is_project_dirty() const;
|
||||||
bool is_presets_dirty() const;
|
bool is_presets_dirty() const;
|
||||||
|
void set_plater_dirty(bool is_dirty);
|
||||||
void update_project_dirty_from_presets();
|
void update_project_dirty_from_presets();
|
||||||
int save_project_if_dirty(const wxString& reason);
|
int save_project_if_dirty(const wxString& reason);
|
||||||
void reset_project_dirty_after_save();
|
void reset_project_dirty_after_save();
|
||||||
|
|
|
@ -17,6 +17,7 @@ namespace GUI {
|
||||||
|
|
||||||
void ProjectDirtyStateManager::update_from_undo_redo_stack(bool dirty)
|
void ProjectDirtyStateManager::update_from_undo_redo_stack(bool dirty)
|
||||||
{
|
{
|
||||||
|
if (!m_plater_dirty)
|
||||||
m_plater_dirty = dirty;
|
m_plater_dirty = dirty;
|
||||||
if (const Plater *plater = wxGetApp().plater(); plater && wxGetApp().initialized())
|
if (const Plater *plater = wxGetApp().plater(); plater && wxGetApp().initialized())
|
||||||
wxGetApp().mainframe->update_title();
|
wxGetApp().mainframe->update_title();
|
||||||
|
|
|
@ -14,6 +14,7 @@ public:
|
||||||
void reset_after_save();
|
void reset_after_save();
|
||||||
void reset_initial_presets();
|
void reset_initial_presets();
|
||||||
|
|
||||||
|
void set_plater_dirty(bool is_dirty) { m_plater_dirty = is_dirty; }
|
||||||
bool is_dirty() const { return m_plater_dirty || m_project_config_dirty || m_presets_dirty; }
|
bool is_dirty() const { return m_plater_dirty || m_project_config_dirty || m_presets_dirty; }
|
||||||
bool is_presets_dirty() const { return m_presets_dirty; }
|
bool is_presets_dirty() const { return m_presets_dirty; }
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue