mirror of
https://git.mirrors.martin98.com/https://github.com/bambulab/BambuStudio.git
synced 2025-08-18 15:35:54 +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 "FileHelp.hpp"
|
||||||
#include "Tab.hpp"
|
#include "Tab.hpp"
|
||||||
#include "ParamsDialog.hpp"
|
#include "ParamsDialog.hpp"
|
||||||
|
#include "MainFrame.hpp"
|
||||||
|
|
||||||
#define NAME_OPTION_COMBOBOX_SIZE wxSize(FromDIP(200), FromDIP(24))
|
#define NAME_OPTION_COMBOBOX_SIZE wxSize(FromDIP(200), FromDIP(24))
|
||||||
#define FILAMENT_PRESET_COMBOBOX_SIZE wxSize(FromDIP(300), FromDIP(24))
|
#define FILAMENT_PRESET_COMBOBOX_SIZE wxSize(FromDIP(300), FromDIP(24))
|
||||||
@ -4227,7 +4228,7 @@ void EditFilamentPresetDialog::update_preset_tree()
|
|||||||
this->Freeze();
|
this->Freeze();
|
||||||
m_preset_tree_sizer->Clear(true);
|
m_preset_tree_sizer->Clear(true);
|
||||||
for (std::pair<std::string, std::vector<std::shared_ptr<Preset>>> printer_and_presets : m_printer_compatible_presets) {
|
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);
|
m_preset_tree_panel->SetSizerAndFit(m_preset_tree_sizer);
|
||||||
@ -4260,9 +4261,13 @@ void EditFilamentPresetDialog::delete_preset()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
std::shared_ptr<Preset> need_delete_preset = filament_presets[m_need_delete_preset_index];
|
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 ?
|
// 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) {
|
if (filament_preset && wxGetApp().preset_bundle->filaments.get_preset_base(*filament_preset) == filament_preset) {
|
||||||
int count = 0;
|
int count = 0;
|
||||||
wxString presets;
|
wxString presets;
|
||||||
@ -4283,14 +4288,11 @@ void EditFilamentPresetDialog::delete_preset()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (wxID_YES != MessageDialog(this, _L("Are you sure to delete the selected preset?"), _L("Delete preset"), wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION).ShowModal()) {
|
||||||
// remove preset shared_ptr from m_printer_compatible_presets
|
m_selected_printer.clear();
|
||||||
int last_index = filament_presets.size() - 1;
|
m_need_delete_preset_index = -1;
|
||||||
if (m_need_delete_preset_index != last_index) {
|
return;
|
||||||
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);
|
|
||||||
|
|
||||||
// delete preset
|
// delete preset
|
||||||
std::string next_selected_preset_name = wxGetApp().preset_bundle->filaments.get_selected_preset().name;
|
std::string next_selected_preset_name = wxGetApp().preset_bundle->filaments.get_selected_preset().name;
|
||||||
@ -4302,6 +4304,15 @@ void EditFilamentPresetDialog::delete_preset()
|
|||||||
auto preset = wxGetApp().preset_bundle->filaments.find_preset(wxGetApp().preset_bundle->filament_presets[i]);
|
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();
|
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();
|
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->SetBackgroundColor(flush_bg_col);
|
||||||
edit_preset_btn->SetBorderColor(flush_bd_col);
|
edit_preset_btn->SetBorderColor(flush_bd_col);
|
||||||
edit_preset_btn->SetTextColor(flush_fg_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(edit_preset_btn, 0, wxALL | wxALIGN_CENTER_VERTICAL, 0);
|
||||||
sizer->Add(0, 0, 0, wxLEFT, 5);
|
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->SetBackgroundColor(flush_bg_col);
|
||||||
del_preset_btn->SetBorderColor(flush_bd_col);
|
del_preset_btn->SetBorderColor(flush_bd_col);
|
||||||
del_preset_btn->SetTextColor(flush_fg_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);
|
sizer->Add(del_preset_btn, 0, wxALL | wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
|
||||||
edit_preset_btn->Bind(wxEVT_BUTTON, [this, printer_name, preset_index](wxCommandEvent &e) {
|
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_PRINT_FROM_SDCARD_VIEW, SimpleEvent);
|
||||||
|
|
||||||
wxDEFINE_EVENT(EVT_CREATE_FILAMENT, SimpleEvent);
|
wxDEFINE_EVENT(EVT_CREATE_FILAMENT, SimpleEvent);
|
||||||
|
|
||||||
wxDEFINE_EVENT(EVT_MODIFY_FILAMENT, SimpleEvent);
|
wxDEFINE_EVENT(EVT_MODIFY_FILAMENT, SimpleEvent);
|
||||||
|
|
||||||
|
|
||||||
bool Plater::has_illegal_filename_characters(const wxString& wxs_name)
|
bool Plater::has_illegal_filename_characters(const wxString& wxs_name)
|
||||||
{
|
{
|
||||||
std::string name = into_u8(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);
|
preset_bundle.set_filament_preset(p->editing_filament, name);
|
||||||
} else if (filament_cnt == 1) {
|
} else if (filament_cnt == 1) {
|
||||||
// Single filament printer, synchronize the filament presets.
|
// 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++)
|
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));
|
wxPostEvent(this, SimpleEvent(EVT_SCHEDULE_BACKGROUND_PROCESS, this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Plater::DropTarget
|
// Plater::DropTarget
|
||||||
|
|
||||||
class PlaterDropTarget : public wxFileDropTarget
|
class PlaterDropTarget : public wxFileDropTarget
|
||||||
@ -7540,7 +7541,6 @@ void Plater::priv::on_modify_filament(SimpleEvent &evt)
|
|||||||
FilamentInfomation * filament_info = static_cast<FilamentInfomation *>(evt.GetEventObject());
|
FilamentInfomation * filament_info = static_cast<FilamentInfomation *>(evt.GetEventObject());
|
||||||
EditFilamentPresetDialog dlg(wxGetApp().mainframe, filament_info);
|
EditFilamentPresetDialog dlg(wxGetApp().mainframe, filament_info);
|
||||||
int res = dlg.ShowModal();
|
int res = dlg.ShowModal();
|
||||||
|
|
||||||
wxGetApp().mainframe->update_side_preset_ui();
|
wxGetApp().mainframe->update_side_preset_ui();
|
||||||
update_ui_from_settings();
|
update_ui_from_settings();
|
||||||
sidebar->update_all_preset_comboboxes();
|
sidebar->update_all_preset_comboboxes();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user