mirror of
https://github.com/QIDITECH/QIDISlicer.git
synced 2026-01-30 23:48:44 +03:00
Merge branch 'master' of https://github.com/QIDITECH/QIDISlicer
This commit is contained in:
@@ -831,7 +831,7 @@ void GUI_App::post_init()
|
|||||||
// preset_updater->sync downloads profile updates on background so it must begin after config wizard finished.
|
// preset_updater->sync downloads profile updates on background so it must begin after config wizard finished.
|
||||||
bool cw_showed = this->config_wizard_startup();
|
bool cw_showed = this->config_wizard_startup();
|
||||||
this->preset_updater->sync(preset_bundle, this);
|
this->preset_updater->sync(preset_bundle, this);
|
||||||
//B52
|
//B57
|
||||||
//if (! cw_showed) {
|
//if (! cw_showed) {
|
||||||
// // The CallAfter is needed as well, without it, GL extensions did not show.
|
// // The CallAfter is needed as well, without it, GL extensions did not show.
|
||||||
// // Also, we only want to show this when the wizard does not, so the new user
|
// // Also, we only want to show this when the wizard does not, so the new user
|
||||||
|
|||||||
@@ -618,7 +618,11 @@ void ConfigOptionsGroup::back_to_sys_value(const std::string& opt_key)
|
|||||||
void ConfigOptionsGroup::back_to_config_value(const DynamicPrintConfig& config, const std::string& opt_key)
|
void ConfigOptionsGroup::back_to_config_value(const DynamicPrintConfig& config, const std::string& opt_key)
|
||||||
{
|
{
|
||||||
boost::any value;
|
boost::any value;
|
||||||
|
//B52
|
||||||
if (opt_key == "bed_shape") {
|
if (opt_key == "bed_shape") {
|
||||||
|
value = get_config_value(config, "bed_exclude_area");
|
||||||
|
this->change_opt_value("bed_exclude_area", value);
|
||||||
|
OptionsGroup::on_change_OG("bed_exclude_area", value);
|
||||||
for (const std::string& key : {"bed_custom_texture", "bed_custom_model"}) {
|
for (const std::string& key : {"bed_custom_texture", "bed_custom_model"}) {
|
||||||
value = config.opt_string(key);
|
value = config.opt_string(key);
|
||||||
this->change_opt_value(key, value);
|
this->change_opt_value(key, value);
|
||||||
|
|||||||
@@ -629,8 +629,9 @@ void Tab::update_changed_ui()
|
|||||||
{
|
{
|
||||||
auto check_bed_custom_options = [](std::vector<std::string>& keys) {
|
auto check_bed_custom_options = [](std::vector<std::string>& keys) {
|
||||||
size_t old_keys_size = keys.size();
|
size_t old_keys_size = keys.size();
|
||||||
|
//B52
|
||||||
keys.erase(std::remove_if(keys.begin(), keys.end(), [](const std::string& key) {
|
keys.erase(std::remove_if(keys.begin(), keys.end(), [](const std::string& key) {
|
||||||
return key == "bed_custom_texture" || key == "bed_custom_model"; }), keys.end());
|
return key == "bed_custom_texture" || key == "bed_custom_model" || key == "bed_exclude_area"; }), keys.end());
|
||||||
if (old_keys_size != keys.size() && std::find(keys.begin(), keys.end(), "bed_shape") == keys.end())
|
if (old_keys_size != keys.size() && std::find(keys.begin(), keys.end(), "bed_shape") == keys.end())
|
||||||
keys.emplace_back("bed_shape");
|
keys.emplace_back("bed_shape");
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -45,6 +45,8 @@ SCENARIO("Perimeter nesting", "[Perimeters]")
|
|||||||
ExtrusionEntityCollection loops;
|
ExtrusionEntityCollection loops;
|
||||||
ExtrusionEntityCollection gap_fill;
|
ExtrusionEntityCollection gap_fill;
|
||||||
ExPolygons fill_expolygons;
|
ExPolygons fill_expolygons;
|
||||||
|
//B56
|
||||||
|
ExPolygons fill_expolygons_no_overlap;
|
||||||
Flow flow(1., 1., 1.);
|
Flow flow(1., 1., 1.);
|
||||||
PerimeterGenerator::Parameters perimeter_generator_params(
|
PerimeterGenerator::Parameters perimeter_generator_params(
|
||||||
1., // layer height
|
1., // layer height
|
||||||
@@ -61,6 +63,7 @@ SCENARIO("Perimeter nesting", "[Perimeters]")
|
|||||||
// if (config.perimeter_generator == PerimeterGeneratorType::Arachne)
|
// if (config.perimeter_generator == PerimeterGeneratorType::Arachne)
|
||||||
// PerimeterGenerator::process_arachne();
|
// PerimeterGenerator::process_arachne();
|
||||||
// else
|
// else
|
||||||
|
//B56
|
||||||
PerimeterGenerator::process_classic(
|
PerimeterGenerator::process_classic(
|
||||||
// input:
|
// input:
|
||||||
perimeter_generator_params,
|
perimeter_generator_params,
|
||||||
@@ -71,7 +74,7 @@ SCENARIO("Perimeter nesting", "[Perimeters]")
|
|||||||
upper_layer_polygons_cache,
|
upper_layer_polygons_cache,
|
||||||
lower_layer_polygons_cache,
|
lower_layer_polygons_cache,
|
||||||
// output:
|
// output:
|
||||||
loops, gap_fill, fill_expolygons);
|
loops, gap_fill, fill_expolygons,fill_expolygons_no_overlap);
|
||||||
|
|
||||||
THEN("expected number of collections") {
|
THEN("expected number of collections") {
|
||||||
REQUIRE(loops.entities.size() == data.expolygons.size());
|
REQUIRE(loops.entities.size() == data.expolygons.size());
|
||||||
|
|||||||
Reference in New Issue
Block a user