FIX: only display used filament on filament dialog
jira: none Change-Id: Id643d1efad26eb2719f873543c2e451fe59dc5bb
This commit is contained in:
parent
2aed1142ec
commit
1d4ce2bad5
|
@ -41,7 +41,11 @@ wxColour hex_to_color(const std::string &hex)
|
|||
return wxColour(r, g, b, a);
|
||||
}
|
||||
|
||||
FilamentMapDialog::FilamentMapDialog(wxWindow *parent, const DynamicPrintConfig *config, const std::vector<int> &filament_map, bool is_auto)
|
||||
FilamentMapDialog::FilamentMapDialog(wxWindow *parent,
|
||||
const DynamicPrintConfig *config,
|
||||
const std::vector<int> &filament_map,
|
||||
const std::vector<int> &extruders,
|
||||
bool is_auto)
|
||||
: wxDialog(parent, wxID_ANY, _L("Filament arrangement method of plate"), wxDefaultPosition, wxSize(2000, 1500))
|
||||
, m_config(config)
|
||||
, m_filament_map(filament_map)
|
||||
|
@ -71,6 +75,10 @@ FilamentMapDialog::FilamentMapDialog(wxWindow *parent, const DynamicPrintConfig
|
|||
|
||||
std::vector<std::string> filament_color = config->option<ConfigOptionStrings>("filament_colour")->values;
|
||||
for (size_t i = 0; i < filament_map.size(); ++i) {
|
||||
auto iter = std::find(extruders.begin(), extruders.end(), i + 1);
|
||||
if (iter == extruders.end())
|
||||
continue;
|
||||
|
||||
if (filament_map[i] == 1) {
|
||||
m_left_panel->AddColorBlock(hex_to_color(filament_color[i]), i + 1);
|
||||
}
|
||||
|
|
|
@ -15,7 +15,11 @@ class DragDropPanel;
|
|||
class FilamentMapDialog : public wxDialog
|
||||
{
|
||||
public:
|
||||
FilamentMapDialog(wxWindow *parent, const DynamicPrintConfig *config, const std::vector<int> &filament_map, bool is_auto);
|
||||
FilamentMapDialog(wxWindow *parent,
|
||||
const DynamicPrintConfig *config,
|
||||
const std::vector<int> &filament_map,
|
||||
const std::vector<int> &extruders,
|
||||
bool is_auto);
|
||||
|
||||
bool is_auto() const;
|
||||
const std::vector<int>& get_filament_maps() { return m_filament_map; }
|
||||
|
|
|
@ -14345,7 +14345,7 @@ void Plater::open_platesettings_dialog(wxCommandEvent& evt) {
|
|||
void Plater::open_filament_map_setting_dialog(wxCommandEvent &evt)
|
||||
{
|
||||
PartPlate* curr_plate = p->partplate_list.get_curr_plate();
|
||||
FilamentMapDialog filament_dlg(this, config(), curr_plate->get_filament_maps(), curr_plate->get_filament_map_mode() == FilamentMapMode::fmmAuto);
|
||||
FilamentMapDialog filament_dlg(this, config(), curr_plate->get_filament_maps(), curr_plate->get_extruders(true), curr_plate->get_filament_map_mode() == FilamentMapMode::fmmAuto);
|
||||
if (filament_dlg.ShowModal() == wxID_OK) {
|
||||
std::vector<int> new_filament_maps = filament_dlg.get_filament_maps();
|
||||
std::vector<int> old_filament_maps = curr_plate->get_filament_maps();
|
||||
|
|
Loading…
Reference in New Issue