Changed ToolpathOuside error notification from plater to slicing error notification type so it is grayed out correctly
This commit is contained in:
parent
9118de4e3c
commit
c140974bf4
3 changed files with 37 additions and 12 deletions
|
@ -6314,31 +6314,47 @@ std::vector<float> GLCanvas3D::_parse_colors(const std::vector<std::string>& col
|
||||||
#if ENABLE_WARNING_TEXTURE_REMOVAL
|
#if ENABLE_WARNING_TEXTURE_REMOVAL
|
||||||
void GLCanvas3D::_set_warning_notification(EWarning warning, bool state)
|
void GLCanvas3D::_set_warning_notification(EWarning warning, bool state)
|
||||||
{
|
{
|
||||||
|
enum ErrorType{
|
||||||
|
PLATER_WARNING,
|
||||||
|
PLATER_ERROR,
|
||||||
|
SLICING_ERROR
|
||||||
|
};
|
||||||
std::string text;
|
std::string text;
|
||||||
bool error = false;
|
ErrorType error = ErrorType::PLATER_WARNING;
|
||||||
switch (warning) {
|
switch (warning) {
|
||||||
case EWarning::ObjectOutside: text = _u8L("An object outside the print area was detected."); break;
|
case EWarning::ObjectOutside: text = _u8L("An object outside the print area was detected."); break;
|
||||||
case EWarning::ToolpathOutside: text = _u8L("A toolpath outside the print area was detected."); error = true; break;
|
case EWarning::ToolpathOutside: text = _u8L("A toolpath outside the print area was detected."); error = ErrorType::SLICING_ERROR; break;
|
||||||
case EWarning::SlaSupportsOutside: text = _u8L("SLA supports outside the print area were detected."); error = true; break;
|
case EWarning::SlaSupportsOutside: text = _u8L("SLA supports outside the print area were detected."); error = ErrorType::PLATER_ERROR; break;
|
||||||
case EWarning::SomethingNotShown: text = _u8L("Some objects are not visible."); break;
|
case EWarning::SomethingNotShown: text = _u8L("Some objects are not visible."); break;
|
||||||
case EWarning::ObjectClashed:
|
case EWarning::ObjectClashed:
|
||||||
text = _u8L("An object outside the print area was detected.\n"
|
text = _u8L("An object outside the print area was detected.\n"
|
||||||
"Resolve the current problem to continue slicing.");
|
"Resolve the current problem to continue slicing.");
|
||||||
error = true;
|
error = ErrorType::PLATER_ERROR;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
auto& notification_manager = *wxGetApp().plater()->get_notification_manager();
|
auto& notification_manager = *wxGetApp().plater()->get_notification_manager();
|
||||||
if (state) {
|
switch (error)
|
||||||
if (error)
|
{
|
||||||
notification_manager.push_plater_error_notification(text);
|
case PLATER_WARNING:
|
||||||
else
|
if (state)
|
||||||
notification_manager.push_plater_warning_notification(text);
|
notification_manager.push_plater_warning_notification(text);
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (error)
|
|
||||||
notification_manager.close_plater_error_notification(text);
|
|
||||||
else
|
else
|
||||||
notification_manager.close_plater_warning_notification(text);
|
notification_manager.close_plater_warning_notification(text);
|
||||||
|
break;
|
||||||
|
case PLATER_ERROR:
|
||||||
|
if (state)
|
||||||
|
notification_manager.push_plater_error_notification(text);
|
||||||
|
else
|
||||||
|
notification_manager.close_plater_error_notification(text);
|
||||||
|
break;
|
||||||
|
case SLICING_ERROR:
|
||||||
|
if (state)
|
||||||
|
notification_manager.push_slicing_error_notification(text);
|
||||||
|
else
|
||||||
|
notification_manager.close_slicing_error_notification(text);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -1072,6 +1072,14 @@ void NotificationManager::close_slicing_errors_and_warnings()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
void NotificationManager::close_slicing_error_notification(const std::string& text)
|
||||||
|
{
|
||||||
|
for (std::unique_ptr<PopNotification>& notification : m_pop_notifications) {
|
||||||
|
if (notification->get_type() == NotificationType::SlicingError && notification->compare_text(_u8L("ERROR:") + "\n" + text)) {
|
||||||
|
notification->close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
void NotificationManager::push_slicing_complete_notification(int timestamp, bool large)
|
void NotificationManager::push_slicing_complete_notification(int timestamp, bool large)
|
||||||
{
|
{
|
||||||
std::string hypertext;
|
std::string hypertext;
|
||||||
|
|
|
@ -125,6 +125,7 @@ public:
|
||||||
// void set_slicing_warning_gray(const std::string& text, bool g);
|
// void set_slicing_warning_gray(const std::string& text, bool g);
|
||||||
// immediately stops showing slicing errors
|
// immediately stops showing slicing errors
|
||||||
void close_slicing_errors_and_warnings();
|
void close_slicing_errors_and_warnings();
|
||||||
|
void close_slicing_error_notification(const std::string& text);
|
||||||
// Release those slicing warnings, which refer to an ObjectID, which is not in the list.
|
// Release those slicing warnings, which refer to an ObjectID, which is not in the list.
|
||||||
// living_oids is expected to be sorted.
|
// living_oids is expected to be sorted.
|
||||||
void remove_slicing_warnings_of_released_objects(const std::vector<ObjectID>& living_oids);
|
void remove_slicing_warnings_of_released_objects(const std::vector<ObjectID>& living_oids);
|
||||||
|
|
Loading…
Reference in a new issue