Skip to content

Commit

Permalink
Continues to push notification when export gcode
Browse files Browse the repository at this point in the history
  • Loading branch information
QIDITECH committed Aug 21, 2023
1 parent 1dad523 commit 74e485d
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 31 deletions.
40 changes: 15 additions & 25 deletions src/slic3r/GUI/NotificationManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -696,11 +696,11 @@ bool NotificationManager::PopNotification::update_state(bool paused, const int64
} else if (m_state != EState::NotFading && m_state != EState::FadingOut && m_state != EState::ClosePending && m_state != EState::Finished && get_duration() != 0 && !paused) {
int64_t up_time = now - m_notification_start;
if (up_time >= get_duration() * 1000) {
if (get_duration_level() == NotificationLevel::ExportingNotificationLevel) {
m_state = EState::Finished;
} else {
m_state = EState::FadingOut;
}
//Y9
if (get_type() == NotificationType::ExportOngoing)
m_state = EState::Exporting;
else
m_state = EState::FadingOut;
m_fading_start = now;
} else {
m_next_render = get_duration() * 1000 - up_time;
Expand Down Expand Up @@ -2847,41 +2847,31 @@ bool NotificationManager::update_notifications(GLCanvas3D& canvas)
// update state of all notif and erase finished
//Y9
bool export_on_going = false;
bool export_finished = false;
std::string message = "12";
std::string message = _u8L("Exporting.");
for (auto it = m_pop_notifications.begin(); it != m_pop_notifications.end();) {
std::unique_ptr<PopNotification>& notification = *it;
request_render |= notification->update_state(hover, time_since_render);
next_render = std::min<int64_t>(next_render, notification->next_render());
//Y9
if (notification->get_data().type == NotificationType::ExportFinished)
{
export_finished = true;
export_on_going = false;
}
if (notification->get_state() == PopNotification::EState::Finished)
if (notification->get_state() == PopNotification::EState::Exporting)
{
if (!export_finished)
{
if (notification->get_data().type == NotificationType::ExportOngoing)
{
message = notification->get_data().text1;
export_on_going = true;
}
}
message = notification->get_data().text1;
export_on_going = true;
it = m_pop_notifications.erase(it);
}
else if (notification->get_state() == PopNotification::EState::Finished)
it = m_pop_notifications.erase(it);
else
++it;
}
//Y9
if (export_on_going)
{
if (message == "Exporting...")
message = "Exporting";
if (message == _u8L("Exporting.") + " . . .")
message = _u8L("Exporting.");
else
message = message + ".";
push_notification(NotificationType::ExportOngoing, NotificationManager::NotificationLevel::ExportingNotificationLevel, message);
message = message + " .";
push_notification(NotificationType::ExportOngoing, NotificationManager::NotificationLevel::ProgressBarNotificationLevel, message);
}

// delayed notifications
Expand Down
7 changes: 2 additions & 5 deletions src/slic3r/GUI/NotificationManager.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,6 @@ class NotificationManager
WarningNotificationLevel,
// Error, no fade-out. Top most position.
ErrorNotificationLevel,
// test
ExportingNotificationLevel,
};

NotificationManager(wxEvtHandler* evt_handler);
Expand Down Expand Up @@ -322,7 +320,8 @@ class NotificationManager
ClosePending, // Requesting Render
Finished, // Requesting Render
Hovered, // Followed by Shown
Paused
Paused,
Exporting
};

PopNotification(const NotificationData &n, NotificationIDProvider &id_provider, wxEvtHandler* evt_handler);
Expand Down Expand Up @@ -383,7 +382,6 @@ class NotificationManager
virtual bool push_background_color();
// used this function instead of reading directly m_data.duration. Some notifications might need to return changing value.
virtual int get_duration() { return m_data.duration; }
virtual NotificationLevel get_duration_level() { return m_data.level; }

const NotificationData m_data;
// For reusing ImGUI windows.
Expand Down Expand Up @@ -866,7 +864,6 @@ class NotificationManager
case NotificationLevel::RegularNotificationLevel: return 10;
case NotificationLevel::PrintInfoNotificationLevel: return 10;
case NotificationLevel::HintNotificationLevel: return 300;
case NotificationLevel::ExportingNotificationLevel: return 1;
default: return 10;
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/slic3r/GUI/Plater.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3463,7 +3463,7 @@ void Plater::priv::export_gcode(fs::path output_path, bool output_path_on_remova
background_process.schedule_export(output_path.string(), output_path_on_removable_media);
//Y9
//notification_manager->push_delayed_notification(NotificationType::ExportOngoing, []() {return true; }, 1000, 0);
notification_manager->push_notification(NotificationType::ExportOngoing, NotificationManager::NotificationLevel::ProgressBarNotificationLevel, "Exporting");
notification_manager->push_notification(NotificationType::ExportOngoing, NotificationManager::NotificationLevel::ProgressBarNotificationLevel, _u8L("Exporting."));
} else {
background_process.schedule_upload(std::move(upload_job));
}
Expand Down

0 comments on commit 74e485d

Please sign in to comment.