notifications: changed some plater warnings into errors, fixed not showing plater warnings in preview.

This commit is contained in:
David Kocik 2020-09-21 13:47:18 +02:00
parent a47178557f
commit 661534042b
3 changed files with 11 additions and 9 deletions

View File

@ -628,8 +628,8 @@ void GLCanvas3D::WarningTexture::activate(WarningTexture::Warning warning, bool
bool error = false; bool error = false;
switch (warning) { switch (warning) {
case ObjectOutside: text = L("An object outside the print area was detected."); break; case ObjectOutside: text = L("An object outside the print area was detected."); break;
case ToolpathOutside: text = L("A toolpath outside the print area was detected."); break; case ToolpathOutside: text = L("A toolpath outside the print area was detected."); error = true; break;
case SlaSupportsOutside: text = L("SLA supports outside the print area were detected."); break; case SlaSupportsOutside: text = L("SLA supports outside the print area were detected."); error = true; break;
case SomethingNotShown: text = L("Some objects are not visible."); break; case SomethingNotShown: text = L("Some objects are not visible."); break;
case ObjectClashed: case ObjectClashed:
text = L( "An object outside the print area was detected.\n" text = L( "An object outside the print area was detected.\n"
@ -644,7 +644,7 @@ void GLCanvas3D::WarningTexture::activate(WarningTexture::Warning warning, bool
wxGetApp().plater()->get_notification_manager()->push_plater_warning_notification(text, *(wxGetApp().plater()->get_current_canvas3D())); wxGetApp().plater()->get_notification_manager()->push_plater_warning_notification(text, *(wxGetApp().plater()->get_current_canvas3D()));
} else { } else {
if (error) if (error)
wxGetApp().plater()->get_notification_manager()->close_plater_error_notification(); wxGetApp().plater()->get_notification_manager()->close_plater_error_notification(text);
else else
wxGetApp().plater()->get_notification_manager()->close_plater_warning_notification(text); wxGetApp().plater()->get_notification_manager()->close_plater_warning_notification(text);
} }

View File

@ -56,8 +56,7 @@ NotificationManager::PopNotification::~PopNotification()
} }
NotificationManager::PopNotification::RenderResult NotificationManager::PopNotification::render(GLCanvas3D& canvas, const float& initial_y) NotificationManager::PopNotification::RenderResult NotificationManager::PopNotification::render(GLCanvas3D& canvas, const float& initial_y)
{ {
if (!m_initialized) if (!m_initialized) {
{
init(); init();
} }
if (m_finished) if (m_finished)
@ -682,11 +681,13 @@ void NotificationManager::push_plater_error_notification(const std::string& text
void NotificationManager::push_plater_warning_notification(const std::string& text, GLCanvas3D& canvas) void NotificationManager::push_plater_warning_notification(const std::string& text, GLCanvas3D& canvas)
{ {
push_notification_data({ NotificationType::PlaterWarning, NotificationLevel::WarningNotification, 0, _u8L("WARNING:") + "\n" + text }, canvas, 0); push_notification_data({ NotificationType::PlaterWarning, NotificationLevel::WarningNotification, 0, _u8L("WARNING:") + "\n" + text }, canvas, 0);
// dissaper if in preview
set_in_preview(m_in_preview);
} }
void NotificationManager::close_plater_error_notification() void NotificationManager::close_plater_error_notification(const std::string& text)
{ {
for (PopNotification* notification : m_pop_notifications) { for (PopNotification* notification : m_pop_notifications) {
if (notification->get_type() == NotificationType::PlaterError) { if (notification->get_type() == NotificationType::PlaterError && notification->compare_text(_u8L("ERROR:") + "\n" + text)) {
notification->close(); notification->close();
} }
} }

View File

@ -220,7 +220,8 @@ public:
void compare_warning_oids(const std::vector<size_t>& living_oids); void compare_warning_oids(const std::vector<size_t>& living_oids);
void push_plater_error_notification(const std::string& text, GLCanvas3D& canvas); void push_plater_error_notification(const std::string& text, GLCanvas3D& canvas);
void push_plater_warning_notification(const std::string& text, GLCanvas3D& canvas); void push_plater_warning_notification(const std::string& text, GLCanvas3D& canvas);
void close_plater_error_notification(); // Closes error or warning of same 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);
// creates special notification slicing complete // creates special notification slicing complete
// if large = true prints printing time and export button // if large = true prints printing time and export button
@ -250,7 +251,7 @@ private:
bool m_hovered { false }; bool m_hovered { false };
//timestamps used for slining finished - notification could be gone so it needs to be stored here //timestamps used for slining finished - notification could be gone so it needs to be stored here
std::unordered_set<int> m_used_timestamps; std::unordered_set<int> m_used_timestamps;
bool m_in_preview; bool m_in_preview { false };
//prepared (basic) notifications //prepared (basic) notifications
const std::vector<NotificationData> basic_notifications = { const std::vector<NotificationData> basic_notifications = {