Line type by default for single extruder single material (#11397)
Some checks are pending
Build all / Build Linux (push) Waiting to run
Build all / Build Non-Linux (push) Waiting to run
Build all / Unit Tests (push) Blocked by required conditions
Build all / Flatpak (push) Waiting to run

* line type by default single extruder

* Defautl to color print if use multicolor

* Update condition for setting view type in GCodeViewer

* Refine default view type selection in GCodeViewer

Improves logic for selecting the default view type based on nozzle and filament preset counts. Now selects 'Summary' for multiple nozzles, 'ColorPrint' for single nozzle with multiple filaments, and 'FeatureType' otherwise.

* Refactor multimaterial detection in GCodeViewer

Introduced a 'multimaterial' boolean to clarify logic for detecting multiple filament presets. This improves readability and maintains consistent behavior when setting the view type based on extruder and filament count.
This commit is contained in:
Rodrigo Faselli 2025-12-18 13:55:19 -03:00 committed by GitHub
parent ad7fe3785a
commit 29f4e66715
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -870,15 +870,23 @@ void GCodeViewer::init(ConfigOptionMode mode, PresetBundle* preset_bundle)
if (preset_bundle)
m_nozzle_nums = preset_bundle->get_printer_extruder_count();
bool multimaterial = preset_bundle->filament_presets.empty() ? 0 : preset_bundle->filament_presets.size() > 1;
// set to color print by default if use multi extruders
if (m_nozzle_nums > 1) {
m_view_type_sel = std::distance(view_type_items.begin(),std::find(view_type_items.begin(), view_type_items.end(), EViewType::Summary));
m_view_type_sel = std::distance(view_type_items.begin(),
std::find(view_type_items.begin(), view_type_items.end(), EViewType::Summary));
set_view_type(EViewType::Summary);
} else {
m_view_type_sel = std::distance(view_type_items.begin(),std::find(view_type_items.begin(), view_type_items.end(), EViewType::ColorPrint));
} else if (multimaterial) {
m_view_type_sel = std::distance(view_type_items.begin(),
std::find(view_type_items.begin(), view_type_items.end(), EViewType::ColorPrint));
set_view_type(EViewType::ColorPrint);
} else {
m_view_type_sel = std::distance(view_type_items.begin(),
std::find(view_type_items.begin(), view_type_items.end(), EViewType::FeatureType));
set_view_type(EViewType::FeatureType);
}
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": finished");
}