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

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

Inheritance diagram for Slic3r::GUI::MultiMachinePickPage:
Collaboration diagram for Slic3r::GUI::MultiMachinePickPage:

Public Member Functions

 MultiMachinePickPage (Plater *plater=nullptr)
 ~MultiMachinePickPage ()
int get_selected_count ()
void update_selected_count ()
void on_dpi_changed (const wxRect &suggested_rect)
void on_sys_color_changed ()
void refresh_user_device ()
void on_confirm (wxCommandEvent &event)
bool Show (bool show)
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 ()

Private Member Functions

void update_em_unit ()
bool is_new_scale_factor () const
void rescale (const wxRect &suggested_rect)

Private Attributes

AppConfig * app_config
Label * m_label { nullptr }
wxScrolledWindow * scroll_macine_list { nullptr }
wxBoxSizer * sizer_machine_list { nullptr }
std::map< std::string, DevicePickItem * > m_device_items
int m_selected_count {0}
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

Constructor & Destructor Documentation

◆ MultiMachinePickPage()

Slic3r::GUI::MultiMachinePickPage::MultiMachinePickPage ( Plater * plater = nullptr)
326 : DPIDialog(static_cast<wxWindow*>(wxGetApp().mainframe), wxID_ANY,
327 _L("Edit multiple printers"),
328 wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX | wxRESIZE_BORDER)
329{
330#ifdef __WINDOWS__
331 SetDoubleBuffered(true);
332#endif //__WINDOWS__
333
335
336 SetBackgroundColour(*wxWHITE);
337
338 wxBoxSizer* main_sizer = new wxBoxSizer(wxVERTICAL);
339
340 auto line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL);
341 line_top->SetBackgroundColour(wxColour(166, 169, 170));
342
343 m_label = new Label(this, _L("Select connected printers (0/6)"));
344
345 scroll_macine_list = new wxScrolledWindow(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL);
346 scroll_macine_list->SetSize(wxSize(FromDIP(400), FromDIP(10 * 30)));
347 scroll_macine_list->SetMinSize(wxSize(FromDIP(400), FromDIP(10 * 30)));
348 scroll_macine_list->SetMaxSize(wxSize(FromDIP(400), FromDIP(10 * 30)));
349 scroll_macine_list->SetBackgroundColour(*wxWHITE);
350 scroll_macine_list->SetScrollRate(0, FromDIP(DEVICE_ITEM_MAX_HEIGHT));
351
352 sizer_machine_list = new wxBoxSizer(wxVERTICAL);
354 scroll_macine_list->Layout();
355
356 main_sizer->Add(line_top, 0, wxEXPAND, 0);
357 main_sizer->AddSpacer(FromDIP(10));
358 main_sizer->Add(m_label, 0, wxLEFT, FromDIP(20));
359 main_sizer->Add(scroll_macine_list, 0, wxLEFT|wxRIGHT, FromDIP(20));
360 main_sizer->AddSpacer(FromDIP(10));
361
362 SetSizer(main_sizer);
363 Layout();
364 Fit();
365 Centre(wxBOTH);
366
367 wxGetApp().UpdateDlgDarkUI(this);
368}
#define DEVICE_ITEM_MAX_HEIGHT
Definition MultiMachine.hpp:20
#define _L(s)
Definition OBJ.cpp:34
Label * m_label
Definition MultiMachinePage.hpp:96
AppConfig * app_config
Definition MultiMachinePage.hpp:95
wxScrolledWindow * scroll_macine_list
Definition MultiMachinePage.hpp:97
wxBoxSizer * sizer_machine_list
Definition MultiMachinePage.hpp:98
AppConfig * get_app_config()
Definition GUI.cpp:539

References _L, app_config, DEVICE_ITEM_MAX_HEIGHT, Slic3r::GUI::get_app_config(), m_label, Slic3r::GUI::plater(), scroll_macine_list, and sizer_machine_list.

Here is the call graph for this function:

◆ ~MultiMachinePickPage()

Slic3r::GUI::MultiMachinePickPage::~MultiMachinePickPage ( )
371{
372
373}

Member Function Documentation

◆ 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_selected_count()

int Slic3r::GUI::MultiMachinePickPage::get_selected_count ( )
376{
377 int count = 0;
378 for (auto it = m_device_items.begin(); it != m_device_items.end(); it++) {
379 if (it->second->state_selected == 1) {
380 count++;
381 }
382 }
383 return count;
384}
static unsigned int count
Definition AuxiliaryDataViewModel.cpp:246
std::map< std::string, DevicePickItem * > m_device_items
Definition MultiMachinePage.hpp:99

References count, and m_device_items.

Referenced by refresh_user_device().

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; }

◆ normal_font()

◆ on_confirm()

void Slic3r::GUI::MultiMachinePickPage::on_confirm ( wxCommandEvent & event)
498{
499
500}

◆ on_dpi_changed()

void Slic3r::GUI::MultiMachinePickPage::on_dpi_changed ( const wxRect & suggested_rect)
virtual

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

419{
420
421}

◆ on_sys_color_changed()

void Slic3r::GUI::MultiMachinePickPage::on_sys_color_changed ( )
virtual

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

424{
425
426}

◆ prev_scale_factor()

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

◆ refresh_user_device()

void Slic3r::GUI::MultiMachinePickPage::refresh_user_device ( )
429{
430 std::vector<std::string> selected_multi_devices;
431
432 for(int i = 0; i < PICK_DEVICE_MAX; i++){
433 auto dev_id = app_config->get("multi_devices", std::to_string(i));
434 selected_multi_devices.push_back(dev_id);
435 }
436
437 sizer_machine_list->Clear(false);
438 Slic3r::DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
439 if (!dev) {
440 for (auto it = m_device_items.begin(); it != m_device_items.end(); it++) {
441 wxWindow* child = it->second;
442 child->Destroy();
443 }
444 return;
445 }
446
447 auto user_machine = dev->get_my_cloud_machine_list();
448 auto task_manager = wxGetApp().getTaskManager();
449
450 std::vector<std::string> subscribe_list;
451
452 for (auto it = user_machine.begin(); it != user_machine.end(); ++it) {
453 if (it->second->GetExtderSystem()->GetTotalExtderCount() > 1) { continue; }
454 if (it->second->printer_type == "O1D") { continue;} /*maybe total_extder_count is not valid, hard codes here. to be moved to printers json*/
455
456 DevicePickItem* di = new DevicePickItem(scroll_macine_list, it->second);
457
458 di->Bind(EVT_MULTI_DEVICE_SELECTED_FINHSH, [this, di](auto& e) {
460 if (count > PICK_DEVICE_MAX) {
461 di->unselected();
462 return;
463 }
465 });
466
467 /* if (m_device_items.find(it->first) != m_device_items.end()) {
468 auto item = m_device_items[it->first];
469 if (item->state_selected == 1 && di->state_printable <= 2)
470 di->state_selected = item->state_selected;
471 item->Destroy();
472 }*/
473 m_device_items[it->first] = di;
474
475 //update state
476 if (task_manager) {
477 m_device_items[it->first]->state_local_task = task_manager->query_task_state(it->first);
478 }
479
480 //update selected
481 auto dev_it = std::find(selected_multi_devices.begin(), selected_multi_devices.end(), it->second->get_dev_id() );
482 if (dev_it != selected_multi_devices.end()) {
483 di->state_selected = 1;
484 }
485
486 sizer_machine_list->Add(di, 0, wxALL | wxEXPAND, 0);
487 subscribe_list.push_back(it->first);
488 }
489
490 dev->subscribe_device_list(subscribe_list);
491
492 sizer_machine_list->Layout();
493 Layout();
494 Fit();
495}
#define PICK_DEVICE_MAX
Definition MultiMachinePage.hpp:34
void subscribe_device_list(std::vector< std::string > dev_list)
Definition DevManager.cpp:794
std::map< std::string, MachineObject * > get_my_cloud_machine_list(const std::string &agent_id="")
Definition DevManager.cpp:856
void update_selected_count()
Definition MultiMachinePage.cpp:386
int get_selected_count()
Definition MultiMachinePage.cpp:375

References app_config, count, Slic3r::DeviceManager::get_my_cloud_machine_list(), get_selected_count(), m_device_items, PICK_DEVICE_MAX, scroll_macine_list, sizer_machine_list, Slic3r::GUI::DeviceItem::state_selected, Slic3r::DeviceManager::subscribe_device_list(), Slic3r::GUI::DeviceItem::unselected(), and update_selected_count().

Referenced by Show().

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

◆ 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

◆ 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; }

◆ Show()

bool Slic3r::GUI::MultiMachinePickPage::Show ( bool show)
503{
504 if (show) {
507 //m_refresh_timer->Stop();
508 //m_refresh_timer->SetOwner(this);
509 //m_refresh_timer->Start(4000);
510 //wxPostEvent(this, wxTimerEvent(*m_refresh_timer));
511 }
512 else {
513 //m_refresh_timer->Stop();
514 Slic3r::DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
515 if (dev) {
516 dev->subscribe_device_list(std::vector<std::string>());
517 }
518 }
519 return wxDialog::Show(show);
520}
void refresh_user_device()
Definition MultiMachinePage.cpp:428

References refresh_user_device(), Slic3r::DeviceManager::subscribe_device_list(), and update_selected_count().

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 }

◆ update_selected_count()

void Slic3r::GUI::MultiMachinePickPage::update_selected_count ( )
387{
388 std::vector<std::string> selected_multi_devices;
389
390 int count = 0;
391 for (auto it = m_device_items.begin(); it != m_device_items.end(); it++) {
392 if (it->second->state_selected == 1 ) {
393 selected_multi_devices.push_back(it->second->obj_->get_dev_id());
394 count++;
395 }
396 }
397
399 m_label->SetLabel(wxString::Format(_L("Select Connected Printers (%d/6)"), m_selected_count));
400
402 MessageDialog msg_wingow(nullptr, wxString::Format(_L("The maximum number of printers that can be selected is %d"), PICK_DEVICE_MAX), "", wxAPPLY | wxOK);
403 if (msg_wingow.ShowModal() == wxOK) {
404 return;
405 }
406 }
407
408 for (int i = 0; i < PICK_DEVICE_MAX; i++) {
409 app_config->erase("multi_devices",std::to_string(i));
410 }
411
412 for (int j = 0; j < selected_multi_devices.size(); j++) {
413 app_config->set_str("multi_devices", std::to_string(j), selected_multi_devices[j]);
414 }
415 app_config->save();
416}
int m_selected_count
Definition MultiMachinePage.hpp:100

References _L, app_config, count, m_device_items, m_label, m_selected_count, PICK_DEVICE_MAX, and Slic3r::GUI::DPIAware< P >::ShowModal().

Referenced by refresh_user_device(), and Show().

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

Member Data Documentation

◆ app_config

AppConfig* Slic3r::GUI::MultiMachinePickPage::app_config
private

◆ m_can_rescale

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

◆ m_device_items

std::map<std::string, DevicePickItem*> Slic3r::GUI::MultiMachinePickPage::m_device_items
private

◆ 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_label

Label* Slic3r::GUI::MultiMachinePickPage::m_label { nullptr }
private
96{ nullptr };

Referenced by MultiMachinePickPage(), and update_selected_count().

◆ 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

◆ m_selected_count

int Slic3r::GUI::MultiMachinePickPage::m_selected_count {0}
private
100{0};

Referenced by update_selected_count().

◆ scroll_macine_list

wxScrolledWindow* Slic3r::GUI::MultiMachinePickPage::scroll_macine_list { nullptr }
private
97{ nullptr };

Referenced by MultiMachinePickPage(), and refresh_user_device().

◆ sizer_machine_list

wxBoxSizer* Slic3r::GUI::MultiMachinePickPage::sizer_machine_list { nullptr }
private
98{ nullptr };

Referenced by MultiMachinePickPage(), and refresh_user_device().


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