mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-27 19:01:02 +00:00
feat: extend optional printer model warnings to calibration & ams workflows
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
#include "Widgets/Label.hpp"
|
#include "Widgets/Label.hpp"
|
||||||
#include "MsgDialog.hpp"
|
#include "MsgDialog.hpp"
|
||||||
#include "libslic3r/Print.hpp"
|
#include "libslic3r/Print.hpp"
|
||||||
|
#include "PrePrintChecker.hpp"
|
||||||
|
|
||||||
#include "DeviceCore/DevConfig.h"
|
#include "DeviceCore/DevConfig.h"
|
||||||
#include "DeviceCore/DevConfigUtil.h"
|
#include "DeviceCore/DevConfigUtil.h"
|
||||||
@@ -1733,6 +1734,13 @@ void CalibrationPresetPage::update_show_status()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool has_optional_printer_model = DevPrinterConfigUtil::is_optional_printer_model_id(obj_->printer_type);
|
||||||
|
if (PresetBundle *preset_bundle = wxGetApp().preset_bundle) {
|
||||||
|
has_optional_printer_model = has_optional_printer_model ||
|
||||||
|
DevPrinterConfigUtil::is_optional_printer_model_id(
|
||||||
|
preset_bundle->printers.get_edited_preset().get_printer_type(preset_bundle));
|
||||||
|
}
|
||||||
|
|
||||||
//if (is_blocking_printing()) {
|
//if (is_blocking_printing()) {
|
||||||
// show_status(CaliPresetPageStatus::CaliPresetStatusUnsupportedPrinter);
|
// show_status(CaliPresetPageStatus::CaliPresetStatusUnsupportedPrinter);
|
||||||
// return;
|
// return;
|
||||||
@@ -1789,7 +1797,9 @@ void CalibrationPresetPage::update_show_status()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
show_status(CaliPresetPageStatus::CaliPresetStatusNormal);
|
show_status(has_optional_printer_model ?
|
||||||
|
CaliPresetPageStatus::CaliPresetStatusOptionalPrinterModel :
|
||||||
|
CaliPresetPageStatus::CaliPresetStatusNormal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1843,6 +1853,10 @@ void CalibrationPresetPage::show_status(CaliPresetPageStatus status)
|
|||||||
Layout();
|
Layout();
|
||||||
Fit();
|
Fit();
|
||||||
}
|
}
|
||||||
|
else if (status == CaliPresetPageStatus::CaliPresetStatusOptionalPrinterModel) {
|
||||||
|
update_print_status_msg(PrePrintChecker::get_pre_state_msg(PrintDialogStatus::PrintStatusOptionalPrinterModel), true);
|
||||||
|
Enable_Send_Button(true);
|
||||||
|
}
|
||||||
else if (status == CaliPresetPageStatus::CaliPresetStatusNoUserLogin) {
|
else if (status == CaliPresetPageStatus::CaliPresetStatusNoUserLogin) {
|
||||||
wxString msg_text = _L("No login account, only printers in LAN mode are displayed.");
|
wxString msg_text = _L("No login account, only printers in LAN mode are displayed.");
|
||||||
update_print_status_msg(msg_text, false);
|
update_print_status_msg(msg_text, false);
|
||||||
|
|||||||
@@ -152,7 +152,8 @@ enum CaliPresetPageStatus
|
|||||||
CaliPresetStatusInConnecting,
|
CaliPresetStatusInConnecting,
|
||||||
CaliPresetStatusFilamentIncompatible,
|
CaliPresetStatusFilamentIncompatible,
|
||||||
CaliPresetStatusLanModeSDcardNotAvailable,
|
CaliPresetStatusLanModeSDcardNotAvailable,
|
||||||
CaliPresetStatusDifferentNozzleDiameters
|
CaliPresetStatusDifferentNozzleDiameters,
|
||||||
|
CaliPresetStatusOptionalPrinterModel
|
||||||
};
|
};
|
||||||
|
|
||||||
class CalibrationPresetPage : public CalibrationWizardPage
|
class CalibrationPresetPage : public CalibrationWizardPage
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ public:
|
|||||||
void add_with_checkbox(PrintDialogStatus state, wxString msg, wxString checkbox_label, bool checked, std::function<void(bool)> checkbox_callback);
|
void add_with_checkbox(PrintDialogStatus state, wxString msg, wxString checkbox_label, bool checked, std::function<void(bool)> checkbox_callback);
|
||||||
static ::std::string get_print_status_info(PrintDialogStatus status);
|
static ::std::string get_print_status_info(PrintDialogStatus status);
|
||||||
|
|
||||||
wxString get_pre_state_msg(PrintDialogStatus status);
|
static wxString get_pre_state_msg(PrintDialogStatus status);
|
||||||
static bool is_error(PrintDialogStatus status) { return (PrintStatusErrorBegin < status) && (PrintStatusErrorEnd > status); };
|
static bool is_error(PrintDialogStatus status) { return (PrintStatusErrorBegin < status) && (PrintStatusErrorEnd > status); };
|
||||||
static bool is_error_printer(PrintDialogStatus status) { return (PrintStatusPrinterErrorBegin < status) && (PrintStatusPrinterErrorEnd > status); };
|
static bool is_error_printer(PrintDialogStatus status) { return (PrintStatusPrinterErrorBegin < status) && (PrintStatusPrinterErrorEnd > status); };
|
||||||
static bool is_error_filament(PrintDialogStatus status) { return (PrintStatusFilamentErrorBegin < status) && (PrintStatusFilamentErrorEnd > status); };
|
static bool is_error_filament(PrintDialogStatus status) { return (PrintStatusFilamentErrorBegin < status) && (PrintStatusFilamentErrorEnd > status); };
|
||||||
|
|||||||
@@ -1742,6 +1742,8 @@ void SyncAmsInfoDialog::show_status(PrintDialogStatus status, std::vector<wxStri
|
|||||||
update_print_status_msg(msg_text, true, true);
|
update_print_status_msg(msg_text, true, true);
|
||||||
} else if (status == PrintDialogStatus::PrintStatusAmsMappingSuccess) {
|
} else if (status == PrintDialogStatus::PrintStatusAmsMappingSuccess) {
|
||||||
update_print_status_msg(wxEmptyString, false, false);
|
update_print_status_msg(wxEmptyString, false, false);
|
||||||
|
} else if (status == PrintDialogStatus::PrintStatusOptionalPrinterModel) {
|
||||||
|
update_print_status_msg(PrePrintChecker::get_pre_state_msg(PrintDialogStatus::PrintStatusOptionalPrinterModel), true, true);
|
||||||
} else if (status == PrintDialogStatus::PrintStatusAmsMappingInvalid) {
|
} else if (status == PrintDialogStatus::PrintStatusAmsMappingInvalid) {
|
||||||
update_print_status_msg(wxEmptyString, true, false);
|
update_print_status_msg(wxEmptyString, true, false);
|
||||||
} else if (status == PrintDialogStatus::PrintStatusAmsMappingMixInvalid) {
|
} else if (status == PrintDialogStatus::PrintStatusAmsMappingMixInvalid) {
|
||||||
@@ -2263,6 +2265,18 @@ void SyncAmsInfoDialog::update_show_status()
|
|||||||
|
|
||||||
reset_timeout();
|
reset_timeout();
|
||||||
|
|
||||||
|
bool has_optional_printer_model = DevPrinterConfigUtil::is_optional_printer_model_id(obj_->printer_type);
|
||||||
|
if (m_print_type == PrintFromType::FROM_NORMAL) {
|
||||||
|
if (PresetBundle *preset_bundle = wxGetApp().preset_bundle) {
|
||||||
|
has_optional_printer_model = has_optional_printer_model ||
|
||||||
|
DevPrinterConfigUtil::is_optional_printer_model_id(
|
||||||
|
preset_bundle->printers.get_edited_preset().get_printer_type(preset_bundle));
|
||||||
|
}
|
||||||
|
} else if (m_print_type == PrintFromType::FROM_SDCARD_VIEW && !m_required_data_plate_data_list.empty()) {
|
||||||
|
has_optional_printer_model = has_optional_printer_model ||
|
||||||
|
DevPrinterConfigUtil::is_optional_printer_model_id(m_required_data_plate_data_list[m_print_plate_idx]->printer_model_id);
|
||||||
|
}
|
||||||
|
|
||||||
if (!obj_->GetConfig()->SupportPrintAllPlates() && m_print_plate_idx == PLATE_ALL_IDX) {
|
if (!obj_->GetConfig()->SupportPrintAllPlates() && m_print_plate_idx == PLATE_ALL_IDX) {
|
||||||
show_status(PrintDialogStatus::PrintStatusNotSupportedPrintAll);
|
show_status(PrintDialogStatus::PrintStatusNotSupportedPrintAll);
|
||||||
return;
|
return;
|
||||||
@@ -2356,6 +2370,9 @@ void SyncAmsInfoDialog::update_show_status()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (has_optional_printer_model)
|
||||||
|
show_status(PrintDialogStatus::PrintStatusOptionalPrinterModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SyncAmsInfoDialog::has_timelapse_warning()
|
bool SyncAmsInfoDialog::has_timelapse_warning()
|
||||||
|
|||||||
Reference in New Issue
Block a user