mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-10-20 23:31:13 -06:00
ENH: remember the filament_opts and limit minimum flushing volumes
Change-Id: I7b2538fcaf5b5fc5e4f86191207de981bd766a89 (cherry picked from commit 392be8d2a4e9465fffc4018da77c6ee00ad46ade)
This commit is contained in:
parent
eb80720e75
commit
13df80ffb7
8 changed files with 99 additions and 3 deletions
|
@ -2099,6 +2099,7 @@ bool GUI_App::on_init_inner()
|
|||
|
||||
BOOST_LOG_TRIVIAL(info) << "loading systen presets...";
|
||||
preset_bundle = new PresetBundle();
|
||||
preset_bundle->load_default_setting_from_app_config(*app_config);
|
||||
|
||||
// just checking for existence of Slic3r::data_dir is not enough : it may be an empty directory
|
||||
// supplied as argument to --datadir; in that case we should still run the wizard
|
||||
|
|
|
@ -663,6 +663,7 @@ Sidebar::Sidebar(Plater *parent)
|
|||
#if !BBL_RELEASE_TO_PUBLIC
|
||||
(project_config.option<ConfigOptionFloat>("flush_multiplier"))->set(new ConfigOptionFloat(dlg.get_flush_multiplier()));
|
||||
#endif
|
||||
wxGetApp().preset_bundle->update_filament_info_to_app_config(*wxGetApp().app_config);
|
||||
|
||||
wxGetApp().plater()->update_project_dirty_from_presets();
|
||||
wxPostEvent(parent, SimpleEvent(EVT_SCHEDULE_BACKGROUND_PROCESS, parent));
|
||||
|
@ -685,6 +686,7 @@ Sidebar::Sidebar(Plater *parent)
|
|||
wxGetApp().preset_bundle->set_num_filaments(filament_count, new_color);
|
||||
wxGetApp().plater()->on_filaments_change(filament_count);
|
||||
wxGetApp().get_tab(Preset::TYPE_PRINT)->update();
|
||||
wxGetApp().preset_bundle->update_filament_info_to_app_config(*wxGetApp().app_config);
|
||||
});
|
||||
p->m_bpButton_add_filament = add_btn;
|
||||
|
||||
|
@ -709,6 +711,7 @@ Sidebar::Sidebar(Plater *parent)
|
|||
wxGetApp().preset_bundle->set_num_filaments(filament_count);
|
||||
wxGetApp().plater()->on_filaments_change(filament_count);
|
||||
wxGetApp().get_tab(Preset::TYPE_PRINT)->update();
|
||||
wxGetApp().preset_bundle->update_filament_info_to_app_config(*wxGetApp().app_config);
|
||||
});
|
||||
p->m_bpButton_del_filament = del_btn;
|
||||
|
||||
|
@ -1288,6 +1291,7 @@ void Sidebar::sync_ams_list()
|
|||
for (auto &c : p->combos_filament)
|
||||
c->update();
|
||||
wxGetApp().get_tab(Preset::TYPE_PRINT)->update();
|
||||
wxGetApp().preset_bundle->update_filament_info_to_app_config(*wxGetApp().app_config);
|
||||
}
|
||||
|
||||
ObjectList* Sidebar::obj_list()
|
||||
|
@ -5200,6 +5204,7 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt)
|
|||
if (preset_type == Preset::TYPE_FILAMENT) {
|
||||
wxGetApp().preset_bundle->set_filament_preset(idx, preset_name);
|
||||
wxGetApp().plater()->update_project_dirty_from_presets();
|
||||
wxGetApp().preset_bundle->update_filament_info_to_app_config(*wxGetApp().app_config);
|
||||
}
|
||||
|
||||
bool select_preset = !combo->selection_is_changed_according_to_physical_printers();
|
||||
|
@ -7084,6 +7089,7 @@ void Plater::load_project(wxString const& filename2,
|
|||
|
||||
reset_project_dirty_initial_presets();
|
||||
update_project_dirty_from_presets();
|
||||
wxGetApp().preset_bundle->update_filament_info_to_app_config(*wxGetApp().app_config);
|
||||
|
||||
// if res is empty no data has been loaded
|
||||
if (!res.empty() && (load_restore || !(strategy & LoadStrategy::Silence))) {
|
||||
|
|
|
@ -670,6 +670,7 @@ PlaterPresetComboBox::PlaterPresetComboBox(wxWindow *parent, Preset::Type preset
|
|||
//wxGetApp().get_tab(Preset::TYPE_PRINTER)->load_config(cfg_new);
|
||||
cfg->apply(cfg_new);
|
||||
wxGetApp().plater()->update_project_dirty_from_presets();
|
||||
wxGetApp().preset_bundle->update_filament_info_to_app_config(*wxGetApp().app_config);
|
||||
update();
|
||||
wxGetApp().plater()->on_config_change(cfg_new);
|
||||
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
|
||||
#include <wx/sizer.h>
|
||||
|
||||
using namespace Slic3r::GUI;
|
||||
|
||||
int scale(const int val) { return val * Slic3r::GUI::wxGetApp().em_unit() / 10; }
|
||||
int ITEM_WIDTH() { return scale(30); }
|
||||
static const wxColour text_color = wxColour(107, 107, 107, 255);
|
||||
|
@ -253,7 +255,7 @@ WipingPanel::WipingPanel(wxWindow* parent, const std::vector<float>& matrix, con
|
|||
|
||||
for (unsigned int j = 0; j < m_number_of_extruders; ++j) {
|
||||
#ifdef _WIN32
|
||||
wxTextCtrl* text = new wxTextCtrl(m_page_advanced, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(ITEM_WIDTH(), -1), wxTE_CENTER | wxBORDER_NONE);
|
||||
wxTextCtrl* text = new wxTextCtrl(m_page_advanced, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(ITEM_WIDTH(), -1), wxTE_CENTER | wxBORDER_NONE | wxTE_PROCESS_ENTER);
|
||||
update_ui(text);
|
||||
edit_boxes.back().push_back(text);
|
||||
#else
|
||||
|
@ -272,12 +274,27 @@ WipingPanel::WipingPanel(wxWindow* parent, const std::vector<float>& matrix, con
|
|||
wxString str = edit_boxes[i][j]->GetValue();
|
||||
int value = wxAtoi(str);
|
||||
if (value > MAX_FLUSH_VALUE) {
|
||||
value = MAX_FLUSH_VALUE;
|
||||
str = wxString::Format(("%d"), MAX_FLUSH_VALUE);
|
||||
edit_boxes[i][j]->SetValue(str);
|
||||
}
|
||||
});
|
||||
|
||||
auto on_apply_text_modify = [this, i, j](wxEvent &e) {
|
||||
wxString str = edit_boxes[i][j]->GetValue();
|
||||
int value = wxAtoi(str);
|
||||
if (value < int(m_extra_flush_volume)) {
|
||||
wxGetApp().plater();
|
||||
str = wxString::Format(("%d"), int(m_extra_flush_volume));
|
||||
edit_boxes[i][j]->SetValue(str);
|
||||
MessageDialog dlg(nullptr,
|
||||
_L("The flush volume is less than the minimum value and will be automatically set to the minimum value."),
|
||||
_L("Warning"), wxICON_WARNING | wxOK);
|
||||
dlg.ShowModal();
|
||||
}
|
||||
};
|
||||
|
||||
edit_boxes[i][j]->Bind(wxEVT_TEXT_ENTER, on_apply_text_modify);
|
||||
edit_boxes[i][j]->Bind(wxEVT_KILL_FOCUS, on_apply_text_modify);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue