mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-16 07:35:57 +08:00
common presets marker in sidebar tab
This commit is contained in:
parent
36bfd6a565
commit
fb8f2555d9
@ -1113,14 +1113,14 @@ size_t PresetCollection::update_compatible_internal(const PresetWithVendorProfil
|
|||||||
m_idx_selected = size_t(-1);
|
m_idx_selected = size_t(-1);
|
||||||
if (selected)
|
if (selected)
|
||||||
preset_selected.is_compatible = preset_edited.is_compatible;
|
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);
|
indexes_of_common_presets.push_back(idx_preset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// filter out common generic profiles where profile with same alias and compability exists
|
// filter out common generic profiles where profile with same alias and compability exists
|
||||||
if (!indexes_of_common_presets.empty()) {
|
if (!indexes_of_common_presets.empty()) {
|
||||||
for (size_t idx_preset = m_num_default_presets; idx_preset < m_presets.size(); ++idx_preset) {
|
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;
|
std::string preset_alias = m_presets[idx_preset].alias;
|
||||||
for (size_t idx_idx = 0; idx_idx < indexes_of_common_presets.size(); ++idx_idx) {
|
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];
|
size_t idx_common = indexes_of_common_presets[idx_idx];
|
||||||
|
@ -785,6 +785,7 @@ void PlaterPresetComboBox::update()
|
|||||||
bool wide_icons = selected_preset && !selected_preset->is_compatible;
|
bool wide_icons = selected_preset && !selected_preset->is_compatible;
|
||||||
|
|
||||||
std::map<wxString, wxBitmap*> nonsys_presets;
|
std::map<wxString, wxBitmap*> nonsys_presets;
|
||||||
|
std::map<wxString, wxBitmap*> common_presets;
|
||||||
|
|
||||||
wxString selected_user_preset;
|
wxString selected_user_preset;
|
||||||
wxString tooltip;
|
wxString tooltip;
|
||||||
@ -832,10 +833,18 @@ void PlaterPresetComboBox::update()
|
|||||||
|
|
||||||
const std::string name = preset.alias.empty() ? preset.name : preset.alias;
|
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) {
|
||||||
Append(get_preset_name(preset), *bmp);
|
if (preset.vendor && preset.vendor->common_profile) {
|
||||||
validate_selection(is_selected);
|
common_presets.emplace(get_preset_name(preset), bmp);
|
||||||
if (is_selected)
|
if (is_selected) {
|
||||||
tooltip = from_u8(preset.name);
|
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
|
else
|
||||||
{
|
{
|
||||||
@ -848,6 +857,14 @@ void PlaterPresetComboBox::update()
|
|||||||
if (i + 1 == m_collection->num_default_presets())
|
if (i + 1 == m_collection->num_default_presets())
|
||||||
set_label_marker(Append(separator(L("System presets")), wxNullBitmap));
|
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())
|
if (!nonsys_presets.empty())
|
||||||
{
|
{
|
||||||
set_label_marker(Append(separator(L("User presets")), wxNullBitmap));
|
set_label_marker(Append(separator(L("User presets")), wxNullBitmap));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user