mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-07-11 01:01:48 +08:00
Suppress to delete object from 3D-Scene, when ObjectList is in Editing mode
This commit is contained in:
parent
b3183cb277
commit
252f9302ef
@ -216,9 +216,7 @@ ObjectList::ObjectList(wxWindow* parent) :
|
|||||||
Bind(wxEVT_DATAVIEW_ITEM_DROP_POSSIBLE, &ObjectList::OnDropPossible, this);
|
Bind(wxEVT_DATAVIEW_ITEM_DROP_POSSIBLE, &ObjectList::OnDropPossible, this);
|
||||||
Bind(wxEVT_DATAVIEW_ITEM_DROP, &ObjectList::OnDrop, this);
|
Bind(wxEVT_DATAVIEW_ITEM_DROP, &ObjectList::OnDrop, this);
|
||||||
|
|
||||||
#ifdef __WXMSW__
|
|
||||||
Bind(wxEVT_DATAVIEW_ITEM_EDITING_STARTED, &ObjectList::OnEditingStarted, this);
|
Bind(wxEVT_DATAVIEW_ITEM_EDITING_STARTED, &ObjectList::OnEditingStarted, this);
|
||||||
#endif /* __WXMSW__ */
|
|
||||||
Bind(wxEVT_DATAVIEW_ITEM_EDITING_DONE, &ObjectList::OnEditingDone, this);
|
Bind(wxEVT_DATAVIEW_ITEM_EDITING_DONE, &ObjectList::OnEditingDone, this);
|
||||||
|
|
||||||
Bind(wxEVT_DATAVIEW_ITEM_VALUE_CHANGED, &ObjectList::ItemValueChanged, this);
|
Bind(wxEVT_DATAVIEW_ITEM_VALUE_CHANGED, &ObjectList::ItemValueChanged, this);
|
||||||
@ -4621,17 +4619,19 @@ void ObjectList::ItemValueChanged(wxDataViewEvent &event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ObjectList::OnEditingStarted(wxDataViewEvent &event)
|
||||||
|
{
|
||||||
|
m_is_editing_started = true;
|
||||||
#ifdef __WXMSW__
|
#ifdef __WXMSW__
|
||||||
// Workaround for entering the column editing mode on Windows. Simulate keyboard enter when another column of the active line is selected.
|
// Workaround for entering the column editing mode on Windows. Simulate keyboard enter when another column of the active line is selected.
|
||||||
// Here the last active column is forgotten, so when leaving the editing mode, the next mouse click will not enter the editing mode of the newly selected column.
|
// Here the last active column is forgotten, so when leaving the editing mode, the next mouse click will not enter the editing mode of the newly selected column.
|
||||||
void ObjectList::OnEditingStarted(wxDataViewEvent &event)
|
|
||||||
{
|
|
||||||
m_last_selected_column = -1;
|
m_last_selected_column = -1;
|
||||||
}
|
|
||||||
#endif //__WXMSW__
|
#endif //__WXMSW__
|
||||||
|
}
|
||||||
|
|
||||||
void ObjectList::OnEditingDone(wxDataViewEvent &event)
|
void ObjectList::OnEditingDone(wxDataViewEvent &event)
|
||||||
{
|
{
|
||||||
|
m_is_editing_started = false;
|
||||||
if (event.GetColumn() != colName)
|
if (event.GetColumn() != colName)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -175,6 +175,7 @@ private:
|
|||||||
// Workaround for entering the column editing mode on Windows. Simulate keyboard enter when another column of the active line is selected.
|
// Workaround for entering the column editing mode on Windows. Simulate keyboard enter when another column of the active line is selected.
|
||||||
int m_last_selected_column = -1;
|
int m_last_selected_column = -1;
|
||||||
#endif /* __MSW__ */
|
#endif /* __MSW__ */
|
||||||
|
bool m_is_editing_started{ false };
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
SettingsFactory::Bundle m_freq_settings_fff;
|
SettingsFactory::Bundle m_freq_settings_fff;
|
||||||
@ -404,6 +405,8 @@ public:
|
|||||||
void apply_volumes_order();
|
void apply_volumes_order();
|
||||||
bool has_paint_on_segmentation();
|
bool has_paint_on_segmentation();
|
||||||
|
|
||||||
|
bool is_editing() const { return m_is_editing_started; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
#ifdef __WXOSX__
|
#ifdef __WXOSX__
|
||||||
// void OnChar(wxKeyEvent& event);
|
// void OnChar(wxKeyEvent& event);
|
||||||
@ -417,10 +420,8 @@ private:
|
|||||||
bool can_drop(const wxDataViewItem& item) const ;
|
bool can_drop(const wxDataViewItem& item) const ;
|
||||||
|
|
||||||
void ItemValueChanged(wxDataViewEvent &event);
|
void ItemValueChanged(wxDataViewEvent &event);
|
||||||
#ifdef __WXMSW__
|
|
||||||
// Workaround for entering the column editing mode on Windows. Simulate keyboard enter when another column of the active line is selected.
|
// Workaround for entering the column editing mode on Windows. Simulate keyboard enter when another column of the active line is selected.
|
||||||
void OnEditingStarted(wxDataViewEvent &event);
|
void OnEditingStarted(wxDataViewEvent &event);
|
||||||
#endif /* __WXMSW__ */
|
|
||||||
void OnEditingDone(wxDataViewEvent &event);
|
void OnEditingDone(wxDataViewEvent &event);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4880,12 +4880,12 @@ void Plater::priv::set_bed_shape(const Pointfs& shape, const double max_print_he
|
|||||||
|
|
||||||
bool Plater::priv::can_delete() const
|
bool Plater::priv::can_delete() const
|
||||||
{
|
{
|
||||||
return !get_selection().is_empty() && !get_selection().is_wipe_tower();
|
return !get_selection().is_empty() && !get_selection().is_wipe_tower() && !sidebar->obj_list()->is_editing();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Plater::priv::can_delete_all() const
|
bool Plater::priv::can_delete_all() const
|
||||||
{
|
{
|
||||||
return !model.objects.empty();
|
return !model.objects.empty() && !sidebar->obj_list()->is_editing();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Plater::priv::can_fix_through_netfabb() const
|
bool Plater::priv::can_fix_through_netfabb() const
|
||||||
|
Loading…
x
Reference in New Issue
Block a user