ENH: add wiki link for mixuse of pla and petg

and add wiki link for tpu and brittle materials
jira: none

Change-Id: I15202158cc2ff9b710e80e181bcdf9659e93ff75
(cherry picked from commit a967c41edcc2489e2b348637e4cdfcefa22b2914)
This commit is contained in:
zhimin.zeng
2025-02-07 20:58:09 +08:00
committed by Noisyfox
parent 44fe451dc3
commit 7f6d45ecfd
3 changed files with 35 additions and 8 deletions

View File

@@ -10133,10 +10133,27 @@ void GLCanvas3D::_set_warning_notification(EWarning warning, bool state)
switch (error) switch (error)
{ {
case PLATER_WARNING: case PLATER_WARNING:
if (state) if (warning == EWarning::MixUsePLAAndPETG) {
notification_manager.push_plater_warning_notification(text); if (state) {
else notification_manager.push_slicing_customize_error_notification(NotificationType::BBLMixUsePLAAndPETG, NotificationLevel::WarningNotificationLevel, text, _u8L("Click Wiki for help."),
notification_manager.close_plater_warning_notification(text); [](wxEvtHandler*) {
std::string language = wxGetApp().app_config->get("language");
wxString region = L"en";
if (language.find("zh") == 0)
region = L"zh";
wxGetApp().open_browser_with_warning_dialog(wxString::Format(L"https://wiki.bambulab.com/%s/filament-acc/filament/h2d-pla-and-petg-mutual-support", region));
return false;
});
}
else
notification_manager.close_slicing_customize_error_notification(NotificationType::BBLMixUsePLAAndPETG, NotificationLevel::WarningNotificationLevel);
}
else {
if (state)
notification_manager.push_plater_warning_notification(text);
else
notification_manager.close_plater_warning_notification(text);
}
break; break;
case PLATER_ERROR: case PLATER_ERROR:
if (warning == EWarning::LeftExtruderPrintableError) { if (warning == EWarning::LeftExtruderPrintableError) {
@@ -10191,7 +10208,15 @@ void GLCanvas3D::_set_warning_notification(EWarning warning, bool state)
} }
if (warning == EWarning::FilamentPrintableError) { if (warning == EWarning::FilamentPrintableError) {
if (state) if (state)
notification_manager.push_slicing_customize_error_notification(NotificationType::BBLFilamentPrintableError, NotificationLevel::ErrorNotificationLevel, text); notification_manager.push_slicing_customize_error_notification(NotificationType::BBLFilamentPrintableError, NotificationLevel::ErrorNotificationLevel, text, _u8L("Click Wiki for help."),
[](wxEvtHandler*) {
std::string language = wxGetApp().app_config->get("language");
wxString region = L"en";
if (language.find("zh") == 0)
region = L"zh";
wxGetApp().open_browser_with_warning_dialog(wxString::Format(L"https://wiki.bambulab.com/%s/filament-acc/filament/h2d-filament-config-limit", region));
return false;
});
else else
notification_manager.close_slicing_customize_error_notification(NotificationType::BBLFilamentPrintableError, NotificationLevel::ErrorNotificationLevel); notification_manager.close_slicing_customize_error_notification(NotificationType::BBLFilamentPrintableError, NotificationLevel::ErrorNotificationLevel);
} }

View File

@@ -1957,10 +1957,11 @@ void NotificationManager::close_general_error_notification(const std::string& te
} }
} }
void NotificationManager::push_slicing_customize_error_notification(NotificationType type, NotificationLevel level, const std::string &text) void NotificationManager::push_slicing_customize_error_notification(NotificationType type, NotificationLevel level, const std::string &text, const std::string &hypertext, std::function<bool(wxEvtHandler *)> callback)
{ {
set_all_slicing_errors_gray(false); set_all_slicing_errors_gray(false);
push_notification_data({type, level, 0, _u8L("Error:") + "\n" + text}, 0); std::string prefix_msg = level == NotificationLevel::WarningNotificationLevel ? _u8L("Warning:") : _u8L("Error:");
push_notification_data({type, level, 0, prefix_msg + "\n" + text, hypertext, callback}, 0);
set_slicing_progress_hidden(); set_slicing_progress_hidden();
} }

View File

@@ -158,6 +158,7 @@ enum class NotificationType
BBLSliceLimitError, BBLSliceLimitError,
BBLSliceMultiExtruderHeightOutside, BBLSliceMultiExtruderHeightOutside,
BBLBedFilamentIncompatible, BBLBedFilamentIncompatible,
BBLMixUsePLAAndPETG,
NotificationTypeCount NotificationTypeCount
}; };
@@ -242,7 +243,7 @@ public:
void close_plater_error_notification(const std::string& text); void close_plater_error_notification(const std::string& text);
void close_plater_warning_notification(const std::string& text); void close_plater_warning_notification(const std::string& text);
// GCode exceeds the printing range of the extruder // GCode exceeds the printing range of the extruder
void push_slicing_customize_error_notification(NotificationType type, NotificationLevel level, const std::string &text); void push_slicing_customize_error_notification(NotificationType type, NotificationLevel level, const std::string &text, const std::string &hypertext = "", std::function<bool(wxEvtHandler*)> callback = std::function<bool(wxEvtHandler*)>());
void close_slicing_customize_error_notification(NotificationType type, NotificationLevel level); void close_slicing_customize_error_notification(NotificationType type, NotificationLevel level);
// Object warning with ObjectID, closes when object is deleted. ID used is of object not print like in slicing warning. // Object warning with ObjectID, closes when object is deleted. ID used is of object not print like in slicing warning.