OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::GUI::PrintHostQueueDialog Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/PrintHostDialogs.hpp>

Inheritance diagram for Slic3r::GUI::PrintHostQueueDialog:
Collaboration diagram for Slic3r::GUI::PrintHostQueueDialog:

Classes

class  Event

Public Member Functions

 PrintHostQueueDialog (wxWindow *parent)
void append_job (const PrintHostJob &job)
void get_active_jobs (std::vector< std::pair< std::string, std::string > > &ret)
virtual bool Show (bool show=true) override
void EndModal (int retCode) override
float scale_factor () const
float prev_scale_factor () const
void set_scale_factor (float v)
void set_prev_scale_factor (float v)
void set_em_unit (int v)
bool force_rescale () const
int em_unit () const
const wxFont & normal_font () const
void enable_force_rescale ()
int ShowModal ()

Protected Member Functions

void on_dpi_changed (const wxRect &suggested_rect) override
void on_sys_color_changed () override

Private Types

enum  Column {
  COL_ID , COL_PROGRESS , COL_STATUS , COL_HOST ,
  COL_SIZE , COL_FILENAME , COL_ERRORMSG
}
enum  JobState {
  ST_NEW , ST_PROGRESS , ST_ERROR , ST_CANCELLING ,
  ST_CANCELLED , ST_COMPLETED
}
enum  { HEIGHT = 60 , WIDTH = 30 , SPACING = 5 }
enum  UserDataType { UDT_SIZE = 1 , UDT_POSITION = 2 , UDT_COLS = 4 }

Private Member Functions

JobState get_state (int idx)
void set_state (int idx, JobState)
void on_list_select ()
void on_progress (Event &)
void on_error (Event &)
void on_cancel (Event &)
void on_info (Event &)
void save_user_data (int)
bool load_user_data (int, std::vector< int > &)
void update_em_unit ()
bool is_new_scale_factor () const
void rescale (const wxRect &suggested_rect)

Private Attributes

wxButton * btn_cancel
wxButton * btn_error
wxDataViewListCtrl * job_list
EventGuard on_progress_evt
EventGuard on_error_evt
EventGuard on_cancel_evt
EventGuard on_info_evt
std::vector< std::pair< std::string, std::string > > upload_names
float m_scale_factor
int m_em_unit
wxFont m_normal_font
float m_prev_scale_factor
bool m_can_rescale
bool m_force_rescale
int m_new_font_point_size

Detailed Description

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
HEIGHT 
WIDTH 
SPACING 
124{ HEIGHT = 60, WIDTH = 30, SPACING = 5 };
@ SPACING
Definition PrintHostDialogs.hpp:124
@ WIDTH
Definition PrintHostDialogs.hpp:124
@ HEIGHT
Definition PrintHostDialogs.hpp:124

◆ Column

Enumerator
COL_ID 
COL_PROGRESS 
COL_STATUS 
COL_HOST 
COL_SIZE 
COL_FILENAME 
COL_ERRORMSG 
105 {
106 COL_ID,
109 COL_HOST,
110 COL_SIZE,
113 };
@ COL_ID
Definition PrintHostDialogs.hpp:106
@ COL_STATUS
Definition PrintHostDialogs.hpp:108
@ COL_PROGRESS
Definition PrintHostDialogs.hpp:107
@ COL_ERRORMSG
Definition PrintHostDialogs.hpp:112
@ COL_FILENAME
Definition PrintHostDialogs.hpp:111
@ COL_HOST
Definition PrintHostDialogs.hpp:109
@ COL_SIZE
Definition PrintHostDialogs.hpp:110

◆ JobState

Enumerator
ST_NEW 
ST_PROGRESS 
ST_ERROR 
ST_CANCELLING 
ST_CANCELLED 
ST_COMPLETED 
115 {
116 ST_NEW,
118 ST_ERROR,
122 };
@ ST_COMPLETED
Definition PrintHostDialogs.hpp:121
@ ST_CANCELLED
Definition PrintHostDialogs.hpp:120
@ ST_PROGRESS
Definition PrintHostDialogs.hpp:117
@ ST_NEW
Definition PrintHostDialogs.hpp:116
@ ST_CANCELLING
Definition PrintHostDialogs.hpp:119
@ ST_ERROR
Definition PrintHostDialogs.hpp:118

◆ UserDataType

Enumerator
UDT_SIZE 
UDT_POSITION 
UDT_COLS 
126 {
127 UDT_SIZE = 1,
128 UDT_POSITION = 2,
129 UDT_COLS = 4
130 };
@ UDT_POSITION
Definition PrintHostDialogs.hpp:128
@ UDT_COLS
Definition PrintHostDialogs.hpp:129
@ UDT_SIZE
Definition PrintHostDialogs.hpp:127

Constructor & Destructor Documentation

◆ PrintHostQueueDialog()

Slic3r::GUI::PrintHostQueueDialog::PrintHostQueueDialog ( wxWindow * parent)
1248 : DPIDialog(parent, wxID_ANY, _L("Print host upload queue"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
1249 , on_progress_evt(this, EVT_PRINTHOST_PROGRESS, &PrintHostQueueDialog::on_progress, this)
1250 , on_error_evt(this, EVT_PRINTHOST_ERROR, &PrintHostQueueDialog::on_error, this)
1251 , on_cancel_evt(this, EVT_PRINTHOST_CANCEL, &PrintHostQueueDialog::on_cancel, this)
1252 , on_info_evt(this, EVT_PRINTHOST_INFO, &PrintHostQueueDialog::on_info, this)
1253{
1254 const auto em = GetTextExtent("m").x;
1255
1256 auto *topsizer = new wxBoxSizer(wxVERTICAL);
1257
1258 std::vector<int> widths;
1259 widths.reserve(7);
1260 if (!load_user_data(UDT_COLS, widths)) {
1261 widths.clear();
1262 for (size_t i = 0; i < 7; i++)
1263 widths.push_back(-1);
1264 }
1265
1266 job_list = new wxDataViewListCtrl(this, wxID_ANY);
1267
1268 // MSW DarkMode: workaround for the selected item in the list
1269 auto append_text_column = [this](const wxString& label, int width, wxAlignment align = wxALIGN_LEFT,
1270 int flags = wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE) {
1271#ifdef _WIN32
1272 job_list->AppendColumn(new wxDataViewColumn(label, new TextRenderer(), job_list->GetColumnCount(), width, align, flags));
1273#else
1274 job_list->AppendTextColumn(label, wxDATAVIEW_CELL_INERT, width, align, flags);
1275#endif
1276 };
1277
1278 // Note: Keep these in sync with Column
1279 append_text_column(_L("ID"), widths[0]);
1280 job_list->AppendProgressColumn(_L("Progress"), wxDATAVIEW_CELL_INERT, widths[1], wxALIGN_LEFT, wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE);
1281 append_text_column(_L("Status"),widths[2]);
1282 append_text_column(_L("Host"), widths[3]);
1283 append_text_column(_L_CONTEXT(L_CONTEXT("Size", "OfFile"), "OfFile"), widths[4]);
1284 append_text_column(_L("Filename"), widths[5]);
1285 append_text_column(_L("Message"), widths[6]);
1286 //append_text_column(_L("Error Message"), -1, wxALIGN_CENTER, wxDATAVIEW_COL_HIDDEN);
1287
1288 auto *btnsizer = new wxBoxSizer(wxHORIZONTAL);
1289 btn_cancel = new wxButton(this, wxID_DELETE, _L("Cancel selected"));
1290 btn_cancel->Disable();
1291 btn_error = new wxButton(this, wxID_ANY, _L("Show error message"));
1292 btn_error->Disable();
1293 // Note: The label needs to be present, otherwise we get accelerator bugs on Mac
1294 auto *btn_close = new wxButton(this, wxID_CANCEL, _L("Close"));
1295 btnsizer->Add(btn_cancel, 0, wxRIGHT, SPACING);
1296 btnsizer->Add(btn_error, 0);
1297 btnsizer->AddStretchSpacer();
1298 btnsizer->Add(btn_close);
1299
1300 topsizer->Add(job_list, 1, wxEXPAND | wxBOTTOM, SPACING);
1301 topsizer->Add(btnsizer, 0, wxEXPAND);
1302 SetSizer(topsizer);
1303
1304 wxGetApp().UpdateDlgDarkUI(this);
1305 wxGetApp().UpdateDVCDarkUI(job_list);
1306
1307 std::vector<int> size;
1308 SetSize(load_user_data(UDT_SIZE, size) ? wxSize(size[0] * em, size[1] * em) : wxSize(HEIGHT * em, WIDTH * em));
1309
1310 Bind(wxEVT_SIZE, [this](wxSizeEvent& evt) {
1311 OnSize(evt);
1313 });
1314
1315 std::vector<int> pos;
1316 if (load_user_data(UDT_POSITION, pos))
1317 SetPosition(wxPoint(pos[0], pos[1]));
1318
1319 Bind(wxEVT_MOVE, [this](wxMoveEvent& evt) {
1321 });
1322
1323 job_list->Bind(wxEVT_DATAVIEW_SELECTION_CHANGED, [this](wxDataViewEvent&) { on_list_select(); });
1324
1325 btn_cancel->Bind(wxEVT_BUTTON, [this](wxCommandEvent&) {
1326 int selected = job_list->GetSelectedRow();
1327 if (selected == wxNOT_FOUND) { return; }
1328
1329 const JobState state = get_state(selected);
1330 if (state < ST_ERROR) {
1331 GUI::wxGetApp().printhost_job_queue().cancel(selected);
1332 }
1333 });
1334
1335 btn_error->Bind(wxEVT_BUTTON, [this](wxCommandEvent&) {
1336 int selected = job_list->GetSelectedRow();
1337 if (selected == wxNOT_FOUND) { return; }
1338 GUI::show_error(nullptr, job_list->GetTextValue(selected, COL_ERRORMSG));
1339 });
1340}
#define L_CONTEXT(s, context)
Definition DesignOffer.hpp:17
#define _L(s)
Definition OBJ.cpp:34
class WXDLLIMPEXP_FWD_CORE wxButton
Definition ProgressDialog.hpp:27
void on_progress(Event &)
Definition PrintHostDialogs.cpp:1428
void on_info(Event &)
Definition PrintHostDialogs.cpp:1486
void save_user_data(int)
Definition PrintHostDialogs.cpp:1523
wxButton * btn_cancel
Definition PrintHostDialogs.hpp:132
wxDataViewListCtrl * job_list
Definition PrintHostDialogs.hpp:134
void on_error(Event &)
Definition PrintHostDialogs.cpp:1451
EventGuard on_cancel_evt
Definition PrintHostDialogs.hpp:138
void on_cancel(Event &)
Definition PrintHostDialogs.cpp:1471
wxButton * btn_error
Definition PrintHostDialogs.hpp:133
JobState
Definition PrintHostDialogs.hpp:115
EventGuard on_info_evt
Definition PrintHostDialogs.hpp:139
bool load_user_data(int, std::vector< int > &)
Definition PrintHostDialogs.cpp:1545
JobState get_state(int idx)
Definition PrintHostDialogs.cpp:1392
EventGuard on_error_evt
Definition PrintHostDialogs.hpp:137
void on_list_select()
Definition PrintHostDialogs.cpp:1415
EventGuard on_progress_evt
Definition PrintHostDialogs.hpp:136
void show_error(wxWindow *parent, const wxString &message, bool has_code_excerpts)
Definition GUI.cpp:296
coord_t width(const BoundingBox &box)
Definition Arrange.cpp:1184
Vec3d pos(const Pt &p)
Definition ReprojectPointsOnMesh.hpp:16
#define _L_CONTEXT(s, ctx)
Definition I18N.hpp:15

References PrintHostQueueDialog(), _L, _L_CONTEXT, btn_cancel, btn_error, COL_ERRORMSG, get_state(), HEIGHT, job_list, L_CONTEXT, load_user_data(), on_cancel(), on_cancel_evt, on_error(), on_error_evt, on_info(), on_info_evt, on_list_select(), on_progress(), on_progress_evt, save_user_data(), Slic3r::GUI::show_error(), SPACING, ST_ERROR, UDT_COLS, UDT_POSITION, UDT_SIZE, WIDTH, and wxButton.

Referenced by PrintHostQueueDialog().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ append_job()

void Slic3r::GUI::PrintHostQueueDialog::append_job ( const PrintHostJob & job)
1343{
1344 wxCHECK_RET(!job.empty(), "PrintHostQueueDialog: Attempt to append an empty job");
1345
1346 wxVector<wxVariant> fields;
1347 fields.push_back(wxVariant(wxString::Format("%d", job_list->GetItemCount() + 1)));
1348 fields.push_back(wxVariant(0));
1349 fields.push_back(wxVariant(_L("Queued")));
1350 fields.push_back(wxVariant(job.printhost->get_host()));
1351 boost::system::error_code ec;
1352 boost::uintmax_t size_i = boost::filesystem::file_size(job.upload_data.source_path, ec);
1353 std::stringstream stream;
1354 if (ec) {
1355 stream << "unknown";
1356 size_i = 0;
1357 BOOST_LOG_TRIVIAL(error) << ec.message();
1358 } else
1359 stream << std::fixed << std::setprecision(2) << ((float)size_i / 1024 / 1024) << "MB";
1360 fields.push_back(wxVariant(stream.str()));
1361 fields.push_back(wxVariant(from_path(job.upload_data.upload_path)));
1362 fields.push_back(wxVariant(""));
1363 job_list->AppendItem(fields, static_cast<wxUIntPtr>(ST_NEW));
1364 // Both strings are UTF-8 encoded.
1365 upload_names.emplace_back(job.printhost->get_host(), job.upload_data.upload_path.string());
1366
1367 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());
1368}
std::vector< std::pair< std::string, std::string > > upload_names
Definition PrintHostDialogs.hpp:149
wxString from_path(const boost::filesystem::path &path)
Definition GUI.cpp:555

References _L, Slic3r::PrintHostJob::empty(), Slic3r::GUI::from_path(), job_list, Slic3r::PrintHostJob::printhost, Slic3r::PrintHostUpload::source_path, ST_NEW, Slic3r::PrintHostJob::upload_data, upload_names, and Slic3r::PrintHostUpload::upload_path.

Here is the call graph for this function:

◆ em_unit()

int Slic3r::GUI::DPIAware< wxDialog >::em_unit ( ) const
inlineinherited
203{ return m_em_unit; }
Definition GUI_Utils.hpp:107

Referenced by Slic3r::GUI::AuxiliaryDialog::AuxiliaryDialog(), Slic3r::GUI::CopyrightsDialog::CopyrightsDialog(), Slic3r::GUI::DesignTextDialog::DesignTextDialog(), Slic3r::GUI::EditGCodeDialog::EditGCodeDialog(), Slic3r::GUI::FileArchiveDialog::FileArchiveDialog(), Slic3r::GUI::MsgNoUpdates::MsgNoUpdates(), Slic3r::GUI::MsgUpdateForced::MsgUpdateForced(), Slic3r::GUI::OAuthDialog::OAuthDialog(), Slic3r::GUI::ParamsDialog::ParamsDialog(), Slic3r::GUI::PhysicalPrinterDialog::PhysicalPrinterDialog(), Slic3r::GUI::SettingsDialog::SettingsDialog(), anonymous_namespace{3DPrinterOS.cpp}::TokenAuthDialog::TokenAuthDialog(), anonymous_namespace{3DPrinterOS.cpp}::UploadOptionsDialog::UploadOptionsDialog(), Slic3r::GUI::PublishSettingsDialog::add_row_ui(), Slic3r::GUI::DiffPresetDialog::complete_dialog_creation(), Slic3r::GUI::DiffPresetDialog::create_edit_sizer(), Slic3r::GUI::DiffPresetDialog::create_presets_sizer(), Slic3r::GUI::DiffPresetDialog::create_tree(), Slic3r::GUI::ElegooPrintHostSendDialog::init(), Slic3r::GUI::FlashforgePrintHostSendDialog::init(), Slic3r::GUI::PrintHostSendDialog::init(), Slic3r::GUI::AboutDialog::on_dpi_changed(), Slic3r::GUI::AuxiliaryDialog::on_dpi_changed(), Slic3r::GUI::BedShapeDialog::on_dpi_changed(), Slic3r::GUI::ConfigWizard::on_dpi_changed(), Slic3r::GUI::CopyrightsDialog::on_dpi_changed(), Slic3r::GUI::DiffPresetDialog::on_dpi_changed(), Slic3r::GUI::EditGCodeDialog::on_dpi_changed(), Slic3r::GUI::FileArchiveDialog::on_dpi_changed(), Slic3r::GUI::OAuthDialog::on_dpi_changed(), Slic3r::GUI::ObjectTableDialog::on_dpi_changed(), Slic3r::GUI::ParamsDialog::on_dpi_changed(), Slic3r::GUI::PhysicalPrinterDialog::on_dpi_changed(), Slic3r::GUI::PrintHostQueueDialog::on_dpi_changed(), Slic3r::GUI::PurgeModeDialog::on_dpi_changed(), Slic3r::GUI::SavePresetDialog::on_dpi_changed(), Slic3r::GUI::SendSystemInfoDialog::on_dpi_changed(), Slic3r::GUI::SettingsDialog::on_dpi_changed(), and Slic3r::GUI::UnsavedChangesDialog::on_dpi_changed().

Here is the caller graph for this function:

◆ enable_force_rescale()

void Slic3r::GUI::DPIAware< wxDialog >::enable_force_rescale ( )
inlineinherited
206{ m_force_rescale = true; }

◆ EndModal()

void Slic3r::GUI::DPIDialog::EndModal ( int retCode)
inlineoverrideinherited
306 {
307 if (!dialogStack.empty() && dialogStack.front() != this) {
308 // This is a bug in wxWidgets
309 // when the dialog is not top modal dialog, EndModal() just hide dialog without quit
310 // the modal event loop. And the modal event loop blocks us from bottom widgets.
311 // Solution: let user click it manually or close outside. FIXME
312 BOOST_LOG_TRIVIAL(warning) << "DPIAware::EndModal Error: dialogStack is not empty, but top dialog is not this one. retCode=" << retCode;
313 return;
314 }
315
316 return wxDialog::EndModal(retCode);
317 }
std::deque< wxDialog * > dialogStack
Definition GUI_Utils.cpp:549

References Slic3r::GUI::dialogStack.

Referenced by Slic3r::GUI::CloneDialog::CloneDialog(), Slic3r::GUI::ConfigWizard::ConfigWizard(), Slic3r::GUI::CreatePresetSuccessfulDialog::CreatePresetSuccessfulDialog(), Slic3r::GUI::DeleteConfirmDialog::DeleteConfirmDialog(), Slic3r::GUI::DesignVariableDialog::DesignVariableDialog(), Slic3r::GUI::anonymous_namespace{PrintHostDialogs.cpp}::FlashforgeSlotDialog::FlashforgeSlotDialog(), Slic3r::GUI::GuideFrame::GuideFrame(), Slic3r::GUI::InputIpAddressDialog::InputIpAddressDialog(), Slic3r::GUI::ManualNozzleCountDialog::ManualNozzleCountDialog(), Slic3r::GUI::MsgUpdateConfig::MsgUpdateConfig(), Slic3r::GUI::MsgUpdateForced::MsgUpdateForced(), Slic3r::GUI::MultiChoiceDialog::MultiChoiceDialog(), Slic3r::GUI::NetworkErrorDialog::NetworkErrorDialog(), Slic3r::GUI::NetworkPluginRestartDialog::NetworkPluginRestartDialog(), Slic3r::GUI::PartSkipConfirmDialog::PartSkipConfirmDialog(), Slic3r::GUI::PhysicalPrinterDialog::PhysicalPrinterDialog(), Slic3r::GUI::PlateNameEditDialog::PlateNameEditDialog(), Slic3r::GUI::PlateSettingsDialog::PlateSettingsDialog(), Slic3r::GUI::PublishSettingsDialog::PublishSettingsDialog(), Slic3r::GUI::SelectMachineDialog::SelectMachineDialog(), Slic3r::GUI::SendFailedConfirm::SendFailedConfirm(), Slic3r::GUI::SendSystemInfoDialog::SendSystemInfoDialog(), Slic3r::GUI::ShortcutCaptureDialog::ShortcutCaptureDialog(), Slic3r::GUI::SingleChoiceDialog::SingleChoiceDialog(), StepMeshDialog::StepMeshDialog(), Slic3r::GUI::SyncAmsInfoDialog::SyncAmsInfoDialog(), anonymous_namespace{3DPrinterOS.cpp}::TokenAuthDialog::TokenAuthDialog(), Slic3r::GUI::UpdatePluginDialog::UpdatePluginDialog(), Slic3r::GUI::UpdateVersionDialog::UpdateVersionDialog(), Slic3r::GUI::wgtDeviceNozzleRackUpgradeDlg::wgtDeviceNozzleRackUpgradeDlg(), Slic3r::GUI::SavePresetDialog::accept(), Slic3r::GUI::MsgDialog::add_button(), Slic3r::GUI::TipsDialog::add_button(), Slic3r::GUI::FilamentPickerDialog::BindEvents(), Slic3r::GUI::PluginPickerDialog::build_capability_ui(), Slic3r::GUI::BedShapeDialog::build_dialog(), Slic3r::GUI::PluginPickerDialog::build_ui(), Slic3r::GUI::UnsavedChangesDialog::close(), Slic3r::GUI::FileArchiveDialog::create_btn_sizer(), Slic3r::GUI::ColorDecomposeDialog::create_button_panel(), Slic3r::GUI::MixedFilamentDialog::create_button_panel(), Slic3r::GUI::CreateFilamentPresetDialog::create_dialog_buttons(), Slic3r::GUI::CreatePresetForPrinterDialog::create_dialog_buttons(), Slic3r::GUI::EditFilamentPresetDialog::create_dialog_buttons(), Slic3r::GUI::ExportConfigsDialog::create_dialog_buttons(), Slic3r::GUI::PreferencesDialog::create_item_language_combobox(), Slic3r::GUI::PreferencesDialog::create_item_region_combobox(), Slic3r::GUI::PreferencesDialog::create_items(), Slic3r::GUI::CreatePrinterPresetDialog::create_page1_dialog_buttons(), Slic3r::GUI::CreatePrinterPresetDialog::create_page2_dialog_buttons(), Slic3r::GUI::ExportConfigsDialog::data_init(), Slic3r::GUI::WebDialog::destroy_silently(), Slic3r::GUI::EditFilamentPresetDialog::edit_preset(), Slic3r::GUI::ConnectPrinterDialog::end_modal(), Slic3r::GUI::PrintHostSendDialog::EndModal(), Slic3r::GUI::ColorPickerDialog::finish(), Slic3r::GUI::WebDialog::finish(), Slic3r::GUI::Newer3mfVersionDialog::get_btn_sizer(), Slic3r::GUI::ScoreDialog::get_button_sizer(), Slic3r::GUI::WebViewHostDialog::handle_common_script_command(), Slic3r::GUI::ExportPresetBundleDialog::InitExportData(), Slic3r::GUI::SelectMachineDialog::navigate_to_timelapse_page(), Slic3r::GUI::BindMachineDialog::on_bind_success(), Slic3r::GUI::ConnectPrinterDialog::on_button_confirm(), Slic3r::GUI::RecenterDialog::on_button_confirm(), Slic3r::GUI::BindMachineDialog::on_cancel(), Slic3r::GUI::EditCalibrationHistoryDialog::on_cancel(), Slic3r::GUI::InputIpAddressDialog::on_cancel(), Slic3r::GUI::NewCalibrationHistoryDialog::on_cancel(), Slic3r::GUI::OAuthDialog::on_cancel(), Slic3r::GUI::PingCodeBindDialog::on_cancel(), Slic3r::GUI::SelectMachineDialog::on_cancel(), Slic3r::GUI::SendToPrinterDialog::on_cancel(), Slic3r::GUI::SyncAmsInfoDialog::on_cancel(), Slic3r::GUI::UnBindMachineDialog::on_cancel(), Slic3r::GUI::WebDialog::on_close_window(), Slic3r::GUI::NetworkPluginDownloadDialog::on_dont_ask(), Slic3r::GUI::NetworkPluginDownloadDialog::on_download(), Slic3r::GUI::EditDevNameDialog::on_edit_name(), Slic3r::GUI::ConfirmBeforeSendDialog::on_hide(), Slic3r::GUI::PrivacyUpdateDialog::on_hide(), Slic3r::GUI::ShortcutCaptureDialog::on_key(), Slic3r::GUI::TextureImportDialog::on_ok_clicked(), Slic3r::GUI::FileArchiveDialog::on_open_button(), Slic3r::GUI::NetworkPluginDownloadDialog::on_remind_later(), Slic3r::GUI::ProjectDropDialog::on_select_cancel(), Slic3r::GUI::SavePresetDialog::on_select_cancel(), Slic3r::GUI::ProjectDropDialog::on_select_ok(), Slic3r::GUI::SendMultiMachinePage::on_send(), Slic3r::GUI::NetworkPluginDownloadDialog::on_skip(), Slic3r::GUI::TextureImportDialog::on_skip_clicked(), Slic3r::GUI::NetworkPluginDownloadDialog::on_skip_version(), Slic3r::GUI::Cornering_Test_Dlg::on_start(), Slic3r::GUI::FlowRateCalibrationDialog::on_start(), Slic3r::GUI::Input_Shaping_Damp_Test_Dlg::on_start(), Slic3r::GUI::Input_Shaping_Freq_Test_Dlg::on_start(), Slic3r::GUI::MaxVolumetricSpeed_Test_Dlg::on_start(), Slic3r::GUI::PA_Calibration_Dlg::on_start(), Slic3r::GUI::Retraction_Test_Dlg::on_start(), Slic3r::GUI::Temp_Calibration_Dlg::on_start(), Slic3r::GUI::VFA_Test_Dlg::on_start(), Slic3r::GUI::CalibrationDialog::on_start_calibration(), Slic3r::GUI::UnBindMachineDialog::on_unbind_printer(), Slic3r::GUI::PartSkipDialog::OnApplyDialog(), anonymous_namespace{3DPrinterOS.cpp}::TokenAuthDialog::OnCancel(), Slic3r::GUI::AboutDialog::onCloseDialog(), Slic3r::GUI::CopyrightsDialog::onCloseDialog(), Slic3r::GUI::MultiNozzleSyncDialog::OnRackStatusReadingFinished(), Slic3r::GUI::GuideFrame::OnScriptMessage(), Slic3r::GUI::InputIpAddressDialog::OnTimer(), Slic3r::GUI::KBShortcutsDialog::open_mouse_preferences(), Slic3r::GUI::TroubleshootDialog::PackAll(), Slic3r::GUI::TroubleshootDialog::RebuildSystemProfiles(), Slic3r::GUI::SpeedDialWebDialog::run_action(), Slic3r::GUI::OAuthDialog::Show(), Slic3r::GUI::MultiNozzleSyncDialog::UpdateButton(), and Slic3r::GUI::CreatePrinterPresetDialog::validate_input_valid().

◆ force_rescale()

bool Slic3r::GUI::DPIAware< wxDialog >::force_rescale ( ) const
inlineinherited
201{ return m_force_rescale; }

◆ get_active_jobs()

void Slic3r::GUI::PrintHostQueueDialog::get_active_jobs ( std::vector< std::pair< std::string, std::string > > & ret)
1512{
1513 int ic = job_list->GetItemCount();
1514 for (int i = 0; i < ic; i++)
1515 {
1516 auto item = job_list->RowToItem(i);
1517 auto data = job_list->GetItemData(item);
1518 JobState st = static_cast<JobState>(data);
1519 if(st == JobState::ST_NEW || st == JobState::ST_PROGRESS)
1520 ret.emplace_back(upload_names[i]);
1521 }
1522}

References job_list, ST_NEW, ST_PROGRESS, and upload_names.

◆ get_state()

PrintHostQueueDialog::JobState Slic3r::GUI::PrintHostQueueDialog::get_state ( int idx)
private
1393{
1394 wxCHECK_MSG(idx >= 0 && idx < job_list->GetItemCount(), ST_ERROR, "Out of bounds access to job list");
1395 return static_cast<JobState>(job_list->GetItemData(job_list->RowToItem(idx)));
1396}

References job_list, and ST_ERROR.

Referenced by PrintHostQueueDialog(), and on_list_select().

Here is the caller graph for this function:

◆ is_new_scale_factor()

bool Slic3r::GUI::DPIAware< wxDialog >::is_new_scale_factor ( ) const
inlineprivateinherited
262{ return fabs(m_scale_factor - m_prev_scale_factor) > 0.001; }

◆ load_user_data()

bool Slic3r::GUI::PrintHostQueueDialog::load_user_data ( int udt,
std::vector< int > & vector )
private
1546{
1547 auto* app_config = wxGetApp().app_config;
1548 auto hasget = [app_config](const std::string& name, std::vector<int>& vector)->bool {
1549 if (app_config->has(name)) {
1550 std::string val = app_config->get(name);
1551 if (!val.empty() || val[0]!='\0') {
1552 vector.push_back(std::stoi(val));
1553 return true;
1554 }
1555 }
1556 return false;
1557 };
1558 if (udt & UserDataType::UDT_SIZE) {
1559 if (!hasget("print_host_queue_dialog_height",vector))
1560 return false;
1561 if (!hasget("print_host_queue_dialog_width", vector))
1562 return false;
1563 }
1565 {
1566 if (!hasget("print_host_queue_dialog_x", vector))
1567 return false;
1568 if (!hasget("print_host_queue_dialog_y", vector))
1569 return false;
1570 }
1571 if (udt & UserDataType::UDT_COLS)
1572 {
1573 for (size_t i = 0; i < 7; i++)
1574 {
1575 if (!hasget("print_host_queue_dialog_column_" + std::to_string(i), vector))
1576 return false;
1577 }
1578 }
1579 return true;
1580}

References UDT_COLS, UDT_POSITION, and UDT_SIZE.

Referenced by PrintHostQueueDialog().

Here is the caller graph for this function:

◆ normal_font()

◆ on_cancel()

void Slic3r::GUI::PrintHostQueueDialog::on_cancel ( Event & evt)
private
1472{
1473 wxCHECK_RET(evt.job_id < (size_t)job_list->GetItemCount(), "Out of bounds access to job list");
1474
1475 set_state(evt.job_id, ST_CANCELLED);
1476 job_list->SetValue(wxVariant(0), evt.job_id, COL_PROGRESS);
1477
1479
1480 wxVariant nm, hst;
1481 job_list->GetValue(nm, evt.job_id, COL_FILENAME);
1482 job_list->GetValue(hst, evt.job_id, COL_HOST);
1483 wxGetApp().notification_manager()->upload_job_notification_show_canceled(evt.job_id + 1, into_u8(nm.GetString()), into_u8(hst.GetString()));
1484}
void set_state(int idx, JobState)
Definition PrintHostDialogs.cpp:1398
std::string into_u8(const wxString &str)
Definition GUI.cpp:549

References COL_FILENAME, COL_HOST, COL_PROGRESS, Slic3r::GUI::into_u8(), Slic3r::GUI::PrintHostQueueDialog::Event::job_id, job_list, on_list_select(), set_state(), and ST_CANCELLED.

Referenced by PrintHostQueueDialog().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_dpi_changed()

void Slic3r::GUI::PrintHostQueueDialog::on_dpi_changed ( const wxRect & suggested_rect)
overrideprotectedvirtual

Implements Slic3r::GUI::DPIAware< wxDialog >.

1371{
1372 const int& em = em_unit();
1373
1374 msw_buttons_rescale(this, em, { wxID_DELETE, wxID_CANCEL, btn_error->GetId() });
1375
1376 SetMinSize(wxSize(HEIGHT * em, WIDTH * em));
1377
1378 Fit();
1379 Refresh();
1380
1382}
int em_unit() const
Definition GUI_Utils.hpp:203
void msw_buttons_rescale(wxDialog *dlg, const int em_unit, const std::vector< int > &btn_ids)
Definition wxExtensions.cpp:406

References btn_error, Slic3r::GUI::DPIAware< wxDialog >::em_unit(), HEIGHT, msw_buttons_rescale(), save_user_data(), UDT_COLS, UDT_POSITION, UDT_SIZE, and WIDTH.

Here is the call graph for this function:

◆ on_error()

void Slic3r::GUI::PrintHostQueueDialog::on_error ( Event & evt)
private
1452{
1453 wxCHECK_RET(evt.job_id < (size_t)job_list->GetItemCount(), "Out of bounds access to job list");
1454
1455 set_state(evt.job_id, ST_ERROR);
1456
1457 auto errormsg = format_wxstr("%1%\n%2%", _L("Error uploading to print host") + ":", evt.status);
1458 job_list->SetValue(wxVariant(0), evt.job_id, COL_PROGRESS);
1459 job_list->SetValue(wxVariant(errormsg), evt.job_id, COL_ERRORMSG); // Stashes the error message into a hidden column for later
1460
1462
1463 GUI::show_error(nullptr, errormsg);
1464
1465 wxVariant nm, hst;
1466 job_list->GetValue(nm, evt.job_id, COL_FILENAME);
1467 job_list->GetValue(hst, evt.job_id, COL_HOST);
1468 wxGetApp().notification_manager()->upload_job_notification_show_error(evt.job_id + 1, into_u8(nm.GetString()), into_u8(hst.GetString()));
1469}
wxString format_wxstr(const char *fmt, TArgs &&... args)
Definition format.hpp:22

References _L, COL_ERRORMSG, COL_FILENAME, COL_HOST, COL_PROGRESS, Slic3r::GUI::format_wxstr(), Slic3r::GUI::into_u8(), Slic3r::GUI::PrintHostQueueDialog::Event::job_id, job_list, on_list_select(), set_state(), Slic3r::GUI::show_error(), ST_ERROR, and Slic3r::GUI::PrintHostQueueDialog::Event::status.

Referenced by PrintHostQueueDialog().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_info()

void Slic3r::GUI::PrintHostQueueDialog::on_info ( Event & evt)
private
1487{
1488 /*
1489 wxCHECK_RET(evt.job_id < (size_t)job_list->GetItemCount(), "Out of bounds access to job list");
1490
1491 if (evt.tag == L"resolve") {
1492 wxVariant hst(evt.status);
1493 job_list->SetValue(hst, evt.job_id, COL_HOST);
1494 wxGetApp().notification_manager()->set_upload_job_notification_host(evt.job_id + 1, into_u8(evt.status));
1495 } else if (evt.tag == L"complete") {
1496 wxVariant hst(evt.status);
1497 job_list->SetValue(hst, evt.job_id, COL_ERRORMSG);
1498 wxGetApp().notification_manager()->set_upload_job_notification_completed(evt.job_id + 1);
1499 wxGetApp().notification_manager()->set_upload_job_notification_status(evt.job_id + 1, into_u8(evt.status));
1500 } else if(evt.tag == L"complete_with_warning"){
1501 wxVariant hst(evt.status);
1502 job_list->SetValue(hst, evt.job_id, COL_ERRORMSG);
1503 wxGetApp().notification_manager()->set_upload_job_notification_completed_with_warning(evt.job_id + 1);
1504 wxGetApp().notification_manager()->set_upload_job_notification_status(evt.job_id + 1, into_u8(evt.status));
1505 } else if (evt.tag == L"set_complete_off") {
1506 wxGetApp().notification_manager()->set_upload_job_notification_comp_on_100(evt.job_id + 1, false);
1507 }
1508 */
1509}

Referenced by PrintHostQueueDialog().

Here is the caller graph for this function:

◆ on_list_select()

void Slic3r::GUI::PrintHostQueueDialog::on_list_select ( )
private
1416{
1417 int selected = job_list->GetSelectedRow();
1418 if (selected != wxNOT_FOUND) {
1419 const JobState state = get_state(selected);
1420 btn_cancel->Enable(state < ST_ERROR);
1421 btn_error->Enable(state == ST_ERROR);
1422 Layout();
1423 } else {
1424 btn_cancel->Disable();
1425 }
1426}

References btn_cancel, btn_error, get_state(), job_list, and ST_ERROR.

Referenced by PrintHostQueueDialog(), on_cancel(), on_error(), and on_progress().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_progress()

void Slic3r::GUI::PrintHostQueueDialog::on_progress ( Event & evt)
private
1429{
1430 wxCHECK_RET(evt.job_id < (size_t)job_list->GetItemCount(), "Out of bounds access to job list");
1431
1432 if (evt.progress < 100) {
1433 set_state(evt.job_id, ST_PROGRESS);
1434 job_list->SetValue(wxVariant(evt.progress), evt.job_id, COL_PROGRESS);
1435 } else {
1436 set_state(evt.job_id, ST_COMPLETED);
1437 job_list->SetValue(wxVariant(100), evt.job_id, COL_PROGRESS);
1438 }
1439
1441
1442 if (evt.progress > 0)
1443 {
1444 wxVariant nm, hst;
1445 job_list->GetValue(nm, evt.job_id, COL_FILENAME);
1446 job_list->GetValue(hst, evt.job_id, COL_HOST);
1447 wxGetApp().notification_manager()->set_upload_job_notification_percentage(evt.job_id + 1, into_u8(nm.GetString()), into_u8(hst.GetString()), evt.progress / 100.f);
1448 }
1449}

References COL_FILENAME, COL_HOST, COL_PROGRESS, Slic3r::GUI::into_u8(), Slic3r::GUI::PrintHostQueueDialog::Event::job_id, job_list, on_list_select(), Slic3r::GUI::PrintHostQueueDialog::Event::progress, set_state(), ST_COMPLETED, and ST_PROGRESS.

Referenced by PrintHostQueueDialog().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_sys_color_changed()

void Slic3r::GUI::PrintHostQueueDialog::on_sys_color_changed ( )
overrideprotectedvirtual

Reimplemented from Slic3r::GUI::DPIAware< wxDialog >.

1385{
1386#ifdef _WIN32
1387 wxGetApp().UpdateDlgDarkUI(this);
1388 wxGetApp().UpdateDVCDarkUI(job_list);
1389#endif
1390}

References job_list.

◆ prev_scale_factor()

float Slic3r::GUI::DPIAware< wxDialog >::prev_scale_factor ( ) const
inlineinherited
196{ return m_prev_scale_factor; }

◆ rescale()

void Slic3r::GUI::DPIAware< wxDialog >::rescale ( const wxRect & suggested_rect)
inlineprivateinherited
265 {
266 this->Freeze();
267
268 m_force_rescale = false;
269
270 // set normal application font as a current window font
271 m_normal_font = this->GetFont();
272
274
275 // rescale missed controls sizes and images
277
278 this->Layout();
279 this->Thaw();
280
281 // reset previous scale factor from current scale factor value
283 }
virtual void on_dpi_changed(const wxRect &suggested_rect)=0
void update_em_unit()
Definition GUI_Utils.hpp:249

◆ save_user_data()

void Slic3r::GUI::PrintHostQueueDialog::save_user_data ( int udt)
private
1524{
1525 const auto em = GetTextExtent("m").x;
1526 auto *app_config = wxGetApp().app_config;
1527 if (udt & UserDataType::UDT_SIZE) {
1528
1529 app_config->set("print_host_queue_dialog_height", std::to_string(this->GetSize().x / em));
1530 app_config->set("print_host_queue_dialog_width", std::to_string(this->GetSize().y / em));
1531 }
1533 {
1534 app_config->set("print_host_queue_dialog_x", std::to_string(this->GetPosition().x));
1535 app_config->set("print_host_queue_dialog_y", std::to_string(this->GetPosition().y));
1536 }
1537 if (udt & UserDataType::UDT_COLS)
1538 {
1539 for (size_t i = 0; i < job_list->GetColumnCount() - 1; i++)
1540 {
1541 app_config->set("print_host_queue_dialog_column_" + std::to_string(i), std::to_string(job_list->GetColumn(i)->GetWidth()));
1542 }
1543 }
1544}

References job_list, UDT_COLS, UDT_POSITION, and UDT_SIZE.

Referenced by PrintHostQueueDialog(), on_dpi_changed(), set_state(), and Show().

Here is the caller graph for this function:

◆ scale_factor()

float Slic3r::GUI::DPIAware< wxDialog >::scale_factor ( ) const
inlineinherited
195{ return m_scale_factor; }

◆ set_em_unit()

void Slic3r::GUI::DPIAware< wxDialog >::set_em_unit ( int v)
inlineinherited
200{ m_em_unit = v; }

◆ set_prev_scale_factor()

void Slic3r::GUI::DPIAware< wxDialog >::set_prev_scale_factor ( float v)
inlineinherited

◆ set_scale_factor()

void Slic3r::GUI::DPIAware< wxDialog >::set_scale_factor ( float v)
inlineinherited
198{ m_scale_factor = v; }

◆ set_state()

void Slic3r::GUI::PrintHostQueueDialog::set_state ( int idx,
JobState state )
private
1399{
1400 wxCHECK_RET(idx >= 0 && idx < job_list->GetItemCount(), "Out of bounds access to job list");
1401 job_list->SetItemData(job_list->RowToItem(idx), static_cast<wxUIntPtr>(state));
1402
1403 switch (state) {
1404 case ST_NEW: job_list->SetValue(_L("Queued"), idx, COL_STATUS); break;
1405 case ST_PROGRESS: job_list->SetValue(_L("Uploading"), idx, COL_STATUS); break;
1406 case ST_ERROR: job_list->SetValue(_L("Error"), idx, COL_STATUS); break;
1407 case ST_CANCELLING: job_list->SetValue(_L("Canceling"), idx, COL_STATUS); break;
1408 case ST_CANCELLED: job_list->SetValue(_L("Canceled"), idx, COL_STATUS); break;
1409 case ST_COMPLETED: job_list->SetValue(_L("Completed"), idx, COL_STATUS); break;
1410 }
1411 // This might be ambigous call, but user data needs to be saved time to time
1413}

References _L, COL_STATUS, job_list, save_user_data(), ST_CANCELLED, ST_CANCELLING, ST_COMPLETED, ST_ERROR, ST_NEW, ST_PROGRESS, UDT_COLS, UDT_POSITION, and UDT_SIZE.

Referenced by on_cancel(), on_error(), and on_progress().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Show()

virtual bool Slic3r::GUI::PrintHostQueueDialog::Show ( bool show = true)
inlineoverridevirtual
95 {
96 if(!show)
98 return DPIDialog::Show(show);
99 }

References save_user_data(), UDT_COLS, UDT_POSITION, and UDT_SIZE.

Here is the call graph for this function:

◆ ShowModal()

◆ update_em_unit()

void Slic3r::GUI::DPIAware< wxDialog >::update_em_unit ( )
inlineprivateinherited
250 {
251 // Linux specific issue : get_dpi_for_window(this) still doesn't responce to the Display's scale in new wxWidgets(3.1.3).
252 // So, calculate the m_em_unit value from the font size, as before
253#if !defined(__WXGTK__)
255#else
256 // initialize default width_unit according to the width of the one symbol ("m") of the currently active font of this window.
257 m_em_unit = std::max<size_t>(10, this->GetTextExtent("m").x - 1);
258#endif // __WXGTK__
259 }

Member Data Documentation

◆ btn_cancel

wxButton* Slic3r::GUI::PrintHostQueueDialog::btn_cancel
private

◆ btn_error

wxButton* Slic3r::GUI::PrintHostQueueDialog::btn_error
private

◆ job_list

wxDataViewListCtrl* Slic3r::GUI::PrintHostQueueDialog::job_list
private

◆ m_can_rescale

bool Slic3r::GUI::DPIAware< wxDialog >::m_can_rescale
privateinherited
235{ true };

◆ m_em_unit

int Slic3r::GUI::DPIAware< wxDialog >::m_em_unit
privateinherited

◆ m_force_rescale

bool Slic3r::GUI::DPIAware< wxDialog >::m_force_rescale
privateinherited
236{ false };

◆ m_new_font_point_size

int Slic3r::GUI::DPIAware< wxDialog >::m_new_font_point_size
privateinherited

◆ m_normal_font

wxFont Slic3r::GUI::DPIAware< wxDialog >::m_normal_font
privateinherited

◆ m_prev_scale_factor

float Slic3r::GUI::DPIAware< wxDialog >::m_prev_scale_factor
privateinherited

◆ m_scale_factor

float Slic3r::GUI::DPIAware< wxDialog >::m_scale_factor
privateinherited

◆ on_cancel_evt

EventGuard Slic3r::GUI::PrintHostQueueDialog::on_cancel_evt
private

Referenced by PrintHostQueueDialog().

◆ on_error_evt

EventGuard Slic3r::GUI::PrintHostQueueDialog::on_error_evt
private

Referenced by PrintHostQueueDialog().

◆ on_info_evt

EventGuard Slic3r::GUI::PrintHostQueueDialog::on_info_evt
private

Referenced by PrintHostQueueDialog().

◆ on_progress_evt

EventGuard Slic3r::GUI::PrintHostQueueDialog::on_progress_evt
private

Referenced by PrintHostQueueDialog().

◆ upload_names

std::vector<std::pair<std::string, std::string> > Slic3r::GUI::PrintHostQueueDialog::upload_names
private

Referenced by append_job(), and get_active_jobs().


The documentation for this class was generated from the following files: