common presets marker in sidebar tab

This commit is contained in:
David Kocik 2022-02-07 12:51:56 +01:00
parent 36bfd6a565
commit fb8f2555d9
2 changed files with 23 additions and 6 deletions

View File

@ -1113,14 +1113,14 @@ size_t PresetCollection::update_compatible_internal(const PresetWithVendorProfil
m_idx_selected = size_t(-1);
if (selected)
preset_selected.is_compatible = preset_edited.is_compatible;
if (preset_edited.vendor->common_profile) {
if (preset_edited.vendor && preset_edited.vendor->common_profile) {
indexes_of_common_presets.push_back(idx_preset);
}
}
// filter out common generic profiles where profile with same alias and compability exists
if (!indexes_of_common_presets.empty()) {
for (size_t idx_preset = m_num_default_presets; idx_preset < m_presets.size(); ++idx_preset) {
if (!m_presets[idx_preset].vendor->common_profile && m_presets[idx_preset].is_compatible) {
if (m_presets[idx_preset].vendor && !m_presets[idx_preset].vendor->common_profile && m_presets[idx_preset].is_compatible) {
std::string preset_alias = m_presets[idx_preset].alias;
for (size_t idx_idx = 0; idx_idx < indexes_of_common_presets.size(); ++idx_idx) {
size_t idx_common = indexes_of_common_presets[idx_idx];

View File

@ -785,6 +785,7 @@ void PlaterPresetComboBox::update()
bool wide_icons = selected_preset && !selected_preset->is_compatible;
std::map<wxString, wxBitmap*> nonsys_presets;
std::map<wxString, wxBitmap*> common_presets;
wxString selected_user_preset;
wxString tooltip;
@ -832,10 +833,18 @@ void PlaterPresetComboBox::update()
const std::string name = preset.alias.empty() ? preset.name : preset.alias;
if (preset.is_default || preset.is_system) {
Append(get_preset_name(preset), *bmp);
validate_selection(is_selected);
if (is_selected)
tooltip = from_u8(preset.name);
if (preset.vendor && preset.vendor->common_profile) {
common_presets.emplace(get_preset_name(preset), bmp);
if (is_selected) {
selected_user_preset = get_preset_name(preset);
tooltip = from_u8(preset.name);
}
} else {
Append(get_preset_name(preset), *bmp);
validate_selection(is_selected);
if (is_selected)
tooltip = from_u8(preset.name);
}
}
else
{
@ -848,6 +857,14 @@ void PlaterPresetComboBox::update()
if (i + 1 == m_collection->num_default_presets())
set_label_marker(Append(separator(L("System presets")), wxNullBitmap));
}
if (!common_presets.empty())
{
set_label_marker(Append(separator(L("Common presets")), wxNullBitmap));
for (std::map<wxString, wxBitmap*>::iterator it = common_presets.begin(); it != common_presets.end(); ++it) {
Append(it->first, *it->second);
validate_selection(it->first == selected_user_preset);
}
}
if (!nonsys_presets.empty())
{
set_label_marker(Append(separator(L("User presets")), wxNullBitmap));