mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-16 11:17:51 -06:00
ColorPrint improvement
+ Select "Color Print" preview type if it's not after add/delete new color change + Added level heights to the color legend instead of "Color N"
This commit is contained in:
parent
4c8f3f6ea7
commit
f203f6fbd9
6 changed files with 35 additions and 9 deletions
|
@ -3121,8 +3121,8 @@ bool GLCanvas3D::LegendTexture::generate(const GCodePreviewData& preview_data, c
|
|||
auto title = _(preview_data.get_legend_title());
|
||||
|
||||
const auto& config = wxGetApp().preset_bundle->full_config();
|
||||
const int color_print_cnt = config.option<ConfigOptionFloats>("colorprint_heights")->values.size();
|
||||
const GCodePreviewData::LegendItemsList& items = preview_data.get_legend_items(tool_colors, color_print_cnt);
|
||||
const std::vector<double>& color_print_values = config.option<ConfigOptionFloats>("colorprint_heights")->values;
|
||||
const GCodePreviewData::LegendItemsList& items = preview_data.get_legend_items(tool_colors, color_print_values);
|
||||
|
||||
unsigned int items_count = (unsigned int)items.size();
|
||||
if (items_count == 0)
|
||||
|
|
|
@ -397,6 +397,13 @@ void Preview::create_double_slider()
|
|||
auto& config = wxGetApp().preset_bundle->project_config;
|
||||
((config.option<ConfigOptionFloats>("colorprint_heights"))->values) = (m_slider->GetTicksValues());
|
||||
m_schedule_background_process();
|
||||
int type = m_choice_view_type->FindString(_(L("Color Print")));
|
||||
if (m_choice_view_type->GetSelection() != type) {
|
||||
m_choice_view_type->SetSelection(type);
|
||||
if ((0 <= type) && (type < (int)GCodePreviewData::Extrusion::Num_View_Types))
|
||||
m_gcode_preview_data->extrusion.view_type = (GCodePreviewData::Extrusion::EViewType)type;
|
||||
m_preferred_color_mode = "feature";
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -1444,10 +1444,14 @@ void PrusaDoubleSlider::get_size(int *w, int *h)
|
|||
is_horizontal() ? *w -= m_lock_icon_dim : *h -= m_lock_icon_dim;
|
||||
}
|
||||
|
||||
double PrusaDoubleSlider::get_double_value(const SelectedSlider& selection) const
|
||||
double PrusaDoubleSlider::get_double_value(const SelectedSlider& selection)
|
||||
{
|
||||
if (m_values.empty())
|
||||
return 0.0;
|
||||
if (m_values.size() <= m_higher_value) {
|
||||
correct_higher_value();
|
||||
return m_values.back().second;
|
||||
}
|
||||
return m_values[selection == ssLower ? m_lower_value : m_higher_value].second;
|
||||
}
|
||||
|
||||
|
|
|
@ -668,8 +668,8 @@ public:
|
|||
return m_higher_value;
|
||||
}
|
||||
int GetActiveValue() const;
|
||||
double GetLowerValueD() const { return get_double_value(ssLower); }
|
||||
double GetHigherValueD() const { return get_double_value(ssHigher); }
|
||||
double GetLowerValueD() { return get_double_value(ssLower); }
|
||||
double GetHigherValueD() { return get_double_value(ssHigher); }
|
||||
wxSize DoGetBestSize() const override;
|
||||
void SetLowerValue(const int lower_val);
|
||||
void SetHigherValue(const int higher_val);
|
||||
|
@ -729,7 +729,7 @@ protected:
|
|||
wxCoord get_position_from_value(const int value);
|
||||
wxSize get_size();
|
||||
void get_size(int *w, int *h);
|
||||
double get_double_value(const SelectedSlider& selection) const;
|
||||
double get_double_value(const SelectedSlider& selection);
|
||||
|
||||
private:
|
||||
int m_min_value;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue