Implemented use of aliases in Plater's preset comboboxes
This commit is contained in:
parent
afb8483250
commit
6a68002a1f
5 changed files with 54 additions and 17 deletions
|
@ -352,7 +352,10 @@ wxBitmapComboBox(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(15 *
|
||||||
|
|
||||||
// Call select_preset() only if there is new preset and not just modified
|
// Call select_preset() only if there is new preset and not just modified
|
||||||
if ( !boost::algorithm::ends_with(selected_preset, Preset::suffix_modified()) )
|
if ( !boost::algorithm::ends_with(selected_preset, Preset::suffix_modified()) )
|
||||||
tab->select_preset(selected_preset);
|
{
|
||||||
|
const std::string& preset_name = wxGetApp().preset_bundle->filaments.get_preset_name_by_alias(selected_preset);
|
||||||
|
tab->select_preset(/*selected_preset*/preset_name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
@ -3363,9 +3366,10 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt)
|
||||||
//! combo->GetStringSelection().ToUTF8().data());
|
//! combo->GetStringSelection().ToUTF8().data());
|
||||||
|
|
||||||
const std::string& selected_string = combo->GetString(combo->GetSelection()).ToUTF8().data();
|
const std::string& selected_string = combo->GetString(combo->GetSelection()).ToUTF8().data();
|
||||||
|
const std::string preset_name = wxGetApp().preset_bundle->filaments.get_preset_name_by_alias(selected_string);
|
||||||
|
|
||||||
if (preset_type == Preset::TYPE_FILAMENT) {
|
if (preset_type == Preset::TYPE_FILAMENT) {
|
||||||
wxGetApp().preset_bundle->set_filament_preset(idx, selected_string);
|
wxGetApp().preset_bundle->set_filament_preset(idx, /*selected_string*/preset_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: ?
|
// TODO: ?
|
||||||
|
@ -3375,7 +3379,7 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
wxWindowUpdateLocker noUpdates(sidebar->presets_panel());
|
wxWindowUpdateLocker noUpdates(sidebar->presets_panel());
|
||||||
wxGetApp().get_tab(preset_type)->select_preset(selected_string);
|
wxGetApp().get_tab(preset_type)->select_preset(/*selected_string*/preset_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// update plater with new config
|
// update plater with new config
|
||||||
|
@ -3386,7 +3390,6 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt)
|
||||||
* and for SLA presets they should be deleted
|
* and for SLA presets they should be deleted
|
||||||
*/
|
*/
|
||||||
if (preset_type == Preset::TYPE_PRINTER)
|
if (preset_type == Preset::TYPE_PRINTER)
|
||||||
// wxGetApp().obj_list()->update_settings_items();
|
|
||||||
wxGetApp().obj_list()->update_object_list_by_printer_technology();
|
wxGetApp().obj_list()->update_object_list_by_printer_technology();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -903,6 +903,20 @@ const Preset* PresetCollection::get_preset_parent(const Preset& child) const
|
||||||
return (preset == nullptr/* || preset->is_default */|| preset->is_external) ? nullptr : preset;
|
return (preset == nullptr/* || preset->is_default */|| preset->is_external) ? nullptr : preset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const std::string& PresetCollection::get_preset_name_by_alias(const std::string& alias)
|
||||||
|
{
|
||||||
|
for (size_t i = this->m_presets.front().is_visible ? 0 : m_num_default_presets; i < this->m_presets.size(); ++i) {
|
||||||
|
const Preset& preset = this->m_presets[i];
|
||||||
|
if (!preset.is_visible || (!preset.is_compatible && i != m_idx_selected))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (preset.alias == alias)
|
||||||
|
return preset.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
return alias;
|
||||||
|
}
|
||||||
|
|
||||||
const std::string& PresetCollection::get_suffix_modified() {
|
const std::string& PresetCollection::get_suffix_modified() {
|
||||||
return g_suffix_modified;
|
return g_suffix_modified;
|
||||||
}
|
}
|
||||||
|
@ -997,6 +1011,7 @@ void PresetCollection::update_platter_ui(GUI::PresetComboBox *ui)
|
||||||
|
|
||||||
std::map<wxString, wxBitmap*> nonsys_presets;
|
std::map<wxString, wxBitmap*> nonsys_presets;
|
||||||
wxString selected = "";
|
wxString selected = "";
|
||||||
|
wxString tooltip = "";
|
||||||
if (!this->m_presets.front().is_visible)
|
if (!this->m_presets.front().is_visible)
|
||||||
ui->set_label_marker(ui->Append(PresetCollection::separator(L("System presets")), wxNullBitmap));
|
ui->set_label_marker(ui->Append(PresetCollection::separator(L("System presets")), wxNullBitmap));
|
||||||
for (size_t i = this->m_presets.front().is_visible ? 0 : m_num_default_presets; i < this->m_presets.size(); ++ i) {
|
for (size_t i = this->m_presets.front().is_visible ? 0 : m_num_default_presets; i < this->m_presets.size(); ++ i) {
|
||||||
|
@ -1025,19 +1040,24 @@ void PresetCollection::update_platter_ui(GUI::PresetComboBox *ui)
|
||||||
bmp = m_bitmap_cache->insert(bitmap_key, bmps);
|
bmp = m_bitmap_cache->insert(bitmap_key, bmps);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const std::string name = preset.alias.empty() ? preset.name : preset.alias;
|
||||||
if (preset.is_default || preset.is_system) {
|
if (preset.is_default || preset.is_system) {
|
||||||
ui->Append(wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str()),
|
ui->Append(wxString::FromUTF8((/*preset.*/name + (preset.is_dirty ? g_suffix_modified : "")).c_str()),
|
||||||
(bmp == 0) ? (m_bitmap_main_frame ? *m_bitmap_main_frame : wxNullBitmap) : *bmp);
|
(bmp == 0) ? (m_bitmap_main_frame ? *m_bitmap_main_frame : wxNullBitmap) : *bmp);
|
||||||
if (i == m_idx_selected ||
|
if (i == m_idx_selected ||
|
||||||
// just in case: mark selected_preset_item as a first added element
|
// just in case: mark selected_preset_item as a first added element
|
||||||
selected_preset_item == INT_MAX)
|
selected_preset_item == INT_MAX) {
|
||||||
selected_preset_item = ui->GetCount() - 1;
|
selected_preset_item = ui->GetCount() - 1;
|
||||||
|
tooltip = wxString::FromUTF8(preset.name.c_str());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
nonsys_presets.emplace(wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str()), bmp/*preset.is_compatible*/);
|
nonsys_presets.emplace(wxString::FromUTF8((/*preset.*/name + (preset.is_dirty ? g_suffix_modified : "")).c_str()), bmp/*preset.is_compatible*/);
|
||||||
if (i == m_idx_selected)
|
if (i == m_idx_selected) {
|
||||||
selected = wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str());
|
selected = wxString::FromUTF8((/*preset.*/name + (preset.is_dirty ? g_suffix_modified : "")).c_str());
|
||||||
|
tooltip = wxString::FromUTF8(preset.name.c_str());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (i + 1 == m_num_default_presets)
|
if (i + 1 == m_num_default_presets)
|
||||||
ui->set_label_marker(ui->Append(PresetCollection::separator(L("System presets")), wxNullBitmap));
|
ui->set_label_marker(ui->Append(PresetCollection::separator(L("System presets")), wxNullBitmap));
|
||||||
|
@ -1088,7 +1108,7 @@ void PresetCollection::update_platter_ui(GUI::PresetComboBox *ui)
|
||||||
selected_preset_item = ui->GetCount() - 1;
|
selected_preset_item = ui->GetCount() - 1;
|
||||||
|
|
||||||
ui->SetSelection(selected_preset_item);
|
ui->SetSelection(selected_preset_item);
|
||||||
ui->SetToolTip(ui->GetString(selected_preset_item));
|
ui->SetToolTip(tooltip.IsEmpty() ? ui->GetString(selected_preset_item) : tooltip);
|
||||||
ui->check_selection();
|
ui->check_selection();
|
||||||
ui->Thaw();
|
ui->Thaw();
|
||||||
|
|
||||||
|
|
|
@ -329,6 +329,8 @@ public:
|
||||||
Preset& get_edited_preset() { return m_edited_preset; }
|
Preset& get_edited_preset() { return m_edited_preset; }
|
||||||
const Preset& get_edited_preset() const { return m_edited_preset; }
|
const Preset& get_edited_preset() const { return m_edited_preset; }
|
||||||
|
|
||||||
|
const std::string& get_preset_name_by_alias(const std::string& alias);
|
||||||
|
|
||||||
// used to update preset_choice from Tab
|
// used to update preset_choice from Tab
|
||||||
const std::deque<Preset>& get_presets() const { return m_presets; }
|
const std::deque<Preset>& get_presets() const { return m_presets; }
|
||||||
int get_idx_selected() { return m_idx_selected; }
|
int get_idx_selected() { return m_idx_selected; }
|
||||||
|
|
|
@ -1587,6 +1587,8 @@ void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, GUI::Pr
|
||||||
// set a bitmap height to m_bitmapLock->GetHeight()
|
// set a bitmap height to m_bitmapLock->GetHeight()
|
||||||
const int icon_height = m_bitmapLock->GetHeight();//2 * icon_unit; //16 * scale_f + 0.5f;
|
const int icon_height = m_bitmapLock->GetHeight();//2 * icon_unit; //16 * scale_f + 0.5f;
|
||||||
|
|
||||||
|
wxString tooltip = "";
|
||||||
|
|
||||||
for (int i = this->filaments().front().is_visible ? 0 : 1; i < int(this->filaments().size()); ++i) {
|
for (int i = this->filaments().front().is_visible ? 0 : 1; i < int(this->filaments().size()); ++i) {
|
||||||
const Preset &preset = this->filaments.preset(i);
|
const Preset &preset = this->filaments.preset(i);
|
||||||
bool selected = this->filament_presets[idx_extruder] == preset.name;
|
bool selected = this->filament_presets[idx_extruder] == preset.name;
|
||||||
|
@ -1627,20 +1629,25 @@ void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, GUI::Pr
|
||||||
bitmap = m_bitmapCache->insert(bitmap_key, bmps);
|
bitmap = m_bitmapCache->insert(bitmap_key, bmps);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (preset.is_default || preset.is_system) {
|
const std::string name = preset.alias.empty() ? preset.name : preset.alias;
|
||||||
ui->Append(wxString::FromUTF8((preset.name + (preset.is_dirty ? Preset::suffix_modified() : "")).c_str()),
|
if (preset.is_default || preset.is_system) {
|
||||||
|
ui->Append(wxString::FromUTF8((/*preset.*/name + (preset.is_dirty ? Preset::suffix_modified() : "")).c_str()),
|
||||||
(bitmap == 0) ? wxNullBitmap : *bitmap);
|
(bitmap == 0) ? wxNullBitmap : *bitmap);
|
||||||
if (selected ||
|
if (selected ||
|
||||||
// just in case: mark selected_preset_item as a first added element
|
// just in case: mark selected_preset_item as a first added element
|
||||||
selected_preset_item == INT_MAX )
|
selected_preset_item == INT_MAX ) {
|
||||||
selected_preset_item = ui->GetCount() - 1;
|
selected_preset_item = ui->GetCount() - 1;
|
||||||
|
tooltip = wxString::FromUTF8(preset.name.c_str());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
nonsys_presets.emplace(wxString::FromUTF8((preset.name + (preset.is_dirty ? Preset::suffix_modified() : "")).c_str()),
|
nonsys_presets.emplace(wxString::FromUTF8((/*preset.*/name + (preset.is_dirty ? Preset::suffix_modified() : "")).c_str()),
|
||||||
(bitmap == 0) ? &wxNullBitmap : bitmap);
|
(bitmap == 0) ? &wxNullBitmap : bitmap);
|
||||||
if (selected)
|
if (selected) {
|
||||||
selected_str = wxString::FromUTF8((preset.name + (preset.is_dirty ? Preset::suffix_modified() : "")).c_str());
|
selected_str = wxString::FromUTF8((/*preset.*/name + (preset.is_dirty ? Preset::suffix_modified() : "")).c_str());
|
||||||
|
tooltip = wxString::FromUTF8(preset.name.c_str());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (preset.is_default)
|
if (preset.is_default)
|
||||||
ui->set_label_marker(ui->Append(PresetCollection::separator(L("System presets")), wxNullBitmap));
|
ui->set_label_marker(ui->Append(PresetCollection::separator(L("System presets")), wxNullBitmap));
|
||||||
|
@ -1669,7 +1676,7 @@ void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, GUI::Pr
|
||||||
selected_preset_item = ui->GetCount() - 1;
|
selected_preset_item = ui->GetCount() - 1;
|
||||||
|
|
||||||
ui->SetSelection(selected_preset_item);
|
ui->SetSelection(selected_preset_item);
|
||||||
ui->SetToolTip(ui->GetString(selected_preset_item));
|
ui->SetToolTip(tooltip.IsEmpty() ? ui->GetString(selected_preset_item) : tooltip);
|
||||||
ui->check_selection();
|
ui->check_selection();
|
||||||
ui->Thaw();
|
ui->Thaw();
|
||||||
|
|
||||||
|
|
|
@ -998,6 +998,11 @@ void Tab::update_preset_description_line()
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
description_line += "\n\n\t" + _(L("full profile name")) + ": \n\t\t" + parent->name;
|
||||||
|
description_line += "\n\t" + _(L("symbolic profile name")) + ": \n\t\t" + parent->alias;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_parent_preset_description_line->SetText(description_line, false);
|
m_parent_preset_description_line->SetText(description_line, false);
|
||||||
|
|
Loading…
Reference in a new issue