mirror of
https://git.mirrors.martin98.com/https://github.com/bambulab/BambuStudio.git
synced 2025-08-18 05:25:58 +08:00
FIX: enable edit and delete preset btn and fix issue
Jira: XXXX Change-Id: I724d7236b28fcc4746698f094531948a8fbb5d93 Signed-off-by: maosheng.wei <maosheng.wei@bambulab.com>
This commit is contained in:
parent
417d2eeb90
commit
901d6d2936
@ -14,6 +14,7 @@
|
||||
#include "FileHelp.hpp"
|
||||
#include "Tab.hpp"
|
||||
#include "ParamsDialog.hpp"
|
||||
#include "MainFrame.hpp"
|
||||
|
||||
#define NAME_OPTION_COMBOBOX_SIZE wxSize(FromDIP(200), FromDIP(24))
|
||||
#define FILAMENT_PRESET_COMBOBOX_SIZE wxSize(FromDIP(300), FromDIP(24))
|
||||
@ -4227,7 +4228,7 @@ void EditFilamentPresetDialog::update_preset_tree()
|
||||
this->Freeze();
|
||||
m_preset_tree_sizer->Clear(true);
|
||||
for (std::pair<std::string, std::vector<std::shared_ptr<Preset>>> printer_and_presets : m_printer_compatible_presets) {
|
||||
m_preset_tree_sizer->Add(m_preset_tree_creater->get_preset_tree(printer_and_presets), 0, wxEXPAND | wxALL, 5);
|
||||
m_preset_tree_sizer->Add(m_preset_tree_creater->get_preset_tree(printer_and_presets), 0, wxEXPAND | wxLEFT | wxTOP | wxRIGHT, 5);
|
||||
}
|
||||
|
||||
m_preset_tree_panel->SetSizerAndFit(m_preset_tree_sizer);
|
||||
@ -4260,9 +4261,13 @@ void EditFilamentPresetDialog::delete_preset()
|
||||
return;
|
||||
}
|
||||
std::shared_ptr<Preset> need_delete_preset = filament_presets[m_need_delete_preset_index];
|
||||
// is selecetd filament preset
|
||||
if (need_delete_preset->name == wxGetApp().preset_bundle->filaments.get_selected_preset_name()) {
|
||||
wxGetApp().get_tab(need_delete_preset->type)->delete_preset();
|
||||
} else {
|
||||
Preset *filament_preset = wxGetApp().preset_bundle->filaments.find_preset(need_delete_preset->name);
|
||||
|
||||
// is root preset ?
|
||||
Preset *filament_preset = wxGetApp().preset_bundle->filaments.find_preset(need_delete_preset->name);
|
||||
if (filament_preset && wxGetApp().preset_bundle->filaments.get_preset_base(*filament_preset) == filament_preset) {
|
||||
int count = 0;
|
||||
wxString presets;
|
||||
@ -4283,16 +4288,13 @@ void EditFilamentPresetDialog::delete_preset()
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// remove preset shared_ptr from m_printer_compatible_presets
|
||||
int last_index = filament_presets.size() - 1;
|
||||
if (m_need_delete_preset_index != last_index) {
|
||||
std::swap(filament_presets[m_need_delete_preset_index], filament_presets[last_index]);
|
||||
if (wxID_YES != MessageDialog(this, _L("Are you sure to delete the selected preset?"), _L("Delete preset"), wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION).ShowModal()) {
|
||||
m_selected_printer.clear();
|
||||
m_need_delete_preset_index = -1;
|
||||
return;
|
||||
}
|
||||
filament_presets.pop_back();
|
||||
if (filament_presets.empty()) m_printer_compatible_presets.erase(iter);
|
||||
|
||||
//delete preset
|
||||
// delete preset
|
||||
std::string next_selected_preset_name = wxGetApp().preset_bundle->filaments.get_selected_preset().name;
|
||||
bool delete_result = delete_filament_preset_by_name(need_delete_preset->name, next_selected_preset_name);
|
||||
BOOST_LOG_TRIVIAL(info) << __LINE__ << " filament preset name: " << need_delete_preset->name << (delete_result ? " delete successful" : " delete failed");
|
||||
@ -4302,6 +4304,15 @@ void EditFilamentPresetDialog::delete_preset()
|
||||
auto preset = wxGetApp().preset_bundle->filaments.find_preset(wxGetApp().preset_bundle->filament_presets[i]);
|
||||
if (preset == nullptr) wxGetApp().preset_bundle->filament_presets[i] = wxGetApp().preset_bundle->filaments.get_selected_preset_name();
|
||||
}
|
||||
}
|
||||
|
||||
// remove preset shared_ptr from m_printer_compatible_presets
|
||||
int last_index = filament_presets.size() - 1;
|
||||
if (m_need_delete_preset_index != last_index) {
|
||||
std::swap(filament_presets[m_need_delete_preset_index], filament_presets[last_index]);
|
||||
}
|
||||
filament_presets.pop_back();
|
||||
if (filament_presets.empty()) m_printer_compatible_presets.erase(iter);
|
||||
|
||||
update_preset_tree();
|
||||
|
||||
@ -4818,7 +4829,7 @@ wxPanel *PresetTree::get_child_item(wxPanel *parent, std::shared_ptr<Preset> pre
|
||||
edit_preset_btn->SetBackgroundColor(flush_bg_col);
|
||||
edit_preset_btn->SetBorderColor(flush_bd_col);
|
||||
edit_preset_btn->SetTextColor(flush_fg_col);
|
||||
edit_preset_btn->Hide();
|
||||
//edit_preset_btn->Hide();
|
||||
sizer->Add(edit_preset_btn, 0, wxALL | wxALIGN_CENTER_VERTICAL, 0);
|
||||
sizer->Add(0, 0, 0, wxLEFT, 5);
|
||||
|
||||
@ -4829,7 +4840,7 @@ wxPanel *PresetTree::get_child_item(wxPanel *parent, std::shared_ptr<Preset> pre
|
||||
del_preset_btn->SetBackgroundColor(flush_bg_col);
|
||||
del_preset_btn->SetBorderColor(flush_bd_col);
|
||||
del_preset_btn->SetTextColor(flush_fg_col);
|
||||
del_preset_btn->Hide();
|
||||
//del_preset_btn->Hide();
|
||||
sizer->Add(del_preset_btn, 0, wxALL | wxALIGN_CENTER_VERTICAL, 0);
|
||||
|
||||
edit_preset_btn->Bind(wxEVT_BUTTON, [this, printer_name, preset_index](wxCommandEvent &e) {
|
||||
|
@ -178,10 +178,8 @@ wxDEFINE_EVENT(EVT_GLCANVAS_COLOR_MODE_CHANGED, SimpleEvent);
|
||||
wxDEFINE_EVENT(EVT_PRINT_FROM_SDCARD_VIEW, SimpleEvent);
|
||||
|
||||
wxDEFINE_EVENT(EVT_CREATE_FILAMENT, SimpleEvent);
|
||||
|
||||
wxDEFINE_EVENT(EVT_MODIFY_FILAMENT, SimpleEvent);
|
||||
|
||||
|
||||
bool Plater::has_illegal_filename_characters(const wxString& wxs_name)
|
||||
{
|
||||
std::string name = into_u8(wxs_name);
|
||||
@ -1183,7 +1181,11 @@ void Sidebar::update_presets(Preset::Type preset_type)
|
||||
preset_bundle.set_filament_preset(p->editing_filament, name);
|
||||
} else if (filament_cnt == 1) {
|
||||
// Single filament printer, synchronize the filament presets.
|
||||
preset_bundle.set_filament_preset(0, name);
|
||||
Preset *preset = preset_bundle.filaments.find_preset(name, false);
|
||||
if (preset) {
|
||||
if (preset->is_compatible) preset_bundle.set_filament_preset(0, name);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < filament_cnt; i++)
|
||||
@ -1848,7 +1850,6 @@ void Sidebar::auto_calc_flushing_volumes(const int modify_id) {
|
||||
wxPostEvent(this, SimpleEvent(EVT_SCHEDULE_BACKGROUND_PROCESS, this));
|
||||
}
|
||||
|
||||
|
||||
// Plater::DropTarget
|
||||
|
||||
class PlaterDropTarget : public wxFileDropTarget
|
||||
@ -7540,7 +7541,6 @@ void Plater::priv::on_modify_filament(SimpleEvent &evt)
|
||||
FilamentInfomation * filament_info = static_cast<FilamentInfomation *>(evt.GetEventObject());
|
||||
EditFilamentPresetDialog dlg(wxGetApp().mainframe, filament_info);
|
||||
int res = dlg.ShowModal();
|
||||
|
||||
wxGetApp().mainframe->update_side_preset_ui();
|
||||
update_ui_from_settings();
|
||||
sidebar->update_all_preset_comboboxes();
|
||||
|
Loading…
x
Reference in New Issue
Block a user