Merge branch 'dk_printhost'

This commit is contained in:
David Kocik 2021-03-16 18:44:59 +01:00
commit 92de7bafc6
3 changed files with 8 additions and 25 deletions

View File

@ -5,6 +5,7 @@
#include "ImGuiWrapper.hpp" #include "ImGuiWrapper.hpp"
#include "PrintHostDialogs.hpp" #include "PrintHostDialogs.hpp"
#include "wxExtensions.hpp" #include "wxExtensions.hpp"
#include "../Utils/PrintHost.hpp"
#include <boost/algorithm/string.hpp> #include <boost/algorithm/string.hpp>
#include <boost/log/trivial.hpp> #include <boost/log/trivial.hpp>
@ -827,8 +828,6 @@ void NotificationManager::ProgressBarNotification::render_bar(ImGuiWrapper& imgu
//------PrintHostUploadNotification---------------- //------PrintHostUploadNotification----------------
void NotificationManager::PrintHostUploadNotification::set_percentage(float percent) void NotificationManager::PrintHostUploadNotification::set_percentage(float percent)
{ {
if (m_uj_state == UploadJobState::PB_CANCELLED)
return;
m_percentage = percent; m_percentage = percent;
if (percent >= 1.0f) { if (percent >= 1.0f) {
m_uj_state = UploadJobState::PB_COMPLETED; m_uj_state = UploadJobState::PB_COMPLETED;
@ -914,11 +913,7 @@ void NotificationManager::PrintHostUploadNotification::render_cancel_button(ImGu
ImGui::SetCursorPosY(win_size.y / 2 - button_size.y); ImGui::SetCursorPosY(win_size.y / 2 - button_size.y);
if (imgui.button(button_text.c_str(), button_size.x, button_size.y)) if (imgui.button(button_text.c_str(), button_size.x, button_size.y))
{ {
assert(m_evt_handler != nullptr); wxGetApp().printhost_job_queue().cancel(m_job_id - 1);
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 //invisible large button
@ -926,11 +921,7 @@ void NotificationManager::PrintHostUploadNotification::render_cancel_button(ImGu
ImGui::SetCursorPosY(0); ImGui::SetCursorPosY(0);
if (imgui.button(" ", m_line_height * 2.f, win_size.y)) if (imgui.button(" ", m_line_height * 2.f, win_size.y))
{ {
assert(m_evt_handler != nullptr); wxGetApp().printhost_job_queue().cancel(m_job_id - 1);
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();
@ -1129,28 +1120,21 @@ void NotificationManager::push_exporting_finished_notification(const std::string
push_notification_data(std::make_unique<NotificationManager::ExportFinishedNotification>(data, m_id_provider, m_evt_handler, on_removable, path, dir_path), 0); push_notification_data(std::make_unique<NotificationManager::ExportFinishedNotification>(data, m_id_provider, m_evt_handler, on_removable, path, dir_path), 0);
} }
void NotificationManager::push_upload_job_notification(wxEvtHandler* evt_handler, int id, float filesize, const std::string& filename, const std::string& host, float percentage) void NotificationManager::push_upload_job_notification(int id, float filesize, const std::string& filename, const std::string& host, float percentage)
{ {
std::string text = PrintHostUploadNotification::get_upload_job_text(id, filename, host); std::string text = PrintHostUploadNotification::get_upload_job_text(id, filename, host);
NotificationData data{ NotificationType::PrintHostUpload, NotificationLevel::ProgressBarNotification, 0, text }; NotificationData data{ NotificationType::PrintHostUpload, NotificationLevel::ProgressBarNotification, 0, text };
push_notification_data(std::make_unique<NotificationManager::PrintHostUploadNotification>(data, m_id_provider, evt_handler, 0, id, filesize), 0); push_notification_data(std::make_unique<NotificationManager::PrintHostUploadNotification>(data, m_id_provider, m_evt_handler, 0, id, filesize), 0);
} }
void NotificationManager::set_upload_job_notification_percentage(int id, const std::string& filename, const std::string& host, 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); std::string text = PrintHostUploadNotification::get_upload_job_text(id, filename, host);
// bool found = false;
for (std::unique_ptr<PopNotification>& notification : m_pop_notifications) { for (std::unique_ptr<PopNotification>& notification : m_pop_notifications) {
if (notification->get_type() == NotificationType::PrintHostUpload && notification->compare_text(text)) { if (notification->get_type() == NotificationType::PrintHostUpload && notification->compare_text(text)) {
dynamic_cast<PrintHostUploadNotification*>(notification.get())->set_percentage(percentage); dynamic_cast<PrintHostUploadNotification*>(notification.get())->set_percentage(percentage);
wxGetApp().plater()->get_current_canvas3D()->schedule_extra_frame(0); wxGetApp().plater()->get_current_canvas3D()->schedule_extra_frame(0);
// found = true;
} }
} }
/*
if (!found) {
push_upload_job_notification(id, filename, host, percentage);
}
*/
} }
void NotificationManager::upload_job_notification_show_canceled(int id, const std::string& filename, const std::string& host) void NotificationManager::upload_job_notification_show_canceled(int id, const std::string& filename, const std::string& host)
{ {

View File

@ -147,7 +147,7 @@ public:
// Exporting finished, show this information with path, button to open containing folder and if ejectable - eject button // 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); void push_exporting_finished_notification(const std::string& path, const std::string& dir_path, bool on_removable);
// notification with progress bar // notification with progress bar
void push_upload_job_notification(wxEvtHandler* evt_handler, int id, float filesize, const std::string& filename, const std::string& host, float percentage = 0); void push_upload_job_notification(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 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_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); void upload_job_notification_show_error(int id, const std::string& filename, const std::string& host);

View File

@ -225,7 +225,7 @@ PrintHostQueueDialog::PrintHostQueueDialog(wxWindow *parent)
SetSize(load_user_data(UDT_SIZE, size) ? wxSize(size[0] * em, size[1] * em) : wxSize(HEIGHT * em, WIDTH * em)); SetSize(load_user_data(UDT_SIZE, size) ? wxSize(size[0] * em, size[1] * em) : wxSize(HEIGHT * em, WIDTH * em));
Bind(wxEVT_SIZE, [this, em](wxSizeEvent& evt) { Bind(wxEVT_SIZE, [this, em](wxSizeEvent& evt) {
OnSize(evt); OnSize(evt);
save_user_data(UDT_SIZE | UDT_POSITION | UDT_COLS); save_user_data(UDT_SIZE | UDT_POSITION | UDT_COLS);
}); });
@ -245,7 +245,6 @@ PrintHostQueueDialog::PrintHostQueueDialog(wxWindow *parent)
const JobState state = get_state(selected); const JobState state = get_state(selected);
if (state < ST_ERROR) { if (state < ST_ERROR) {
// TODO: cancel
GUI::wxGetApp().printhost_job_queue().cancel(selected); GUI::wxGetApp().printhost_job_queue().cancel(selected);
} }
}); });
@ -282,7 +281,7 @@ void PrintHostQueueDialog::append_job(const PrintHostJob &job)
// Both strings are UTF-8 encoded. // Both strings are UTF-8 encoded.
upload_names.emplace_back(job.printhost->get_host(), job.upload_data.upload_path.string()); upload_names.emplace_back(job.printhost->get_host(), job.upload_data.upload_path.string());
wxGetApp().notification_manager()->push_upload_job_notification(this, job_list->GetItemCount(), (float)size_i / 1024 / 1024, job.upload_data.upload_path.string(), job.printhost->get_host()); wxGetApp().notification_manager()->push_upload_job_notification(job_list->GetItemCount(), (float)size_i / 1024 / 1024, job.upload_data.upload_path.string(), job.printhost->get_host());
} }
void PrintHostQueueDialog::on_dpi_changed(const wxRect &suggested_rect) void PrintHostQueueDialog::on_dpi_changed(const wxRect &suggested_rect)