diff --git a/resources/icons/notification_cancel.svg b/resources/icons/notification_cancel.svg
new file mode 100644
index 000000000..d849e24c6
--- /dev/null
+++ b/resources/icons/notification_cancel.svg
@@ -0,0 +1,67 @@
+
+
diff --git a/resources/icons/notification_cancel_hover.svg b/resources/icons/notification_cancel_hover.svg
new file mode 100644
index 000000000..746d053e4
--- /dev/null
+++ b/resources/icons/notification_cancel_hover.svg
@@ -0,0 +1,67 @@
+
+
diff --git a/src/imgui/imconfig.h b/src/imgui/imconfig.h
index d52294acd..1ee719288 100644
--- a/src/imgui/imconfig.h
+++ b/src/imgui/imconfig.h
@@ -123,6 +123,8 @@ namespace ImGui
const char ErrorMarker = 0x11;
const char EjectButton = 0x12;
const char EjectHoverButton = 0x13;
+ const char CancelButton = 0x14;
+ const char CancelHoverButton = 0x15;
// void MyFunction(const char* name, const MyMatrix44& v);
}
diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp
index 1ed4b492f..db7af046b 100644
--- a/src/slic3r/GUI/ImGuiWrapper.cpp
+++ b/src/slic3r/GUI/ImGuiWrapper.cpp
@@ -51,7 +51,9 @@ static const std::map font_icons_large = {
{ImGui::EjectButton , "notification_eject_sd" },
{ImGui::EjectHoverButton , "notification_eject_sd_hover" },
{ImGui::WarningMarker , "notification_warning" },
- {ImGui::ErrorMarker , "notification_error" }
+ {ImGui::ErrorMarker , "notification_error" },
+ {ImGui::CancelButton , "notification_cancel" },
+ {ImGui::CancelHoverButton , "notification_cancel_hover" },
};
const ImVec4 ImGuiWrapper::COL_GREY_DARK = { 0.333f, 0.333f, 0.333f, 1.0f };
diff --git a/src/slic3r/GUI/NotificationManager.cpp b/src/slic3r/GUI/NotificationManager.cpp
index a5777cd55..21df0e86b 100644
--- a/src/slic3r/GUI/NotificationManager.cpp
+++ b/src/slic3r/GUI/NotificationManager.cpp
@@ -5,6 +5,7 @@
#include "Plater.hpp"
#include "GLCanvas3D.hpp"
#include "ImGuiWrapper.hpp"
+#include "PrintHostDialogs.hpp"
#include "wxExtensions.hpp"
@@ -776,44 +777,157 @@ void NotificationManager::ProgressBarNotification::init()
m_lines_count++;
m_endlines.push_back(m_endlines.back());
}
+void NotificationManager::ProgressBarNotification::count_spaces()
+{
+ //determine line width
+ m_line_height = ImGui::CalcTextSize("A").y;
+
+ m_left_indentation = m_line_height;
+ if (m_data.level == NotificationLevel::ErrorNotification || m_data.level == NotificationLevel::WarningNotification) {
+ std::string text;
+ text = (m_data.level == NotificationLevel::ErrorNotification ? ImGui::ErrorMarker : ImGui::WarningMarker);
+ float picture_width = ImGui::CalcTextSize(text.c_str()).x;
+ m_left_indentation = picture_width + m_line_height / 2;
+ }
+ m_window_width_offset = m_line_height * (m_has_cancel_button ? 6 : 4);
+ m_window_width = m_line_height * 25;
+}
+
void NotificationManager::ProgressBarNotification::render_text(ImGuiWrapper& imgui, const float win_size_x, const float win_size_y, const float win_pos_x, const float win_pos_y)
{
// line1 - we do not print any more text than what fits on line 1. Line 2 is bar.
ImGui::SetCursorPosX(m_left_indentation);
ImGui::SetCursorPosY(win_size_y / 2 - win_size_y / 6 - m_line_height / 2);
imgui.text(m_text1.substr(0, m_endlines[0]).c_str());
+ if (m_has_cancel_button)
+ render_cancel_button(imgui, win_size_x, win_size_y, win_pos_x, win_pos_y);
render_bar(imgui, win_size_x, win_size_y, win_pos_x, win_pos_y);
+
}
void NotificationManager::ProgressBarNotification::render_bar(ImGuiWrapper& imgui, const float win_size_x, const float win_size_y, const float win_pos_x, const float win_pos_y)
+{
+ ImVec4 orange_color = ImVec4(.99f, .313f, .0f, 1.0f);
+ ImVec4 gray_color = ImVec4(.34f, .34f, .34f, 1.0f);
+ ImVec2 lineEnd = ImVec2(win_pos_x - m_window_width_offset, win_pos_y + win_size_y / 2 + m_line_height / 4);
+ ImVec2 lineStart = ImVec2(win_pos_x - win_size_x + m_left_indentation, win_pos_y + win_size_y / 2 + m_line_height / 4);
+ ImVec2 midPoint = ImVec2(lineStart.x + (lineEnd.x - lineStart.x) * m_percentage, lineStart.y);
+ ImGui::GetWindowDrawList()->AddLine(lineStart, lineEnd, IM_COL32((int)(gray_color.x * 255), (int)(gray_color.y * 255), (int)(gray_color.z * 255), (1.0f * 255.f)), m_line_height * 0.2f);
+ ImGui::GetWindowDrawList()->AddLine(lineStart, midPoint, IM_COL32((int)(orange_color.x * 255), (int)(orange_color.y * 255), (int)(orange_color.z * 255), (1.0f * 255.f)), m_line_height * 0.2f);
+}
+//------PrintHostUploadNotification----------------
+void NotificationManager::PrintHostUploadNotification::set_percentage(float percent)
+{
+ if (m_uj_state == UploadJobState::PB_CANCELLED)
+ return;
+ m_percentage = percent;
+ if (percent >= 1.0f) {
+ m_uj_state = UploadJobState::PB_COMPLETED;
+ m_has_cancel_button = false;
+ } else if (percent < 0.0f) {
+ error();
+ } else {
+ m_uj_state = UploadJobState::PB_PROGRESS;
+ m_has_cancel_button = true;
+ }
+}
+void NotificationManager::PrintHostUploadNotification::render_bar(ImGuiWrapper& imgui, const float win_size_x, const float win_size_y, const float win_pos_x, const float win_pos_y)
{
std::string text;
- switch (m_pb_state) {
- case Slic3r::GUI::NotificationManager::ProgressBarNotification::ProgressBarState::PB_PROGRESS:
+ switch (m_uj_state) {
+ case Slic3r::GUI::NotificationManager::PrintHostUploadNotification::UploadJobState::PB_PROGRESS:
{
- text = std::to_string((int)(m_percentage * 100)) + "%";
- ImVec4 orange_color = ImVec4(.99f, .313f, .0f, 1.0f);
- ImVec4 gray_color = ImVec4(.34f, .34f, .34f, 1.0f);
- ImVec2 lineEnd = ImVec2(win_pos_x - m_window_width_offset, win_pos_y + win_size_y / 2 + m_line_height / 2);
- ImVec2 lineStart = ImVec2(win_pos_x - win_size_x + m_left_indentation + ImGui::CalcTextSize(text.c_str()).x, win_pos_y + win_size_y / 2 + m_line_height / 2);
- ImVec2 midPoint = ImVec2(lineStart.x + (lineEnd.x - lineStart.x) * m_percentage, lineStart.y);
- ImGui::GetWindowDrawList()->AddLine(lineStart, lineEnd, IM_COL32((int)(gray_color.x * 255), (int)(gray_color.y * 255), (int)(gray_color.z * 255), (1.0f * 255.f)), m_line_height * 0.7f);
- ImGui::GetWindowDrawList()->AddLine(lineStart, midPoint, IM_COL32((int)(orange_color.x * 255), (int)(orange_color.y * 255), (int)(orange_color.z * 255), (1.0f * 255.f)), m_line_height * 0.7f);
+ ProgressBarNotification::render_bar(imgui, win_size_x, win_size_y, win_pos_x, win_pos_y);
+ float uploaded = m_file_size / 100 * m_percentage;
+ std::stringstream stream;
+ stream << std::fixed << std::setprecision(3) << (int)(m_percentage * 100) << "% - " << uploaded << " of " << m_file_size << "MB uploaded";
+ text = stream.str();
+ ImGui::SetCursorPosX(m_left_indentation);
+ ImGui::SetCursorPosY(win_size_y / 2 + win_size_y / 6 /*- m_line_height / 4 * 3*/);
break;
}
- case Slic3r::GUI::NotificationManager::ProgressBarNotification::ProgressBarState::PB_ERROR:
+ case Slic3r::GUI::NotificationManager::PrintHostUploadNotification::UploadJobState::PB_ERROR:
text = _u8L("ERROR");
+ ImGui::SetCursorPosX(m_left_indentation);
+ ImGui::SetCursorPosY(win_size_y / 2 + win_size_y / 6 - m_line_height / 2);
break;
- case Slic3r::GUI::NotificationManager::ProgressBarNotification::ProgressBarState::PB_CANCELLED:
+ case Slic3r::GUI::NotificationManager::PrintHostUploadNotification::UploadJobState::PB_CANCELLED:
text = _u8L("CANCELED");
+ ImGui::SetCursorPosX(m_left_indentation);
+ ImGui::SetCursorPosY(win_size_y / 2 + win_size_y / 6 - m_line_height / 2);
break;
- case Slic3r::GUI::NotificationManager::ProgressBarNotification::ProgressBarState::PB_COMPLETED:
+ case Slic3r::GUI::NotificationManager::PrintHostUploadNotification::UploadJobState::PB_COMPLETED:
text = _u8L("COMPLETED");
+ ImGui::SetCursorPosX(m_left_indentation);
+ ImGui::SetCursorPosY(win_size_y / 2 + win_size_y / 6 - m_line_height / 2);
break;
}
- ImGui::SetCursorPosX(m_left_indentation);
- ImGui::SetCursorPosY(win_size_y / 2 + win_size_y / 6 - m_line_height / 2);
+
imgui.text(text.c_str());
+}
+void NotificationManager::PrintHostUploadNotification::render_cancel_button(ImGuiWrapper& imgui, const float win_size_x, const float win_size_y, const float win_pos_x, const float win_pos_y)
+{
+ ImVec2 win_size(win_size_x, win_size_y);
+ ImVec2 win_pos(win_pos_x, win_pos_y);
+ ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(.0f, .0f, .0f, .0f));
+ ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(.0f, .0f, .0f, .0f));
+ Notifications_Internal::push_style_color(ImGuiCol_Text, ImVec4(1.f, 1.f, 1.f, 1.f), m_state == EState::FadingOut, m_current_fade_opacity);
+ Notifications_Internal::push_style_color(ImGuiCol_TextSelectedBg, ImVec4(0, .75f, .75f, 1.f), m_state == EState::FadingOut, m_current_fade_opacity);
+ ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(.0f, .0f, .0f, .0f));
+
+ std::string button_text;
+ button_text = ImGui::CancelButton;
+
+ if (ImGui::IsMouseHoveringRect(ImVec2(win_pos.x - m_line_height * 5.f, win_pos.y),
+ ImVec2(win_pos.x - m_line_height * 2.5f, win_pos.y + win_size.y),
+ true))
+ {
+ button_text = ImGui::CancelHoverButton;
+ // tooltip
+ long time_now = wxGetLocalTime();
+ if (m_hover_time > 0 && m_hover_time < time_now) {
+ ImGui::PushStyleColor(ImGuiCol_PopupBg, ImGuiWrapper::COL_WINDOW_BACKGROUND);
+ ImGui::BeginTooltip();
+ imgui.text(_u8L("Cancel upload") + " " + GUI::shortkey_ctrl_prefix() + "T");
+ ImGui::EndTooltip();
+ ImGui::PopStyleColor();
+ }
+ if (m_hover_time == 0)
+ m_hover_time = time_now;
+ }
+ else
+ m_hover_time = 0;
+
+ ImVec2 button_pic_size = ImGui::CalcTextSize(button_text.c_str());
+ ImVec2 button_size(button_pic_size.x * 1.25f, button_pic_size.y * 1.25f);
+ ImGui::SetCursorPosX(win_size.x - m_line_height * 5.0f);
+ ImGui::SetCursorPosY(win_size.y / 2 - button_size.y);
+ if (imgui.button(button_text.c_str(), button_size.x, button_size.y))
+ {
+ assert(m_evt_handler != nullptr);
+ if (m_evt_handler != nullptr) {
+ auto evt = new PrintHostQueueDialog::Event(GUI::EVT_PRINTHOST_CANCEL, m_job_id, m_job_id);
+ wxQueueEvent(m_evt_handler, evt);
+ }
+ }
+
+ //invisible large button
+ ImGui::SetCursorPosX(win_size.x - m_line_height * 4.625f);
+ ImGui::SetCursorPosY(0);
+ if (imgui.button(" ", m_line_height * 2.f, win_size.y))
+ {
+ assert(m_evt_handler != nullptr);
+ if (m_evt_handler != nullptr) {
+ auto evt = new PrintHostQueueDialog::Event(GUI::EVT_PRINTHOST_CANCEL, m_job_id, m_job_id);
+ wxQueueEvent(m_evt_handler, evt);
+ }
+ }
+ ImGui::PopStyleColor();
+ ImGui::PopStyleColor();
+ ImGui::PopStyleColor();
+ ImGui::PopStyleColor();
+ ImGui::PopStyleColor();
+
}
//------NotificationManager--------
NotificationManager::NotificationManager(wxEvtHandler* evt_handler) :
@@ -1004,40 +1118,47 @@ void NotificationManager::push_exporting_finished_notification(const std::string
NotificationData data{ NotificationType::ExportFinished, NotificationLevel::RegularNotification, on_removable ? 0 : 20, _u8L("Exporting finished.") + "\n" + path };
push_notification_data(std::make_unique(data, m_id_provider, m_evt_handler, on_removable, path, dir_path), 0);
}
-void NotificationManager::push_progress_bar_notification(const std::string& text, float percentage)
+
+void NotificationManager::push_upload_job_notification(wxEvtHandler* evt_handler, int id, float filesize, const std::string& filename, const std::string& host, float percentage)
{
- NotificationData data{ NotificationType::ProgressBar, NotificationLevel::ProgressBarNotification, 0, text };
- push_notification_data(std::make_unique(data, m_id_provider, m_evt_handler, 0), 0);
+ std::string text = PrintHostUploadNotification::get_upload_job_text(id, filename, host);
+ NotificationData data{ NotificationType::PrintHostUpload, NotificationLevel::ProgressBarNotification, 0, text };
+ push_notification_data(std::make_unique(data, m_id_provider, evt_handler, 0, id, filesize), 0);
}
-void NotificationManager::set_progress_bar_percentage(const std::string& text, float percentage)
+void NotificationManager::set_upload_job_notification_percentage(int id, const std::string& filename, const std::string& host, float percentage)
{
+ std::string text = PrintHostUploadNotification::get_upload_job_text(id, filename, host);
bool found = false;
for (std::unique_ptr& notification : m_pop_notifications) {
if (notification->get_type() == NotificationType::ProgressBar && notification->compare_text(text)) {
- dynamic_cast(notification.get())->set_percentage(percentage);
+ dynamic_cast(notification.get())->set_percentage(percentage);
wxGetApp().plater()->get_current_canvas3D()->schedule_extra_frame(0);
found = true;
}
}
+ /*
if (!found) {
- push_progress_bar_notification(text, percentage);
+ push_upload_job_notification(id, filename, host, percentage);
}
+ */
}
-void NotificationManager::progress_bar_show_canceled(const std::string& text)
+void NotificationManager::upload_job_notification_show_canceled(int id, const std::string& filename, const std::string& host)
{
+ std::string text = PrintHostUploadNotification::get_upload_job_text(id, filename, host);
for (std::unique_ptr& notification : m_pop_notifications) {
- if (notification->get_type() == NotificationType::ProgressBar && notification->compare_text(text)) {
- dynamic_cast(notification.get())->cancel();
+ if (notification->get_type() == NotificationType::PrintHostUpload && notification->compare_text(text)) {
+ dynamic_cast(notification.get())->cancel();
wxGetApp().plater()->get_current_canvas3D()->schedule_extra_frame(0);
break;
}
}
}
-void NotificationManager::progress_bar_show_error(const std::string& text)
+void NotificationManager::upload_job_notification_show_error(int id, const std::string& filename, const std::string& host)
{
+ std::string text = PrintHostUploadNotification::get_upload_job_text(id, filename, host);
for (std::unique_ptr& notification : m_pop_notifications) {
- if (notification->get_type() == NotificationType::ProgressBar && notification->compare_text(text)) {
- dynamic_cast(notification.get())->error();
+ if (notification->get_type() == NotificationType::PrintHostUpload && notification->compare_text(text)) {
+ dynamic_cast(notification.get())->error();
wxGetApp().plater()->get_current_canvas3D()->schedule_extra_frame(0);
break;
}
diff --git a/src/slic3r/GUI/NotificationManager.hpp b/src/slic3r/GUI/NotificationManager.hpp
index 2baaf7054..4b32a716f 100644
--- a/src/slic3r/GUI/NotificationManager.hpp
+++ b/src/slic3r/GUI/NotificationManager.hpp
@@ -66,6 +66,8 @@ enum class NotificationType
PlaterWarning,
// Progress bar instead of text.
ProgressBar,
+ // Progress bar with info from Print Host Upload Queue dialog.
+ PrintHostUpload,
// Notification, when Color Change G-code is empty and user try to add color change on DoubleSlider.
EmptyColorChangeCode,
// Notification that custom supports/seams were deleted after mesh repair.
@@ -140,10 +142,10 @@ public:
// Exporting finished, show this information with path, button to open containing folder and if ejectable - eject button
void push_exporting_finished_notification(const std::string& path, const std::string& dir_path, bool on_removable);
// notification with progress bar
- void push_progress_bar_notification(const std::string& text, float percentage = 0);
- void set_progress_bar_percentage(const std::string& text, float percentage);
- void progress_bar_show_canceled(const std::string& text);
- void progress_bar_show_error(const std::string& text);
+ void push_upload_job_notification(wxEvtHandler* evt_handler, int id, float filesize, const std::string& filename, const std::string& host, float percentage = 0);
+ void set_upload_job_notification_percentage(int id, const std::string& filename, const std::string& host, float percentage);
+ void upload_job_notification_show_canceled(int id, const std::string& filename, const std::string& host);
+ void upload_job_notification_show_error(int id, const std::string& filename, const std::string& host);
// Close old notification ExportFinished.
void new_export_began(bool on_removable);
// finds ExportFinished notification and closes it if it was to removable device
@@ -340,45 +342,69 @@ private:
void show() { m_state = EState::Unknown; }
};
+
class ProgressBarNotification : public PopNotification
{
public:
- enum class ProgressBarState
- {
- PB_PROGRESS,
- PB_ERROR,
- PB_CANCELLED,
- PB_COMPLETED
- };
+
ProgressBarNotification(const NotificationData& n, NotificationIDProvider& id_provider, wxEvtHandler* evt_handler, float percentage) : PopNotification(n, id_provider, evt_handler) { set_percentage(percentage); }
- void set_percentage(float percent)
- {
- if (m_pb_state == ProgressBarState::PB_CANCELLED)
- return;
- m_percentage = percent;
- if (percent >= 1.0f)
- m_pb_state = ProgressBarState::PB_COMPLETED;
- else if (percent < 0.0f )
- m_pb_state = ProgressBarState::PB_ERROR;
- else
- m_pb_state = ProgressBarState::PB_PROGRESS;
- }
- void cancel() { m_pb_state = ProgressBarState::PB_CANCELLED; }
- void error() { m_pb_state = ProgressBarState::PB_ERROR; }
+ virtual void set_percentage(float percent) { m_percentage = percent; }
protected:
- virtual void init();
+ virtual void init() override;
+ virtual void count_spaces() override;
virtual void render_text(ImGuiWrapper& imgui,
- const float win_size_x, const float win_size_y,
- const float win_pos_x, const float win_pos_y);
- void render_bar(ImGuiWrapper& imgui,
- const float win_size_x, const float win_size_y,
- const float win_pos_x, const float win_pos_y);
+ const float win_size_x, const float win_size_y,
+ const float win_pos_x, const float win_pos_y);
+ virtual void render_bar(ImGuiWrapper& imgui,
+ const float win_size_x, const float win_size_y,
+ const float win_pos_x, const float win_pos_y);
+ virtual void render_cancel_button(ImGuiWrapper& imgui,
+ const float win_size_x, const float win_size_y,
+ const float win_pos_x, const float win_pos_y)
+ {}
float m_percentage;
- ProgressBarState m_pb_state { ProgressBarState::PB_PROGRESS };
+
+ bool m_has_cancel_button {false};
+ // local time of last hover for showing tooltip
+
};
+
+
class PrintHostUploadNotification : public ProgressBarNotification
{
+ public:
+ enum class UploadJobState
+ {
+ PB_PROGRESS,
+ PB_ERROR,
+ PB_CANCELLED,
+ PB_COMPLETED
+ };
+ PrintHostUploadNotification(const NotificationData& n, NotificationIDProvider& id_provider, wxEvtHandler* evt_handler, float percentage, int job_id, float filesize)
+ :ProgressBarNotification(n, id_provider, evt_handler, percentage)
+ , m_job_id(job_id)
+ , m_file_size(filesize)
+ {
+ m_has_cancel_button = true;
+ }
+ static std::string get_upload_job_text(int id, const std::string& filename, const std::string& host) { return "[" + std::to_string(id) + "] " + filename + " -> " + host; }
+ virtual void set_percentage(float percent);
+ void cancel() { m_uj_state = UploadJobState::PB_CANCELLED; m_has_cancel_button = false; }
+ void error() { m_uj_state = UploadJobState::PB_ERROR; m_has_cancel_button = false; }
+ protected:
+ virtual void render_bar(ImGuiWrapper& imgui,
+ const float win_size_x, const float win_size_y,
+ const float win_pos_x, const float win_pos_y);
+ virtual void render_cancel_button(ImGuiWrapper& imgui,
+ const float win_size_x, const float win_size_y,
+ const float win_pos_x, const float win_pos_y);
+ // Identifies job in cancel callback
+ int m_job_id;
+ // Size of uploaded size to be displayed in MB
+ float m_file_size;
+ long m_hover_time{ 0 };
+ UploadJobState m_uj_state{ UploadJobState::PB_PROGRESS };
};
class ExportFinishedNotification : public PopNotification
@@ -440,7 +466,7 @@ private:
// Timestamp of last rendering
int64_t m_last_render { 0LL };
// Notification types that can be shown multiple types at once (compared by text)
- const std::vector m_multiple_types = { NotificationType::CustomNotification, NotificationType::PlaterWarning, NotificationType::ProgressBar };
+ const std::vector m_multiple_types = { NotificationType::CustomNotification, NotificationType::PlaterWarning, NotificationType::ProgressBar, NotificationType::PrintHostUpload };
//prepared (basic) notifications
const std::vector basic_notifications = {
{NotificationType::Mouse3dDisconnected, NotificationLevel::RegularNotification, 10, _u8L("3D Mouse disconnected.") },
diff --git a/src/slic3r/GUI/PrintHostDialogs.cpp b/src/slic3r/GUI/PrintHostDialogs.cpp
index 921337d4a..f3a1fae98 100644
--- a/src/slic3r/GUI/PrintHostDialogs.cpp
+++ b/src/slic3r/GUI/PrintHostDialogs.cpp
@@ -282,8 +282,7 @@ void PrintHostQueueDialog::append_job(const PrintHostJob &job)
// Both strings are UTF-8 encoded.
upload_names.emplace_back(job.printhost->get_host(), job.upload_data.upload_path.string());
- std::string notification_text = "[" + std::to_string(job_list->GetItemCount()) + "] " + job.upload_data.upload_path.string() + " -> " + job.printhost->get_host();
- wxGetApp().notification_manager()->push_progress_bar_notification(notification_text);
+ wxGetApp().notification_manager()->push_upload_job_notification(this, job_list->GetItemCount(), 2.64931f, job.upload_data.upload_path.string(), job.printhost->get_host());
}
void PrintHostQueueDialog::on_dpi_changed(const wxRect &suggested_rect)
@@ -355,8 +354,7 @@ void PrintHostQueueDialog::on_progress(Event &evt)
wxVariant nm, hst;
job_list->GetValue(nm, evt.job_id, COL_FILENAME);
job_list->GetValue(hst, evt.job_id, COL_HOST);
- std::string notification_text = "[" + std::to_string(evt.job_id + 1) + "] " + boost::nowide::narrow(nm.GetString()) + " -> " + boost::nowide::narrow(hst.GetString());
- wxGetApp().notification_manager()->set_progress_bar_percentage(notification_text, 100 / evt.progress);
+ wxGetApp().notification_manager()->set_upload_job_notification_percentage(evt.job_id + 1, boost::nowide::narrow(nm.GetString()), boost::nowide::narrow(hst.GetString()), 100 / evt.progress);
}
}
@@ -377,8 +375,7 @@ void PrintHostQueueDialog::on_error(Event &evt)
wxVariant nm, hst;
job_list->GetValue(nm, evt.job_id, COL_FILENAME);
job_list->GetValue(hst, evt.job_id, COL_HOST);
- std::string notification_text = "[" + std::to_string(evt.job_id + 1) + "] " + boost::nowide::narrow(nm.GetString()) + " -> " + boost::nowide::narrow(hst.GetString());
- wxGetApp().notification_manager()->progress_bar_show_error(notification_text);
+ wxGetApp().notification_manager()->upload_job_notification_show_error(evt.job_id + 1, boost::nowide::narrow(nm.GetString()), boost::nowide::narrow(hst.GetString()));
}
void PrintHostQueueDialog::on_cancel(Event &evt)
@@ -393,8 +390,7 @@ void PrintHostQueueDialog::on_cancel(Event &evt)
wxVariant nm, hst;
job_list->GetValue(nm, evt.job_id, COL_FILENAME);
job_list->GetValue(hst, evt.job_id, COL_HOST);
- std::string notification_text = "[" + std::to_string(evt.job_id + 1) + "] " + boost::nowide::narrow(nm.GetString()) + " -> " + boost::nowide::narrow(hst.GetString());
- wxGetApp().notification_manager()->progress_bar_show_canceled(notification_text);
+ wxGetApp().notification_manager()->upload_job_notification_show_canceled(evt.job_id + 1, boost::nowide::narrow(nm.GetString()), boost::nowide::narrow(hst.GetString()));
}
void PrintHostQueueDialog::get_active_jobs(std::vector>& ret)