ENH: Optimize the logic for deleting third-party printers
Mark the Filament and Process presets to be deleted first then delete the child presets first and then the parent presets. Jira: none Change-Id: I100b873baae96c6ba27af258e708e6ab8e6ee4ab
This commit is contained in:
parent
f0359e9304
commit
b98992cdb6
|
@ -4444,8 +4444,8 @@ bool Tab::select_preset(std::string preset_name, bool delete_current /*=false*/,
|
|||
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("before delete action, canceled %1%, delete_current %2%") %canceled %delete_current;
|
||||
bool delete_third_printer = false;
|
||||
std::vector<Preset> filament_presets;
|
||||
std::vector<Preset> process_presets;
|
||||
std::deque<Preset> filament_presets;
|
||||
std::deque<Preset> process_presets;
|
||||
if (! canceled && delete_current) {
|
||||
// Delete the file and select some other reasonable preset.
|
||||
// It does not matter which preset will be made active as the preset will be re-selected from the preset_name variable.
|
||||
|
@ -4458,10 +4458,22 @@ bool Tab::select_preset(std::string preset_name, bool delete_current /*=false*/,
|
|||
if (m_preset_bundle && m_presets->get_preset_base(current_preset) == ¤t_preset && printer_tab && !current_preset.is_system) {
|
||||
delete_third_printer = true;
|
||||
for (const Preset &preset : m_preset_bundle->filaments.get_presets()) {
|
||||
if (preset.is_compatible && !preset.is_default) { filament_presets.push_back(preset); }
|
||||
if (preset.is_compatible && !preset.is_default) {
|
||||
if (preset.inherits() != "")
|
||||
filament_presets.push_front(preset);
|
||||
else
|
||||
filament_presets.push_back(preset);
|
||||
if (!preset.setting_id.empty()) { m_preset_bundle->filaments.set_sync_info_and_save(preset.name, preset.setting_id, "delete", 0); }
|
||||
}
|
||||
}
|
||||
for (const Preset &preset : m_preset_bundle->prints.get_presets()) {
|
||||
if (preset.is_compatible && !preset.is_default) { process_presets.push_back(preset); }
|
||||
if (preset.is_compatible && !preset.is_default) {
|
||||
if (preset.inherits() != "")
|
||||
process_presets.push_front(preset);
|
||||
else
|
||||
process_presets.push_back(preset);
|
||||
if (!preset.setting_id.empty()) { m_preset_bundle->filaments.set_sync_info_and_save(preset.name, preset.setting_id, "delete", 0); }
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!current_preset.setting_id.empty()) {
|
||||
|
@ -4551,7 +4563,6 @@ bool Tab::select_preset(std::string preset_name, bool delete_current /*=false*/,
|
|||
|
||||
for (const Preset &preset : filament_presets) {
|
||||
if (!preset.setting_id.empty()) {
|
||||
preset_bundle->filaments.set_sync_info_and_save(preset.name, preset.setting_id, "delete", 0);
|
||||
wxGetApp().delete_preset_from_cloud(preset.setting_id);
|
||||
}
|
||||
BOOST_LOG_TRIVIAL(info) << "delete filament preset = " << preset.name << ", setting_id = " << preset.setting_id;
|
||||
|
@ -4560,7 +4571,6 @@ bool Tab::select_preset(std::string preset_name, bool delete_current /*=false*/,
|
|||
|
||||
for (const Preset &preset : process_presets) {
|
||||
if (!preset.setting_id.empty()) {
|
||||
preset_bundle->prints.set_sync_info_and_save(preset.name, preset.setting_id, "delete", 0);
|
||||
wxGetApp().delete_preset_from_cloud(preset.setting_id);
|
||||
}
|
||||
BOOST_LOG_TRIVIAL(info) << "delete print preset = " << preset.name << ", setting_id = " << preset.setting_id;
|
||||
|
|
Loading…
Reference in New Issue