mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-05-09 07:19:08 +08:00
ObjectList: first column editing
This commit is contained in:
parent
f60a767ed9
commit
e1e4bf74ba
@ -337,9 +337,7 @@ void ObjectList::selection_changed()
|
|||||||
|
|
||||||
void ObjectList::OnChar(wxKeyEvent& event)
|
void ObjectList::OnChar(wxKeyEvent& event)
|
||||||
{
|
{
|
||||||
// printf("KeyDown event\n");
|
|
||||||
if (event.GetKeyCode() == WXK_BACK){
|
if (event.GetKeyCode() == WXK_BACK){
|
||||||
printf("WXK_BACK\n");
|
|
||||||
remove();
|
remove();
|
||||||
}
|
}
|
||||||
else if (wxGetKeyState(wxKeyCode('A')) && wxGetKeyState(WXK_SHIFT))
|
else if (wxGetKeyState(wxKeyCode('A')) && wxGetKeyState(WXK_SHIFT))
|
||||||
@ -370,15 +368,14 @@ void ObjectList::OnContextMenu(wxDataViewEvent&)
|
|||||||
|
|
||||||
if (title == " ")
|
if (title == " ")
|
||||||
show_context_menu();
|
show_context_menu();
|
||||||
|
else if (title == _("Name") && pt.x >15 &&
|
||||||
else if (title == _("Name") && pt.x >15 &&
|
m_objects_model->GetBitmap(item).GetRefData() == m_bmp_manifold_warning.GetRefData())
|
||||||
m_objects_model->GetBitmap(item).GetRefData() == m_bmp_manifold_warning.GetRefData())
|
{
|
||||||
{
|
if (is_windows10()) {
|
||||||
if (is_windows10()) {
|
const auto obj_idx = m_objects_model->GetIdByItem(m_objects_model->GetTopParent(item));
|
||||||
const auto obj_idx = m_objects_model->GetIdByItem(m_objects_model->GetTopParent(item));
|
wxGetApp().plater()->fix_through_netfabb(obj_idx);
|
||||||
wxGetApp().plater()->fix_through_netfabb(obj_idx);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#ifndef __WXMSW__
|
#ifndef __WXMSW__
|
||||||
GetMainWindow()->SetToolTip(""); // hide tooltip
|
GetMainWindow()->SetToolTip(""); // hide tooltip
|
||||||
#endif //__WXMSW__
|
#endif //__WXMSW__
|
||||||
|
@ -1281,6 +1281,42 @@ wxSize PrusaBitmapTextRenderer::GetSize() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
wxWindow* PrusaBitmapTextRenderer::CreateEditorCtrl(wxWindow* parent, wxRect labelRect, const wxVariant& value)
|
||||||
|
{
|
||||||
|
wxDataViewCtrl* const dv_ctrl = GetOwner()->GetOwner();
|
||||||
|
PrusaObjectDataViewModel* const model = dynamic_cast<PrusaObjectDataViewModel*>(dv_ctrl->GetModel());
|
||||||
|
|
||||||
|
if ( !(model->GetItemType(dv_ctrl->GetSelection()) & (itVolume | itObject)) )
|
||||||
|
return nullptr;
|
||||||
|
|
||||||
|
PrusaDataViewBitmapText data;
|
||||||
|
data << value;
|
||||||
|
m_bmp_from_editing_item = data.GetBitmap();
|
||||||
|
|
||||||
|
wxPoint position = labelRect.GetPosition();
|
||||||
|
if (m_bmp_from_editing_item.IsOk()) {
|
||||||
|
const int bmp_width = m_bmp_from_editing_item.GetWidth();
|
||||||
|
position.x += bmp_width;
|
||||||
|
labelRect.SetWidth(labelRect.GetWidth() - bmp_width);
|
||||||
|
}
|
||||||
|
|
||||||
|
wxTextCtrl* text_editor = new wxTextCtrl(parent, wxID_ANY, data.GetText(),
|
||||||
|
position, labelRect.GetSize(), wxTE_PROCESS_ENTER);
|
||||||
|
text_editor->SetInsertionPointEnd();
|
||||||
|
|
||||||
|
return text_editor;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool PrusaBitmapTextRenderer::GetValueFromEditorCtrl(wxWindow* ctrl, wxVariant& value)
|
||||||
|
{
|
||||||
|
wxTextCtrl* text_editor = wxDynamicCast(ctrl, wxTextCtrl);
|
||||||
|
if (!text_editor)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
value << PrusaDataViewBitmapText(text_editor->GetValue(), m_bmp_from_editing_item);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// PrusaDoubleSlider
|
// PrusaDoubleSlider
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@ -522,7 +522,7 @@ public:
|
|||||||
class PrusaBitmapTextRenderer : public wxDataViewCustomRenderer
|
class PrusaBitmapTextRenderer : public wxDataViewCustomRenderer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PrusaBitmapTextRenderer( wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
|
PrusaBitmapTextRenderer( wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE,
|
||||||
int align = wxDVR_DEFAULT_ALIGNMENT):
|
int align = wxDVR_DEFAULT_ALIGNMENT):
|
||||||
wxDataViewCustomRenderer(wxT("PrusaDataViewBitmapText"), mode, align) {}
|
wxDataViewCustomRenderer(wxT("PrusaDataViewBitmapText"), mode, align) {}
|
||||||
|
|
||||||
@ -532,10 +532,16 @@ public:
|
|||||||
virtual bool Render(wxRect cell, wxDC *dc, int state);
|
virtual bool Render(wxRect cell, wxDC *dc, int state);
|
||||||
virtual wxSize GetSize() const;
|
virtual wxSize GetSize() const;
|
||||||
|
|
||||||
virtual bool HasEditorCtrl() const { return false; }
|
bool HasEditorCtrl() const override { return true; }
|
||||||
|
wxWindow* CreateEditorCtrl(wxWindow* parent,
|
||||||
|
wxRect labelRect,
|
||||||
|
const wxVariant& value) override;
|
||||||
|
bool GetValueFromEditorCtrl( wxWindow* ctrl,
|
||||||
|
wxVariant& value) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
PrusaDataViewBitmapText m_value;
|
PrusaDataViewBitmapText m_value;
|
||||||
|
wxBitmap m_bmp_from_editing_item;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user