mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-28 05:12:27 +00:00
Merge branch 'main' into belt/baseChanges
This commit is contained in:
@@ -876,54 +876,6 @@ struct DynamicFilamentList : DynamicList
|
||||
}
|
||||
};
|
||||
|
||||
struct DynamicFilamentList1Based : DynamicFilamentList
|
||||
{
|
||||
void apply_on(Choice *c) override
|
||||
{
|
||||
if (items.empty())
|
||||
update(true);
|
||||
auto cb = dynamic_cast<ComboBox *>(c->window);
|
||||
auto n = cb->GetSelection();
|
||||
cb->Clear();
|
||||
for (auto i : items) {
|
||||
cb->Append(i.first, *i.second);
|
||||
}
|
||||
if (n < cb->GetCount())
|
||||
cb->SetSelection(n);
|
||||
}
|
||||
wxString get_value(int index) override
|
||||
{
|
||||
wxString str;
|
||||
str << index+1;
|
||||
return str;
|
||||
}
|
||||
int index_of(wxString value) override
|
||||
{
|
||||
long n = 0;
|
||||
if(!value.ToLong(&n))
|
||||
return -1;
|
||||
--n;
|
||||
return (n >= 0 && n <= items.size()) ? int(n) : -1;
|
||||
}
|
||||
void update(bool force = false)
|
||||
{
|
||||
items.clear();
|
||||
if (!force && m_choices.empty())
|
||||
return;
|
||||
auto icons = get_extruder_color_icons(true);
|
||||
auto presets = wxGetApp().preset_bundle->filament_presets;
|
||||
for (int i = 0; i < presets.size(); ++i) {
|
||||
wxString str;
|
||||
std::string type;
|
||||
wxGetApp().preset_bundle->filaments.find_preset(presets[i])->get_filament_type(type);
|
||||
str << type;
|
||||
items.push_back({str, i < icons.size() ? icons[i] : nullptr});
|
||||
}
|
||||
DynamicList::update();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// Check if the machine supports Junction Deviation (Marlin firmware with machine_max_junction_deviation > 0)
|
||||
static bool has_junction_deviation(const DynamicPrintConfig* printer_config)
|
||||
{
|
||||
@@ -940,7 +892,6 @@ static bool has_junction_deviation(const DynamicPrintConfig* printer_config)
|
||||
}
|
||||
|
||||
static DynamicFilamentList dynamic_filament_list;
|
||||
static DynamicFilamentList1Based dynamic_filament_list_1_based;
|
||||
|
||||
class AMSCountPopupWindow : public PopupWindow
|
||||
{
|
||||
@@ -1647,9 +1598,9 @@ Sidebar::Sidebar(Plater *parent)
|
||||
{
|
||||
Choice::register_dynamic_list("support_filament", &dynamic_filament_list);
|
||||
Choice::register_dynamic_list("support_interface_filament", &dynamic_filament_list);
|
||||
Choice::register_dynamic_list("wall_filament", &dynamic_filament_list_1_based);
|
||||
Choice::register_dynamic_list("sparse_infill_filament", &dynamic_filament_list_1_based);
|
||||
Choice::register_dynamic_list("solid_infill_filament", &dynamic_filament_list_1_based);
|
||||
Choice::register_dynamic_list("wall_filament", &dynamic_filament_list);
|
||||
Choice::register_dynamic_list("sparse_infill_filament", &dynamic_filament_list);
|
||||
Choice::register_dynamic_list("solid_infill_filament", &dynamic_filament_list);
|
||||
Choice::register_dynamic_list("wipe_tower_filament", &dynamic_filament_list);
|
||||
|
||||
p->scrolled = new wxPanel(this);
|
||||
@@ -3767,7 +3718,6 @@ void Sidebar::show_SEMM_buttons()
|
||||
void Sidebar::update_dynamic_filament_list()
|
||||
{
|
||||
dynamic_filament_list.update();
|
||||
dynamic_filament_list_1_based.update();
|
||||
}
|
||||
|
||||
PlaterPresetComboBox* Sidebar::printer_combox()
|
||||
@@ -6203,6 +6153,23 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
|
||||
}
|
||||
}
|
||||
|
||||
if (load_config && !config_loaded.empty() &&
|
||||
(en_3mf_file_type == En3mfType::From_BBS || en_3mf_file_type == En3mfType::From_Orca) &&
|
||||
file_version < Semver("2.4.0-dev")) {
|
||||
int converted_count = ConfigMigrations::migrate_legacy_feature_filament_defaults(config_loaded);
|
||||
for (ModelObject *model_object : model.objects) {
|
||||
converted_count += ConfigMigrations::migrate_legacy_feature_filament_defaults(model_object->config);
|
||||
for (ModelVolume *model_volume : model_object->volumes)
|
||||
converted_count += ConfigMigrations::migrate_legacy_feature_filament_defaults(model_volume->config);
|
||||
}
|
||||
|
||||
if (converted_count > 0) {
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" << __LINE__ << " "
|
||||
<< boost::format("old 3mf version %1%, migrated %2% feature filament selections from 1 to 0 (Default)")
|
||||
% file_version.to_string() % converted_count;
|
||||
}
|
||||
}
|
||||
|
||||
// plate data
|
||||
if (plate_data.size() > 0) {
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" << __LINE__ << boost::format(", import 3mf UPDATE_GCODE_RESULT \n");
|
||||
|
||||
Reference in New Issue
Block a user