From c44f2d6324bec922de9e97346fba0013f9e55443 Mon Sep 17 00:00:00 2001 From: HanifKoh <76276251+HanifKoh@users.noreply.github.com> Date: Mon, 5 Oct 2026 14:12:00 +0800 Subject: [PATCH] Remove the Unreachable MakerWorld Publish Dialog (#16121) --- localization/i18n/list.txt | 1 - resources/images/topbar_publish.svg | 4 - resources/images/topbar_publish_disable.svg | 10 - src/slic3r/CMakeLists.txt | 2 - src/slic3r/GUI/BBLTopbar.cpp | 32 --- src/slic3r/GUI/BBLTopbar.hpp | 5 - src/slic3r/GUI/Plater.cpp | 118 +-------- src/slic3r/GUI/Plater.hpp | 8 - src/slic3r/GUI/PublishDialog.cpp | 270 -------------------- src/slic3r/GUI/PublishDialog.hpp | 75 ------ 10 files changed, 1 insertion(+), 524 deletions(-) delete mode 100644 resources/images/topbar_publish.svg delete mode 100644 resources/images/topbar_publish_disable.svg delete mode 100644 src/slic3r/GUI/PublishDialog.cpp delete mode 100644 src/slic3r/GUI/PublishDialog.hpp diff --git a/localization/i18n/list.txt b/localization/i18n/list.txt index d9f2049565..4d5ab72073 100644 --- a/localization/i18n/list.txt +++ b/localization/i18n/list.txt @@ -177,7 +177,6 @@ src/slic3r/GUI/PresetHints.cpp src/slic3r/GUI/ProgressStatusBar.cpp src/slic3r/GUI/PlateSettingsDialog.cpp src/slic3r/GUI/PrivacyUpdateDialog.cpp -src/slic3r/GUI/PublishDialog.cpp src/slic3r/GUI/PublishSettingsDialog.cpp src/slic3r/GUI/SavePresetDialog.cpp src/slic3r/GUI/SceneBenchmark.cpp diff --git a/resources/images/topbar_publish.svg b/resources/images/topbar_publish.svg deleted file mode 100644 index 24159a192a..0000000000 --- a/resources/images/topbar_publish.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/resources/images/topbar_publish_disable.svg b/resources/images/topbar_publish_disable.svg deleted file mode 100644 index 4e2d6b20ec..0000000000 --- a/resources/images/topbar_publish_disable.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index b74247e338..23d5ea225b 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -483,8 +483,6 @@ set(SLIC3R_GUI_SOURCES GUI/ProjectDirtyStateManager.cpp GUI/ProjectDirtyStateManager.hpp GUI/Project.hpp - GUI/PublishDialog.cpp - GUI/PublishDialog.hpp GUI/PublishSettingsDialog.cpp GUI/PublishSettingsDialog.hpp GUI/PurgeModeDialog.cpp diff --git a/src/slic3r/GUI/BBLTopbar.cpp b/src/slic3r/GUI/BBLTopbar.cpp index eeb8df79fa..ba377ca21d 100644 --- a/src/slic3r/GUI/BBLTopbar.cpp +++ b/src/slic3r/GUI/BBLTopbar.cpp @@ -46,7 +46,6 @@ enum CUSTOM_ID ID_TOP_DROPDOWN_MENU, ID_TITLE, ID_MODEL_STORE, - ID_PUBLISH, ID_CALIB, ID_TOOL_BAR = 3200, ID_AMS_NOTEBOOK, @@ -339,10 +338,6 @@ void BBLTopbar::Init(wxFrame* parent) this->AddSpacer(FromDIP(25)); //this->AddStretchSpacer(1); - //m_publish_bitmap = create_scaled_bitmap("topbar_publish", nullptr, TOPBAR_ICON_SIZE); - //m_publish_item = this->AddTool(ID_PUBLISH, "", m_publish_bitmap); - //m_publish_disable_bitmap = create_scaled_bitmap("topbar_publish_disable", nullptr, TOPBAR_ICON_SIZE); - //m_publish_item->SetDisabledBitmap(m_publish_disable_bitmap); //this->EnableTool(m_publish_item->GetId(), false); //this->AddSpacer(FromDIP(4)); @@ -403,7 +398,6 @@ void BBLTopbar::Init(wxFrame* parent) this->Bind(wxEVT_AUITOOLBAR_TOOL_DROPDOWN, &BBLTopbar::OnRedo, this, wxID_REDO); this->Bind(wxEVT_AUITOOLBAR_TOOL_DROPDOWN, &BBLTopbar::OnUndo, this, wxID_UNDO); //this->Bind(wxEVT_AUITOOLBAR_TOOL_DROPDOWN, &BBLTopbar::OnModelStoreClicked, this, ID_MODEL_STORE); - //this->Bind(wxEVT_AUITOOLBAR_TOOL_DROPDOWN, &BBLTopbar::OnPublishClicked, this, ID_PUBLISH); } BBLTopbar::~BBLTopbar() @@ -420,12 +414,6 @@ void BBLTopbar::OnOpenProject(wxAuiToolBarEvent& event) plater->load_project(); } -//void BBLTopbar::show_publish_button(bool show) -//{ -// this->EnableTool(m_publish_item->GetId(), show); -// Refresh(); -//} - void BBLTopbar::OnSaveProject(wxAuiToolBarEvent& event) { MainFrame* main_frame = dynamic_cast(m_frame); @@ -482,22 +470,6 @@ void BBLTopbar::OnModelStoreClicked(wxAuiToolBarEvent& event) //GUI::wxGetApp().load_url(wxString(wxGetApp().app_config->get_web_host_url() + MODEL_STORE_URL)); } -void BBLTopbar::OnPublishClicked(wxAuiToolBarEvent& event) -{ - if (!wxGetApp().getAgent()) { - BOOST_LOG_TRIVIAL(info) << "publish: no agent"; - return; - } - - //no more check - //if (GUI::wxGetApp().plater()->model().objects.empty()) return; - -#ifdef ENABLE_PUBLISHING - wxGetApp().plater()->show_publish_dialog(); -#endif - wxGetApp().open_publish_page_dialog(); -} - void BBLTopbar::SetFileMenu(wxMenu* file_menu) { m_file_menu = file_menu; @@ -579,10 +551,6 @@ void BBLTopbar::Rescale() { if (m_title_ctrl) m_title_ctrl->SetTitle(m_titleText); - /*item = this->FindTool(ID_PUBLISH); - item->SetBitmap(create_scaled_bitmap("topbar_publish", this, TOPBAR_ICON_SIZE)); - item->SetDisabledBitmap(create_scaled_bitmap("topbar_publish_disable", nullptr, TOPBAR_ICON_SIZE));*/ - /*item = this->FindTool(ID_MODEL_STORE); item->SetBitmap(create_scaled_bitmap("topbar_store", this, TOPBAR_ICON_SIZE)); */ diff --git a/src/slic3r/GUI/BBLTopbar.hpp b/src/slic3r/GUI/BBLTopbar.hpp index db34d8dc80..c2ee17a2b7 100644 --- a/src/slic3r/GUI/BBLTopbar.hpp +++ b/src/slic3r/GUI/BBLTopbar.hpp @@ -52,12 +52,10 @@ public: void OnMouseCaptureLost(wxMouseCaptureLostEvent& event); void OnMenuClose(wxMenuEvent& event); void OnOpenProject(wxAuiToolBarEvent& event); - //void show_publish_button(bool show); void OnSaveProject(wxAuiToolBarEvent& event); void OnUndo(wxAuiToolBarEvent& event); void OnRedo(wxAuiToolBarEvent& event); void OnModelStoreClicked(wxAuiToolBarEvent& event); - void OnPublishClicked(wxAuiToolBarEvent &event); wxAuiToolBarItem* FindToolByCurrentPosition(); @@ -97,14 +95,11 @@ private: wxString m_titleText; - //wxAuiToolBarItem *m_publish_item; wxAuiToolBarItem* m_undo_item; wxAuiToolBarItem* m_redo_item; wxAuiToolBarItem* m_calib_item; wxAuiToolBarItem* maximize_btn; - wxBitmap m_publish_bitmap; - wxBitmap m_publish_disable_bitmap; wxBitmap maximize_bitmap; wxBitmap window_bitmap; diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 0ce364afe5..0b037a2eff 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -226,7 +226,6 @@ #include "SelectMachine.hpp" #include "SendMultiMachinePage.hpp" #include "SendToPrinter.hpp" -#include "PublishDialog.hpp" #include "ConfigWizard.hpp" #include "SyncAmsInfoDialog.hpp" #include "../Utils/ASCIIFolding.hpp" @@ -331,7 +330,6 @@ wxDEFINE_EVENT(EVT_EXPORT_BEGAN, wxCommandEvent); wxDEFINE_EVENT(EVT_EXPORT_FINISHED, wxCommandEvent); wxDEFINE_EVENT(EVT_IMPORT_MODEL_ID, wxCommandEvent); wxDEFINE_EVENT(EVT_DOWNLOAD_PROJECT, wxCommandEvent); -wxDEFINE_EVENT(EVT_PUBLISH, wxCommandEvent); wxDEFINE_EVENT(EVT_OPEN_PLATESETTINGSDIALOG, wxCommandEvent); wxDEFINE_EVENT(EVT_OPEN_FILAMENT_MAP_SETTINGS_DIALOG, wxCommandEvent); // BBS: backup & restore @@ -339,7 +337,6 @@ wxDEFINE_EVENT(EVT_RESTORE_PROJECT, wxCommandEvent); wxDEFINE_EVENT(EVT_PRINT_FINISHED, wxCommandEvent); wxDEFINE_EVENT(EVT_SEND_CALIBRATION_FINISHED, wxCommandEvent); wxDEFINE_EVENT(EVT_SEND_FINISHED, wxCommandEvent); -wxDEFINE_EVENT(EVT_PUBLISH_FINISHED, wxCommandEvent); //BBS: repair model wxDEFINE_EVENT(EVT_REPAIR_MODEL, wxCommandEvent); wxDEFINE_EVENT(EVT_FILAMENT_COLOR_CHANGED, wxCommandEvent); @@ -7146,7 +7143,6 @@ struct Plater::priv SelectMachineDialog* m_select_machine_dlg = nullptr; SendMultiMachinePage* m_send_multi_dlg = nullptr; SendToPrinterDialog* m_send_to_sdcard_dlg = nullptr; - PublishDialog *m_publish_dlg = nullptr; // Session-level stash of the last published selection. Written on publish and on // loading a published 3MF; read when the Publish dialog is opened. @@ -7200,7 +7196,6 @@ struct Plater::priv std::string m_broken_shown_sig; bool auto_reslice_pending {false}; bool auto_reslice_after_cancel {false}; - bool m_is_publishing {false}; int m_is_RightClickInLeftUI{-1}; int m_cur_slice_plate; //BBS: m_slice_all in .gcode.3mf file case, set true when slice all @@ -7604,7 +7599,6 @@ struct Plater::priv void on_action_open_project(SimpleEvent&); void on_action_slice_plate(SimpleEvent&); void on_action_slice_all(SimpleEvent&); - void on_action_publish(wxCommandEvent &evt); void on_action_print_plate(SimpleEvent&); void open_machine_select_dialog(int plate_idx, PrintFromType print_type = PrintFromType::FROM_NORMAL); void on_action_print_all(SimpleEvent&); @@ -7622,8 +7616,6 @@ struct Plater::priv void on_3dcanvas_mouse_dragging_finished(SimpleEvent&); //void show_action_buttons(const bool is_ready_to_slice) const; - bool show_publish_dlg(bool show = true); - void update_publish_dialog_status(wxString &msg, int percent = -1); void on_action_print_plate_from_sdcard(SimpleEvent&); void on_tab_selection_changing(wxBookCtrlEvent&); @@ -7873,7 +7865,6 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) background_process.set_export_began_event(EVT_EXPORT_BEGAN); background_process.set_export_finished_event(EVT_EXPORT_FINISHED); this->q->Bind(EVT_SLICING_UPDATE, &priv::on_slicing_update, this); - this->q->Bind(EVT_PUBLISH, &priv::on_action_publish, this); this->q->Bind(EVT_REPAIR_MODEL, &priv::on_repair_model, this); this->q->Bind(EVT_FILAMENT_COLOR_CHANGED, &priv::on_filament_color_changed, this); this->q->Bind(EVT_INSTALL_PLUGIN_NETWORKING, &priv::install_network_plugin, this); @@ -8226,7 +8217,6 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) q->Bind(EVT_PRINT_FINISHED, [q](wxCommandEvent& evt) { q->print_job_finished(evt); }); q->Bind(EVT_SEND_CALIBRATION_FINISHED, [q](wxCommandEvent& evt) { q->send_calibration_job_finished(evt); }); q->Bind(EVT_SEND_FINISHED, [q](wxCommandEvent& evt) { q->send_job_finished(evt); }); - q->Bind(EVT_PUBLISH_FINISHED, [q](wxCommandEvent& evt) { q->publish_job_finished(evt);}); q->Bind(EVT_OPEN_PLATESETTINGSDIALOG, [q](wxCommandEvent& evt) { q->open_platesettings_dialog(evt);}); q->Bind(EVT_OPEN_FILAMENT_MAP_SETTINGS_DIALOG, [q](wxCommandEvent &evt) { q->open_filament_map_setting_dialog(evt); }); //q->Bind(EVT_GLVIEWTOOLBAR_ASSEMBLE, [q](SimpleEvent&) { q->select_view_3D("Assemble"); }); @@ -13361,11 +13351,6 @@ void Plater::priv::on_process_completed(SlicingProcessCompletedEvent &evt) show_action_buttons(true);*/ ready_to_slice = true; //this->main_frame->update_slice_print_status(MainFrame::eEventSliceUpdate, true, true); - - //BBS - if (m_is_publishing) { - m_publish_dlg->cancel(); - } } else { if((ready_to_slice) || (wxGetApp().get_mode() == comSimple)) { //this means the current plate is not the slicing plate @@ -13407,15 +13392,6 @@ void Plater::priv::on_process_completed(SlicingProcessCompletedEvent &evt) exporting_status = ExportingStatus::NOT_EXPORTING; - // BBS stop publishing if error occur - //if (m_is_publishing) { - // GCodeProcessorResult *gcode_result = background_process.get_current_gcode_result(); - // m_publish_dlg->UpdateStatus(_L("Error occurred during slicing"), -1, false); - // // if toolpath is outside - // if (!gcode_result || gcode_result->toolpath_outside) { - // m_is_publishing = false; - // } - //} if (is_finished) @@ -13424,16 +13400,6 @@ void Plater::priv::on_process_completed(SlicingProcessCompletedEvent &evt) m_is_slicing = false; this->preview->reload_print(false); q->mark_plate_toolbar_image_dirty(); - /* BBS if in publishing progress */ - if (m_is_publishing) { - if (m_publish_dlg && !m_publish_dlg->was_cancelled()) { - if (m_publish_dlg->IsShown()) { - q->publish_project(); - } else { - m_is_publishing = false; - } - } - } q->SetDropTarget(new PlaterDropTarget(*main_frame, *q)); } else @@ -13452,13 +13418,6 @@ void Plater::priv::on_process_completed(SlicingProcessCompletedEvent &evt) //not the last plate update_fff_scene_only_shells(); q->Thaw(); - if (m_is_publishing) { - if (m_publish_dlg && !m_publish_dlg->was_cancelled()) { - wxString msg = wxString::Format(_L("Slicing Plate %d"), m_cur_slice_plate + 1); - int percent = 70 * m_cur_slice_plate / partplate_list.get_plate_count(); - m_publish_dlg->UpdateStatus(msg, percent, false); - } - } } if (auto_reslice_after_cancel) { auto_reslice_after_cancel = false; @@ -13540,40 +13499,12 @@ void Plater::priv::on_action_slice_all(SimpleEvent&) //select plate q->select_plate(m_cur_slice_plate); q->reslice(); - if (!m_is_publishing) - q->select_view_3D("Preview"); + q->select_view_3D("Preview"); //BBS: wish to select all plates stats item preview->get_canvas3d()->_update_select_plate_toolbar_stats_item(true); } } -void Plater::priv::on_action_publish(wxCommandEvent &event) -{ - if (q != nullptr) { - if (event.GetInt() == EVT_PUBLISHING_START) { - // update by background slicing process - if (process_completed_with_error >= 0) { - wxString msg = _L("Please resolve the slicing errors and publish again."); - this->m_publish_dlg->UpdateStatus(msg, false); - return; - } - - m_is_publishing = true; - // if slicing is ready publish project, else slicing first - if (partplate_list.is_all_slice_results_valid()) { - q->publish_project(); - } else { - BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << ":received slice project in background event\n"; - SimpleEvent evt = SimpleEvent(EVT_GLTOOLBAR_SLICE_ALL); - this->on_action_slice_all(evt); - } - } else { - m_is_publishing = false; - show_publish_dlg(false); - } - } -} - void Plater::priv::on_action_print_plate(SimpleEvent&) { if (q != nullptr) { @@ -14349,11 +14280,6 @@ int Plater::get_send_finished_event() return EVT_SEND_FINISHED; } -int Plater::get_publish_finished_event() -{ - return EVT_PUBLISH_FINISHED; -} - void Plater::priv::set_current_canvas_as_dirty() { if (current_panel == view3D) @@ -14762,31 +14688,6 @@ bool Plater::priv::can_reload_from_disk() const return !paths.empty(); } -void Plater::priv::update_publish_dialog_status(wxString &msg, int percent) -{ - if (m_publish_dlg) - m_publish_dlg->UpdateStatus(msg, percent); -} - -bool Plater::priv::show_publish_dlg(bool show) -{ - if (q != nullptr) { BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << ":recevied publish event\n"; } - - if (!m_publish_dlg) m_publish_dlg = new PublishDialog(q); - if (show) { - m_publish_dlg->reset(); - m_publish_dlg->start_slicing(); - //m_publish_dlg->Show(); - m_publish_dlg->ShowModal(); - } else { - m_publish_dlg->EndModal(wxID_OK); - //cancel the slicing - if (this->background_process.running()) - this->background_process.stop(); - } - return true; -} - //BBS: add bed exclude area void Plater::priv::set_bed_shape(const Pointfs &shape, const Pointfs &exclude_areas, @@ -19915,11 +19816,6 @@ int Plater::export_3mf(const boost::filesystem::path& output_path, SaveStrategy return ret; } -void Plater::publish_project() -{ - return; -} - void Plater::reload_from_disk() { @@ -20562,13 +20458,6 @@ void Plater::send_job_finished(wxCommandEvent& evt) // curr_monitor->get_tabpanel()->ChangeSelection(MonitorPanel::PrinterTab::PT_STATUS); } -void Plater::publish_job_finished(wxCommandEvent &evt) -{ - p->m_publish_dlg->EndModal(wxID_OK); - // GUI::wxGetApp().load_url(evt.GetString()); - //GUI::wxGetApp().open_publish_page_dialog(evt.GetString()); -} - // Called when the Eject button is pressed. void Plater::eject_drive() { @@ -22866,11 +22755,6 @@ void Plater::show_object_info() notify_manager->bbl_show_objectsinfo_notification(info_text, non_manifold_edges > 0, !(p->current_panel == p->view3D)); } -bool Plater::show_publish_dialog(bool show) -{ - return p->show_publish_dlg(show); -} - void Plater::post_process_string_object_exception(StringObjectException &err) { PresetBundle* preset_bundle = wxGetApp().preset_bundle; diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index 77aff736f0..21fda05246 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -116,12 +116,8 @@ enum class ActionButtonType : int; // (Sidebar::priv::m_menu_filament_id) rather than an explicit index. inline constexpr int kSidebarContextMenuFilamentId = -2; -#define EVT_PUBLISHING_START 1 -#define EVT_PUBLISHING_STOP 2 - //BBS: add EVT_SLICING_UPDATE declare here wxDECLARE_EVENT(EVT_SLICING_UPDATE, Slic3r::SlicingStatusEvent); -wxDECLARE_EVENT(EVT_PUBLISH, wxCommandEvent); wxDECLARE_EVENT(EVT_OPEN_PLATESETTINGSDIALOG, wxCommandEvent); // Explanation of int param @@ -571,7 +567,6 @@ public: int export_3mf(const boost::filesystem::path& output_path = boost::filesystem::path(), SaveStrategy strategy = SaveStrategy::Default, int export_plate_idx = -1, Export3mfProgressFn proFn = nullptr); //BBS - void publish_project(); void reload_from_disk(); void replace_with_stl(); @@ -606,7 +601,6 @@ public: void send_calibration_job_finished(wxCommandEvent &evt); void print_job_finished(wxCommandEvent &evt); void send_job_finished(wxCommandEvent& evt); - void publish_job_finished(wxCommandEvent& evt); void open_platesettings_dialog(wxCommandEvent& evt); void open_filament_map_setting_dialog(wxCommandEvent &evt); void on_change_color_mode(SimpleEvent& evt); @@ -717,7 +711,6 @@ public: int get_send_calibration_finished_event(); int get_print_finished_event(); int get_send_finished_event(); - int get_publish_finished_event(); void set_current_canvas_as_dirty(); void unbind_canvas_event_handlers(); @@ -842,7 +835,6 @@ public: //BBS: show object info void show_object_info(); //BBS - bool show_publish_dialog(bool show = true); //BBS: post process string object exception strings by warning types void post_process_string_object_exception(StringObjectException &err); void update_objects_position_when_select_preset(const std::function &select_prest); diff --git a/src/slic3r/GUI/PublishDialog.cpp b/src/slic3r/GUI/PublishDialog.cpp deleted file mode 100644 index f9c0beadb9..0000000000 --- a/src/slic3r/GUI/PublishDialog.cpp +++ /dev/null @@ -1,270 +0,0 @@ -#include "PublishDialog.hpp" -#include "GUI_App.hpp" - -#include -#include -#include "slic3r/GUI/Widgets/AMSItem.hpp" -#include "slic3r/GUI/GUI_Utils.hpp" -#include -#include -#include -#include -#include "slic3r/GUI/Widgets/Label.hpp" -#include "slic3r/GUI/Widgets/ProgressBar.hpp" -#include "slic3r/GUI/Widgets/Button.hpp" -#include "slic3r/GUI/Widgets/StateColor.hpp" -#include -#include -#include "slic3r/GUI/Plater.hpp" -#include -#include -#include -#include "wx/evtloop.h" - -#include "libslic3r/Model.hpp" -#include "libslic3r/Polygon.hpp" -#include "MainFrame.hpp" -#include "GUI_App.hpp" - - -static const wxColour TEXT_LIGHT_GRAY = wxColour(107, 107, 107); - -namespace Slic3r { -namespace GUI { - -static wxString PUBLISH_STEP_STRING[STEP_COUNT] = { - _L("Slice all plates to obtain time and filament estimation"), - _L("Packing project data into 3MF file"), - _L("Uploading 3MF"), - _L("Jump to model publish web page") -}; - -static wxString NOTE_STRING = _L("Note: The preparation may take several minutes. Please be patient."); - -PublishDialog::PublishDialog(Plater *plater) - : DPIDialog(static_cast(wxGetApp().mainframe), wxID_ANY, _L("Publish"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX) - , m_plater(plater) -{ - this->SetSize(wxSize(FromDIP(540),FromDIP(400))); - - this->SetSizeHints(wxDefaultSize, wxDefaultSize); - - wxBoxSizer *top_sizer = new wxBoxSizer(wxHORIZONTAL); - - wxBoxSizer *m_main_sizer = new wxBoxSizer(wxVERTICAL); - - m_main_sizer->Add(0, FromDIP(30), 0, wxEXPAND, 0); - - m_step_panel = new wxPanel(this, wxID_ANY); - wxBoxSizer *step_sizer = create_publish_step_sizer(); - m_step_panel->SetSizer(step_sizer); - m_step_panel->SetBackgroundColour(wxColour(248, 248, 248)); - - m_main_sizer->Add(m_step_panel, 1, wxEXPAND, 0); - - m_main_sizer->Add(0, FromDIP(20), 0, wxEXPAND, 0); - - m_text_note = new wxStaticText(this, wxID_ANY, NOTE_STRING, wxDefaultPosition, wxDefaultSize, 0); - m_text_note->SetFont(Label::Body_14); - m_text_note->SetForegroundColour(TEXT_LIGHT_GRAY); - m_text_note->Wrap(-1); - m_main_sizer->Add(m_text_note, 0, wxALL | wxEXPAND, 0); - m_main_sizer->Add(0, FromDIP(10), 0, wxEXPAND, 0); - - wxStaticLine *m_staticline = new wxStaticLine(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL); - m_main_sizer->Add(m_staticline, 0, wxALL | wxEXPAND, FromDIP(0)); - m_main_sizer->Add(0, FromDIP(10), 0, wxEXPAND, 0); - - wxBoxSizer *m_progress_text_sizer = new wxBoxSizer(wxHORIZONTAL); - m_text_progress = new wxStaticText(this, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, 0); - m_text_progress->Wrap(-1); - m_text_progress->SetFont(Label::Body_12); - m_text_progress->SetForegroundColour(TEXT_LIGHT_GRAY); - - m_progress_text_sizer->Add(FromDIP(20), 0, 0, wxEXPAND | wxALL, 0); - m_progress_text_sizer->Add(m_text_progress, 1, wxALL | wxEXPAND, 0); - m_main_sizer->Add(m_progress_text_sizer, 0, wxALL | wxEXPAND, 0); - - wxBoxSizer *m_progress_sizer = new wxBoxSizer(wxHORIZONTAL); - - m_progress_sizer->Add(FromDIP(20), 0, 0, wxEXPAND | wxALL, 0); - - m_progress = new ProgressBar(this, wxID_ANY, 100, wxDefaultPosition, wxDefaultSize); - m_progress->SetHeight(FromDIP(8)); - m_progress->SetFont(Label::Head_10); - m_progress_sizer->Add(m_progress, 1, wxALIGN_CENTER_VERTICAL | wxALL, 0); - - m_progress_sizer->Add(FromDIP(20), 0, 0, wxEXPAND, 0); - - m_btn_cancel = new Button(this, _L("Cancel")); - m_progress_sizer->Add(m_btn_cancel, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5)); - StateColor btn_bg_green(std::pair(wxColour(0, 137, 123), StateColor::Pressed), - std::pair(wxColour(38, 166, 154), StateColor::Hovered), - std::pair(wxColour(255, 255, 255), StateColor::Normal)); - StateColor text_color(std::pair(wxColour(255, 255, 255), StateColor::Pressed), - std::pair(wxColour(255, 255, 255), StateColor::Hovered), - std::pair(TEXT_LIGHT_GRAY, StateColor::Normal)); - m_btn_cancel->SetFont(Label::Body_12); - m_btn_cancel->SetBackgroundColor(btn_bg_green); - m_btn_cancel->SetBorderColor(wxColour(0, 150, 136)); - m_btn_cancel->SetTextColor(text_color); - m_btn_cancel->SetSize(wxSize(FromDIP(60), FromDIP(20))); - m_btn_cancel->SetMinSize(wxSize(FromDIP(60), FromDIP(20))); - m_btn_cancel->SetCornerRadius(FromDIP(10)); - - m_progress_sizer->Add(FromDIP(20), 0, 0, wxEXPAND | wxALL, 0); - - m_main_sizer->Add(m_progress_sizer, 0, wxEXPAND, FromDIP(0)); - - wxBoxSizer *m_bottom_sizer; - m_bottom_sizer = new wxBoxSizer(wxHORIZONTAL); - - m_bottom_sizer->Add(FromDIP(20), 0, 0, wxEXPAND, 0); - - m_text_errors = new wxStaticText(this, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, 0); - m_text_errors->Wrap(-1); - m_text_errors->SetFont(Label::Body_12); - m_text_errors->SetForegroundColour(wxColour(255, 111, 0)); - m_bottom_sizer->Add(m_text_errors, 1, wxALL, 0); - - m_main_sizer->Add(m_bottom_sizer, 0, wxEXPAND, 0); - m_main_sizer->Add(0, FromDIP(10), 0, wxEXPAND, 0); - - top_sizer->Add(FromDIP(30), 0, 0, wxEXPAND, 0); - top_sizer->Add(m_main_sizer, 1, wxALL | wxEXPAND, 0); - top_sizer->Add(FromDIP(30), 0, 0, wxEXPAND, 0); - - this->SetSizerAndFit(top_sizer); - this->Layout(); - - this->Centre(wxBOTH); - - m_btn_cancel->Bind(wxEVT_BUTTON, [this](wxCommandEvent&) { - this->cancel(); - }); - - Bind(wxEVT_CLOSE_WINDOW, &PublishDialog::on_close, this); - wxGetApp().UpdateDlgDarkUI(this); -} - -void PublishDialog::cancel() -{ - m_was_cancelled = true; - m_btn_cancel->Enable(false); - m_text_progress->SetLabelText(_L("Publish was canceled")); - wxCloseEvent evt; - this->on_close(evt); -} - -void PublishDialog::start_slicing() -{ - SetPublishStep(PublishStep::STEP_SLICING); - - wxCommandEvent *evt = new wxCommandEvent(EVT_PUBLISH); - evt->SetInt(EVT_PUBLISHING_START); - wxQueueEvent(m_plater, evt); -} - -bool PublishDialog::UpdateStatus(wxString &msg, int percent, bool yield) -{ - if (m_was_cancelled) return false; - - if (percent >= 0) - m_progress->SetValue(percent); - m_text_progress->SetLabelText(msg); - - if (yield) - wxEventLoopBase::GetActive()->YieldFor(wxEVT_CATEGORY_UI | wxEVT_CATEGORY_USER_INPUT); - return true; -} - -void PublishDialog::Pulse(wxString &msg, bool &skip) -{ - if (!msg.IsEmpty()) - m_text_progress->SetLabelText(msg); - wxEventLoopBase::GetActive()->YieldFor(wxEVT_CATEGORY_UI | wxEVT_CATEGORY_USER_INPUT); - skip = m_was_cancelled; -} - -void PublishDialog::SetPublishStep(PublishStep step, bool yield, int percent) -{ - m_publish_steps->SelectItem((int)step); - if (step == PublishStep::STEP_SLICING) { - m_text_progress->SetLabelText(_L("Slicing Plate 1")); - if (percent > 0) - m_progress->SetValue(percent); - else - m_progress->SetValue(0); - } else if (step == PublishStep::STEP_PACKING) { - m_text_progress->SetLabelText(_L("Packing data to 3MF")); - if (percent > 0) - m_progress->SetValue(percent); - else - m_progress->SetValue(70); - } else if (step == PublishStep::STEP_UPLOADING) { - m_text_progress->SetLabelText(_L("Uploading data")); - if (percent > 0) - m_progress->SetValue(percent); - else - m_progress->SetValue(85); - } else if (step == PublishStep::STEP_FILL_INFO) { - m_text_progress->SetLabelText(_L("Jump to webpage")); - m_progress->SetValue(100); - } - - if (yield) - wxEventLoopBase::GetActive()->YieldFor(wxEVT_CATEGORY_UI | wxEVT_CATEGORY_USER_INPUT); -} - -wxBoxSizer *PublishDialog::create_publish_step_sizer() -{ - auto sizer = new wxBoxSizer(wxHORIZONTAL); - - sizer->Add(FromDIP(30), 0, 0, wxEXPAND, 0); - - auto middle_sizer = new wxBoxSizer(wxVERTICAL); - - m_publish_steps = new StepIndicator(m_step_panel, wxID_ANY); - StateColor bg_color(std::pair(wxColour(248, 248, 248), StateColor::Normal)); - m_publish_steps->SetBackgroundColor(bg_color); - m_publish_steps->SetFont(Label::Body_14); - - for (int i = 0; i < (int) PublishStep::STEP_PUBLISH_COUNT; i++) { - m_publish_steps->AppendItem(PUBLISH_STEP_STRING[i]); - } - - middle_sizer->Add(0, FromDIP(30), 0, wxEXPAND, 0); - middle_sizer->Add(m_publish_steps, 1, wxALL | wxEXPAND, 0); - middle_sizer->Add(0, FromDIP(30), 0, wxEXPAND, 0); - - sizer->Add(middle_sizer, 1, wxALL | wxEXPAND, 0); - - sizer->Add(FromDIP(30), 0, 0, wxEXPAND, 0); - - return sizer; -} - -void PublishDialog::on_dpi_changed(const wxRect &suggested_rect) -{ - Fit(); - Refresh(); -} - -void PublishDialog::on_close(wxCloseEvent &event) -{ - wxCommandEvent *evt = new wxCommandEvent(EVT_PUBLISH); - evt->SetInt(EVT_PUBLISHING_STOP); - wxQueueEvent(m_plater, evt); -} - -void PublishDialog::reset() -{ - m_btn_cancel->Enable(); - m_was_cancelled = false; - SetPublishStep(PublishStep::STEP_SLICING); - m_text_errors->Hide(); -} - - -} // GUI -} // Slic3r diff --git a/src/slic3r/GUI/PublishDialog.hpp b/src/slic3r/GUI/PublishDialog.hpp deleted file mode 100644 index 3accc34784..0000000000 --- a/src/slic3r/GUI/PublishDialog.hpp +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef slic3r_PublishDialog_hpp_ -#define slic3r_PublishDialog_hpp_ - - -#include "I18N.hpp" - -#include "slic3r/GUI/GUI_Utils.hpp" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "wxExtensions.hpp" -#include "Plater.hpp" -#include "Widgets/StepCtrl.hpp" -#include "Widgets/ProgressDialog.hpp" -#include "Widgets/Button.hpp" -#include "Widgets/ProgressBar.hpp" - - -namespace Slic3r { -namespace GUI { - -enum PublishStep { - STEP_SLICING = 0, - STEP_PACKING, - STEP_UPLOADING, - STEP_FILL_INFO, - STEP_PUBLISH_COUNT, -}; - -class PublishDialog : public DPIDialog -{ -public: - PublishDialog(Plater* plater = nullptr); - - bool UpdateStatus(wxString &msg, int percent = -1, bool yeild = true); - void Pulse(wxString &msg, bool &skip); - void SetPublishStep(PublishStep step, bool yeild = false, int percent = -1); - void start_slicing(); - void reset(); - bool was_cancelled() { return m_was_cancelled; } - void cancel(); - -protected: - wxPanel* m_step_panel; - ::StepIndicator *m_publish_steps; - wxStaticText *m_text_note; - wxStaticText *m_text_progress; - ProgressBar *m_progress; - Button* m_btn_cancel; - wxStaticText *m_text_errors; - Plater * m_plater{nullptr}; - bool m_was_cancelled { false }; - - wxBoxSizer* create_publish_step_sizer(); - void on_close(wxCloseEvent &event); - void on_dpi_changed(const wxRect &suggested_rect) override; -}; - -} // GUI -} // Slic3r - - -#endif /* slic3r_BedShapeDialog_hpp_ */