Deleted "Copy" column from ObjectList

This commit is contained in:
YuSanka 2018-10-18 11:28:31 +02:00
parent e223120e7e
commit 33a0f5beff
6 changed files with 21 additions and 73 deletions

View File

@ -94,17 +94,13 @@ void ObjectList::create_objects_ctrl()
// column 0(Icon+Text) of the view control: // column 0(Icon+Text) of the view control:
// And Icon can be consisting of several bitmaps // And Icon can be consisting of several bitmaps
AppendColumn(new wxDataViewColumn(_(L("Name")), new PrusaBitmapTextRenderer(), AppendColumn(new wxDataViewColumn(_(L("Name")), new PrusaBitmapTextRenderer(),
0, 200, wxALIGN_LEFT, wxDATAVIEW_COL_RESIZABLE)); 0, 250, wxALIGN_LEFT, wxDATAVIEW_COL_RESIZABLE));
// column 1 of the view control: // column 1 of the view control:
AppendTextColumn(_(L("Copy")), 1, wxDATAVIEW_CELL_INERT, 45,
wxALIGN_CENTER_HORIZONTAL, wxDATAVIEW_COL_RESIZABLE);
// column 2 of the view control:
AppendColumn(create_objects_list_extruder_column(4)); AppendColumn(create_objects_list_extruder_column(4));
// column 3 of the view control: // column 2 of the view control:
AppendBitmapColumn(" ", 3, wxDATAVIEW_CELL_INERT, 25, AppendBitmapColumn(" ", 2, wxDATAVIEW_CELL_INERT, 25,
wxALIGN_CENTER_HORIZONTAL, wxDATAVIEW_COL_RESIZABLE); wxALIGN_CENTER_HORIZONTAL, wxDATAVIEW_COL_RESIZABLE);
} }
@ -178,7 +174,7 @@ wxDataViewColumn* ObjectList::create_objects_list_extruder_column(int extruders_
choices.Add(wxString::Format("%d", i)); choices.Add(wxString::Format("%d", i));
wxDataViewChoiceRenderer *c = wxDataViewChoiceRenderer *c =
new wxDataViewChoiceRenderer(choices, wxDATAVIEW_CELL_EDITABLE, wxALIGN_CENTER_HORIZONTAL); new wxDataViewChoiceRenderer(choices, wxDATAVIEW_CELL_EDITABLE, wxALIGN_CENTER_HORIZONTAL);
wxDataViewColumn* column = new wxDataViewColumn(_(L("Extruder")), c, 2, 60, wxALIGN_CENTER_HORIZONTAL, wxDATAVIEW_COL_RESIZABLE); wxDataViewColumn* column = new wxDataViewColumn(_(L("Extruder")), c, 1, 80, wxALIGN_CENTER_HORIZONTAL, wxDATAVIEW_COL_RESIZABLE);
return column; return column;
} }
@ -188,17 +184,17 @@ void ObjectList::update_objects_list_extruder_column(int extruders_count)
if (wxGetApp().preset_bundle->printers.get_selected_preset().printer_technology() == ptSLA) if (wxGetApp().preset_bundle->printers.get_selected_preset().printer_technology() == ptSLA)
extruders_count = 1; extruders_count = 1;
// delete old 3rd column // delete old 2nd column
DeleteColumn(GetColumn(2)); DeleteColumn(GetColumn(1));
// insert new created 3rd column // insert new created 3rd column
InsertColumn(2, create_objects_list_extruder_column(extruders_count)); InsertColumn(1, create_objects_list_extruder_column(extruders_count));
// set show/hide for this column // set show/hide for this column
set_extruder_column_hidden(extruders_count <= 1); set_extruder_column_hidden(extruders_count <= 1);
} }
void ObjectList::set_extruder_column_hidden(bool hide) void ObjectList::set_extruder_column_hidden(bool hide)
{ {
GetColumn(2)->SetHidden(hide); GetColumn(1)->SetHidden(hide);
} }
void ObjectList::update_extruder_in_config(const wxString& selection) void ObjectList::update_extruder_in_config(const wxString& selection)
@ -313,10 +309,10 @@ void ObjectList::key_event(wxKeyEvent& event)
void ObjectList::item_value_change(wxDataViewEvent& event) void ObjectList::item_value_change(wxDataViewEvent& event)
{ {
if (event.GetColumn() == 2) if (event.GetColumn() == 1)
{ {
wxVariant variant; wxVariant variant;
m_objects_model->GetValue(variant, event.GetItem(), 2); m_objects_model->GetValue(variant, event.GetItem(), 1);
#ifdef __WXOSX__ #ifdef __WXOSX__
m_selected_extruder = variant.GetString(); m_selected_extruder = variant.GetString();
#else // --> for Linux #else // --> for Linux
@ -1076,7 +1072,7 @@ void ObjectList::add_object_to_list(size_t obj_idx)
{ {
auto model_object = (*m_objects)[obj_idx]; auto model_object = (*m_objects)[obj_idx];
wxString item_name = model_object->name; wxString item_name = model_object->name;
auto item = m_objects_model->Add(item_name, model_object->instances.size()); auto item = m_objects_model->Add(item_name);
#if !ENABLE_EXTENDED_SELECTION #if !ENABLE_EXTENDED_SELECTION
/*Select*/select_item(item); /*Select*/select_item(item);
#endif // !ENABLE_EXTENDED_SELECTION #endif // !ENABLE_EXTENDED_SELECTION
@ -1143,12 +1139,6 @@ void ObjectList::decrease_object_instances(const size_t obj_idx, const size_t nu
select_item(m_objects_model->DeleteLastInstance(m_objects_model->GetItemById(obj_idx), num)); select_item(m_objects_model->DeleteLastInstance(m_objects_model->GetItemById(obj_idx), num));
} }
void ObjectList::set_object_count(int idx, int count)
{
m_objects_model->SetValue(wxString::Format("%d", count), idx, 1);
Refresh();
}
void ObjectList::unselect_objects() void ObjectList::unselect_objects()
{ {
if (!GetSelection()) if (!GetSelection())

View File

@ -116,8 +116,6 @@ public:
void increase_object_instances(const size_t obj_idx, const size_t num); void increase_object_instances(const size_t obj_idx, const size_t num);
// Decrease instances count // Decrease instances count
void decrease_object_instances(const size_t obj_idx, const size_t num); void decrease_object_instances(const size_t obj_idx, const size_t num);
// Set count of object on c++ side
void set_object_count(int idx, int count);
// #ys_FIXME_to_delete // #ys_FIXME_to_delete
// Unselect all objects in the list on c++ side // Unselect all objects in the list on c++ side

View File

@ -1742,11 +1742,10 @@ void Plater::increase(size_t num)
float offset = 10.0; float offset = 10.0;
for (size_t i = 0; i < num; i++, offset += 10.0) { for (size_t i = 0; i < num; i++, offset += 10.0) {
Vec3d offset_vec = model_instance->get_offset() + Vec3d(offset, offset, 0.0); Vec3d offset_vec = model_instance->get_offset() + Vec3d(offset, offset, 0.0);
auto *new_instance = model_object->add_instance(offset_vec, model_instance->get_scaling_factor(), model_instance->get_rotation()); model_object->add_instance(offset_vec, model_instance->get_scaling_factor(), model_instance->get_rotation());
p->print.get_object(*obj_idx)->add_copy(Slic3r::to_2d(offset_vec)); p->print.get_object(*obj_idx)->add_copy(Slic3r::to_2d(offset_vec));
} }
sidebar().obj_list()->set_object_count(*obj_idx, model_object->instances.size());
sidebar().obj_list()->increase_object_instances(*obj_idx, num); sidebar().obj_list()->increase_object_instances(*obj_idx, num);
if (p->get_config("autocenter") == "1") { if (p->get_config("autocenter") == "1") {
@ -1771,7 +1770,6 @@ void Plater::decrease(size_t num)
model_object->delete_last_instance(); model_object->delete_last_instance();
p->print.get_object(*obj_idx)->delete_last_copy(); p->print.get_object(*obj_idx)->delete_last_copy();
} }
sidebar().obj_list()->set_object_count(*obj_idx, model_object->instances.size());
sidebar().obj_list()->decrease_object_instances(*obj_idx, num); sidebar().obj_list()->decrease_object_instances(*obj_idx, num);
} else { } else {
remove(*obj_idx); remove(*obj_idx);

View File

@ -1845,7 +1845,7 @@ void TabPrinter::extruders_count_changed(size_t extruders_count){
if (!wxGetApp().mainframe) if (!wxGetApp().mainframe)
return; return;
on_value_change("extruders_count", extruders_count); on_value_change("extruders_count", extruders_count);
wxGetApp().mainframe->m_plater->sidebar().update_objects_list_extruder_column(extruders_count); wxGetApp().sidebar().update_objects_list_extruder_column(extruders_count);
} }
void TabPrinter::append_option_line(ConfigOptionsGroupShp optgroup, const std::string opt_key) void TabPrinter::append_option_line(ConfigOptionsGroupShp optgroup, const std::string opt_key)

View File

@ -418,17 +418,6 @@ wxDataViewItem PrusaObjectDataViewModel::Add(const wxString &name)
return child; return child;
} }
wxDataViewItem PrusaObjectDataViewModel::Add(const wxString &name, const int instances_count/*, int scale*/)
{
auto root = new PrusaObjectDataViewModelNode(name, instances_count);
m_objects.push_back(root);
// notify control
wxDataViewItem child((void*)root);
wxDataViewItem parent((void*)NULL);
ItemAdded(parent, child);
return child;
}
wxDataViewItem PrusaObjectDataViewModel::AddVolumeChild(const wxDataViewItem &parent_item, wxDataViewItem PrusaObjectDataViewModel::AddVolumeChild(const wxDataViewItem &parent_item,
const wxString &name, const wxString &name,
const wxBitmap& icon, const wxBitmap& icon,
@ -442,8 +431,8 @@ wxDataViewItem PrusaObjectDataViewModel::AddVolumeChild(const wxDataViewItem &pa
if (create_frst_child && root->m_volumes_cnt == 0) if (create_frst_child && root->m_volumes_cnt == 0)
{ {
const auto icon_solid_mesh = wxIcon(Slic3r::GUI::from_u8(Slic3r::var("object.png")), wxBITMAP_TYPE_PNG); const auto bmp_solid_mesh = wxBitmap(Slic3r::GUI::from_u8(Slic3r::var("object.png")), wxBITMAP_TYPE_PNG);
const auto node = new PrusaObjectDataViewModelNode(root, root->m_name, icon_solid_mesh, extruder_str, 0); const auto node = new PrusaObjectDataViewModelNode(root, root->m_name, bmp_solid_mesh, extruder_str, 0);
root->Append(node); root->Append(node);
// notify control // notify control
const wxDataViewItem child((void*)node); const wxDataViewItem child((void*)node);
@ -795,21 +784,6 @@ wxString PrusaObjectDataViewModel::GetName(const wxDataViewItem &item) const
return node->m_name; return node->m_name;
} }
wxString PrusaObjectDataViewModel::GetCopy(const wxDataViewItem &item) const
{
PrusaObjectDataViewModelNode *node = (PrusaObjectDataViewModelNode*)item.GetID();
if (!node) // happens if item.IsOk()==false
return wxEmptyString;
return node->m_copy;
}
// wxIcon& PrusaObjectDataViewModel::GetIcon(const wxDataViewItem &item) const
// {
// PrusaObjectDataViewModelNode *node = (PrusaObjectDataViewModelNode*)item.GetID();
// return node->m_icon;
// }
wxBitmap& PrusaObjectDataViewModel::GetBitmap(const wxDataViewItem &item) const wxBitmap& PrusaObjectDataViewModel::GetBitmap(const wxDataViewItem &item) const
{ {
PrusaObjectDataViewModelNode *node = (PrusaObjectDataViewModelNode*)item.GetID(); PrusaObjectDataViewModelNode *node = (PrusaObjectDataViewModelNode*)item.GetID();
@ -823,16 +797,13 @@ void PrusaObjectDataViewModel::GetValue(wxVariant &variant, const wxDataViewItem
PrusaObjectDataViewModelNode *node = (PrusaObjectDataViewModelNode*)item.GetID(); PrusaObjectDataViewModelNode *node = (PrusaObjectDataViewModelNode*)item.GetID();
switch (col) switch (col)
{ {
case 0:{ case 0:
variant << PrusaDataViewBitmapText(node->m_name, node->m_bmp); variant << PrusaDataViewBitmapText(node->m_name, node->m_bmp);
break;}
case 1:
variant = node->m_copy;
break; break;
case 2: case 1:
variant = node->m_extruder; variant = node->m_extruder;
break; break;
case 3: case 2:
variant << node->m_action_icon; variant << node->m_action_icon;
break; break;
default: default:

View File

@ -166,7 +166,7 @@ public:
void SetText(const wxString &text) { m_text = text; } void SetText(const wxString &text) { m_text = text; }
wxString GetText() const { return m_text; } wxString GetText() const { return m_text; }
void SetBitmap(const wxIcon &icon) { m_bmp = icon; } void SetBitmap(const wxBitmap &bmp) { m_bmp = bmp; }
const wxBitmap &GetBitmap() const { return m_bmp; } const wxBitmap &GetBitmap() const { return m_bmp; }
bool IsSameAs(const PrusaDataViewBitmapText& other) const { bool IsSameAs(const PrusaDataViewBitmapText& other) const {
@ -214,10 +214,9 @@ class PrusaObjectDataViewModelNode
size_t m_volumes_cnt = 0; size_t m_volumes_cnt = 0;
std::vector< std::string > m_opt_categories; std::vector< std::string > m_opt_categories;
public: public:
PrusaObjectDataViewModelNode(const wxString &name, const int instances_count=1) { PrusaObjectDataViewModelNode(const wxString &name) {
m_parent = NULL; m_parent = NULL;
m_name = name; m_name = name;
m_copy = wxString::Format("%d", instances_count);
m_type = itObject; m_type = itObject;
#ifdef __WXGTK__ #ifdef __WXGTK__
// it's necessary on GTK because of control have to know if this item will be container // it's necessary on GTK because of control have to know if this item will be container
@ -235,7 +234,6 @@ public:
const int idx = -1 ) { const int idx = -1 ) {
m_parent = parent; m_parent = parent;
m_name = sub_obj_name; m_name = sub_obj_name;
m_copy = wxEmptyString;
m_bmp = bmp; m_bmp = bmp;
m_type = itVolume; m_type = itVolume;
m_idx = idx; m_idx = idx;
@ -251,7 +249,6 @@ public:
PrusaObjectDataViewModelNode( PrusaObjectDataViewModelNode* parent, const ItemType type) : PrusaObjectDataViewModelNode( PrusaObjectDataViewModelNode* parent, const ItemType type) :
m_parent(parent), m_parent(parent),
m_copy(wxEmptyString),
m_type(type), m_type(type),
m_extruder(wxEmptyString) m_extruder(wxEmptyString)
{ {
@ -280,7 +277,6 @@ public:
wxString m_name; wxString m_name;
wxBitmap& m_bmp = m_empty_bmp; wxBitmap& m_bmp = m_empty_bmp;
wxString m_copy;
ItemType m_type; ItemType m_type;
int m_idx = -1; int m_idx = -1;
bool m_container = false; bool m_container = false;
@ -346,12 +342,9 @@ public:
m_name = data.GetText(); m_name = data.GetText();
return true;} return true;}
case 1: case 1:
m_copy = variant.GetString();
return true;
case 2:
m_extruder = variant.GetString(); m_extruder = variant.GetString();
return true; return true;
case 3: case 2:
m_action_icon << variant; m_action_icon << variant;
return true; return true;
default: default:
@ -428,7 +421,6 @@ public:
~PrusaObjectDataViewModel(); ~PrusaObjectDataViewModel();
wxDataViewItem Add(const wxString &name); wxDataViewItem Add(const wxString &name);
wxDataViewItem Add(const wxString &name, const int instances_count);
wxDataViewItem AddVolumeChild(const wxDataViewItem &parent_item, wxDataViewItem AddVolumeChild(const wxDataViewItem &parent_item,
const wxString &name, const wxString &name,
const wxBitmap& icon, const wxBitmap& icon,
@ -452,7 +444,6 @@ public:
// helper method for wxLog // helper method for wxLog
wxString GetName(const wxDataViewItem &item) const; wxString GetName(const wxDataViewItem &item) const;
wxString GetCopy(const wxDataViewItem &item) const;
wxBitmap& GetBitmap(const wxDataViewItem &item) const; wxBitmap& GetBitmap(const wxDataViewItem &item) const;
// helper methods to change the model // helper methods to change the model