OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::GUI::PagePrinters Struct Reference

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

Inheritance diagram for Slic3r::GUI::PagePrinters:
Collaboration diagram for Slic3r::GUI::PagePrinters:

Public Member Functions

 PagePrinters (ConfigWizard *parent, wxString title, wxString shortname, const VendorProfile &vendor, unsigned indent, Technology technology)
void select_all (bool select, bool alternates=false)
int get_width () const
bool any_selected () const
std::set< std::string > get_selected_models ()
std::string get_vendor_id () const
virtual void set_run_reason (ConfigWizard::RunReason run_reason) override
template<class T>
T * append (T *thing, int proportion=0, int flag=wxEXPAND|wxTOP|wxBOTTOM, int border=10)
wxStaticText * append_text (wxString text)
void append_spacer (int space)
ConfigWizard::priv * wizard_p () const
virtual void apply_custom_config (DynamicPrintConfig &config)
virtual void on_activate ()

Public Attributes

std::vector< PrinterPicker * > printer_pickers
Technology technology
bool install
bool has_printers { false }
bool is_primary_printer_page { false }
ConfigWizard * parent
const wxString shortname
wxBoxSizer * content
const unsigned indent

Detailed Description

Constructor & Destructor Documentation

◆ PagePrinters()

Slic3r::GUI::PagePrinters::PagePrinters ( ConfigWizard * parent,
wxString title,
wxString shortname,
const VendorProfile & vendor,
unsigned indent,
Technology technology )
576 : ConfigWizardPage(parent, std::move(title), std::move(shortname), indent)
578 , install(false) // only used for 3rd party vendors
579{
580 enum {
581 COL_SIZE = 200,
582 };
583
584 AppConfig *appconfig = &this->wizard_p()->appconfig_new;
585
586 const auto families = vendor.families();
587 for (const auto &family : families) {
588 const auto filter = [&](const VendorProfile::PrinterModel &model) {
589 return ((model.technology == ptFFF && technology & T_FFF)
590 || (model.technology == ptSLA && technology & T_SLA))
591 && model.family == family;
592 };
593
594 if (std::find_if(vendor.models.begin(), vendor.models.end(), filter) == vendor.models.end()) {
595 continue;
596 }
597
598 const auto picker_title = family.empty() ? wxString() : from_u8((boost::format(_utf8(L("%s Family"))) % family).str());
599 auto *picker = new PrinterPicker(this, vendor, picker_title, MAX_COLS, *appconfig, filter);
600
601 picker->Bind(EVT_PRINTER_PICK, [this, appconfig](const PrinterPickerEvent &evt) {
602 appconfig->set_variant(evt.vendor_id, evt.model_id, evt.variant_name, evt.enable);
603 wizard_p()->on_printer_pick(this, evt);
604 });
605
606 append(new StaticLine(this));
607
608 append(picker);
609 printer_pickers.push_back(picker);
610 has_printers = true;
611 }
612
613}
#define L(s)
Definition ExtrusionEntity.cpp:25
@ T_SLA
Definition ConfigWizard_private.hpp:70
@ T_FFF
Definition ConfigWizard_private.hpp:69
@ MAX_COLS
Definition ConfigWizard_private.hpp:59
std::string format(const char *fmt, TArgs &&... args)
Definition format.hpp:36
wxString from_u8(const std::string &str)
Definition GUI.cpp:544
@ ptSLA
Definition Config.hpp:233
@ ptFFF
Definition Config.hpp:231
#define _utf8(s)
Definition I18N.hpp:10
T * append(T *thing, int proportion=0, int flag=wxEXPAND|wxTOP|wxBOTTOM, int border=10)
Definition ConfigWizard_private.hpp:227
const unsigned indent
Definition ConfigWizard_private.hpp:221
ConfigWizard::priv * wizard_p() const
Definition ConfigWizard_private.hpp:236
ConfigWizard * parent
Definition ConfigWizard_private.hpp:218
ConfigWizardPage(ConfigWizard *parent, wxString title, wxString shortname, unsigned indent=0)
Definition ConfigWizard.cpp:477
const wxString shortname
Definition ConfigWizard_private.hpp:219
void on_printer_pick(PagePrinters *page, const PrinterPickerEvent &evt)
Definition ConfigWizard.cpp:2130
AppConfig appconfig_new
Definition ConfigWizard_private.hpp:544
bool has_printers
Definition ConfigWizard_private.hpp:278
std::vector< PrinterPicker * > printer_pickers
Definition ConfigWizard_private.hpp:259
Technology technology
Definition ConfigWizard_private.hpp:260
bool install
Definition ConfigWizard_private.hpp:261

References Slic3r::GUI::ConfigWizardPage::ConfigWizardPage(), _utf8, Slic3r::GUI::ConfigWizard::priv::appconfig_new, Slic3r::GUI::ConfigWizardPage::append(), Slic3r::GUI::PrinterPickerEvent::enable, Slic3r::VendorProfile::families(), Slic3r::GUI::from_u8(), has_printers, Slic3r::GUI::ConfigWizardPage::indent, install, L, Slic3r::GUI::MAX_COLS, Slic3r::GUI::PrinterPickerEvent::model_id, Slic3r::VendorProfile::models, Slic3r::GUI::ConfigWizard::priv::on_printer_pick(), Slic3r::GUI::ConfigWizardPage::parent, printer_pickers, Slic3r::ptFFF, Slic3r::ptSLA, Slic3r::AppConfig::set_variant(), Slic3r::GUI::ConfigWizardPage::shortname, Slic3r::GUI::T_FFF, Slic3r::GUI::T_SLA, technology, Slic3r::GUI::PrinterPickerEvent::variant_name, Slic3r::GUI::PrinterPickerEvent::vendor_id, and Slic3r::GUI::ConfigWizardPage::wizard_p().

Here is the call graph for this function:

Member Function Documentation

◆ any_selected()

bool Slic3r::GUI::PagePrinters::any_selected ( ) const
629{
630 for (const auto *picker : printer_pickers) {
631 if (picker->any_selected()) { return true; }
632 }
633
634 return false;
635}

References printer_pickers.

◆ append()

template<class T>
T * Slic3r::GUI::ConfigWizardPage::append ( T * thing,
int proportion = 0,
int flag = wxEXPAND|wxTOP|wxBOTTOM,
int border = 10 )
inlineinherited
228 {
229 content->Add(thing, proportion, flag, border);
230 return thing;
231 }
wxBoxSizer * content
Definition ConfigWizard_private.hpp:220

References content.

Referenced by Slic3r::GUI::PageBedShape::PageBedShape(), Slic3r::GUI::PageCustom::PageCustom(), Slic3r::GUI::PageDiameters::PageDiameters(), Slic3r::GUI::PageFirmware::PageFirmware(), Slic3r::GUI::PageMaterials::PageMaterials(), Slic3r::GUI::PagePrinters::PagePrinters(), Slic3r::GUI::PageTemperatures::PageTemperatures(), Slic3r::GUI::PageWelcome::PageWelcome(), and append_text().

Here is the caller graph for this function:

◆ append_spacer()

void Slic3r::GUI::ConfigWizardPage::append_spacer ( int space)
inherited
522{
523 // FIXME: scaling
524 content->AddSpacer(space);
525}

References content.

Referenced by Slic3r::GUI::PageDiameters::PageDiameters(), Slic3r::GUI::PageMaterials::PageMaterials(), and Slic3r::GUI::PageTemperatures::PageTemperatures().

Here is the caller graph for this function:

◆ append_text()

wxStaticText * Slic3r::GUI::ConfigWizardPage::append_text ( wxString text)
inherited
513{
514 auto *widget = new wxStaticText(this, wxID_ANY, text, wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
515 widget->Wrap(WRAP_WIDTH);
516 widget->SetMinSize(wxSize(WRAP_WIDTH, -1));
517 append(widget);
518 return widget;
519}
class WXDLLIMPEXP_FWD_CORE wxStaticText
Definition ProgressDialog.hpp:30
@ WRAP_WIDTH
Definition ConfigWizard_private.hpp:50

References append(), Slic3r::GUI::WRAP_WIDTH, and wxStaticText.

Referenced by Slic3r::GUI::PageBedShape::PageBedShape(), Slic3r::GUI::PageDiameters::PageDiameters(), Slic3r::GUI::PageFirmware::PageFirmware(), Slic3r::GUI::PageTemperatures::PageTemperatures(), and Slic3r::GUI::PageWelcome::PageWelcome().

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

◆ apply_custom_config()

virtual void Slic3r::GUI::ConfigWizardPage::apply_custom_config ( DynamicPrintConfig & config)
inlinevirtualinherited

◆ get_selected_models()

std::set< std::string > Slic3r::GUI::PagePrinters::get_selected_models ( )
638{
639 std::set<std::string> ret_set;
640
641 for (const auto *picker : printer_pickers)
642 {
643 std::set<std::string> tmp_models = picker->get_selected_models();
644 ret_set.insert(tmp_models.begin(), tmp_models.end());
645 }
646
647 return ret_set;
648}

References printer_pickers.

◆ get_vendor_id()

std::string Slic3r::GUI::PagePrinters::get_vendor_id ( ) const
inline
274{ return printer_pickers.empty() ? "" : printer_pickers[0]->vendor_id; }

References printer_pickers.

◆ get_width()

int Slic3r::GUI::PagePrinters::get_width ( ) const
623{
624 return std::accumulate(printer_pickers.begin(), printer_pickers.end(), 0,
625 [](int acc, const PrinterPicker *picker) { return std::max(acc, picker->get_width()); });
626}

References printer_pickers.

◆ on_activate()

virtual void Slic3r::GUI::ConfigWizardPage::on_activate ( )
inlinevirtualinherited

Reimplemented in Slic3r::GUI::PageMaterials.

240{}

◆ select_all()

void Slic3r::GUI::PagePrinters::select_all ( bool select,
bool alternates = false )
616{
617 for (auto picker : printer_pickers) {
618 picker->select_all(select, alternates);
619 }
620}

References printer_pickers.

◆ set_run_reason()

void Slic3r::GUI::PagePrinters::set_run_reason ( ConfigWizard::RunReason run_reason)
overridevirtual

Reimplemented from Slic3r::GUI::ConfigWizardPage.

651{
652 //Orca: add custom as default
654 && (run_reason == ConfigWizard::RR_DATA_EMPTY || run_reason == ConfigWizard::RR_DATA_LEGACY)
655 && printer_pickers.size() > 0
657 //printer_pickers[0]->select_one(0, true);
658 printer_pickers[0]->select_all(true);
659 }
660}
@ RR_DATA_EMPTY
Definition ConfigWizard.hpp:24
@ RR_DATA_LEGACY
Definition ConfigWizard.hpp:25
static const char * ORCA_DEFAULT_BUNDLE
Definition PresetBundle.hpp:686
bool is_primary_printer_page
Definition ConfigWizard_private.hpp:279

References is_primary_printer_page, Slic3r::PresetBundle::ORCA_DEFAULT_BUNDLE, printer_pickers, Slic3r::GUI::ConfigWizard::RR_DATA_EMPTY, and Slic3r::GUI::ConfigWizard::RR_DATA_LEGACY.

◆ wizard_p()

ConfigWizard::priv * Slic3r::GUI::ConfigWizardPage::wizard_p ( ) const
inlineinherited
236{ return parent->p.get(); }

References parent.

Referenced by Slic3r::GUI::PageBedShape::PageBedShape(), Slic3r::GUI::PageCustom::PageCustom(), Slic3r::GUI::PagePrinters::PagePrinters(), Slic3r::GUI::PageMaterials::on_activate(), Slic3r::GUI::PageMaterials::select_material(), and Slic3r::GUI::PageMaterials::update_lists().

Here is the caller graph for this function:

Member Data Documentation

◆ content

wxBoxSizer* Slic3r::GUI::ConfigWizardPage::content
inherited

◆ has_printers

bool Slic3r::GUI::PagePrinters::has_printers { false }
278{ false };

Referenced by PagePrinters().

◆ indent

const unsigned Slic3r::GUI::ConfigWizardPage::indent
inherited

◆ install

bool Slic3r::GUI::PagePrinters::install

Referenced by PagePrinters().

◆ is_primary_printer_page

bool Slic3r::GUI::PagePrinters::is_primary_printer_page { false }
279{ false };

Referenced by set_run_reason().

◆ parent

◆ printer_pickers

std::vector<PrinterPicker *> Slic3r::GUI::PagePrinters::printer_pickers

◆ shortname

◆ technology

Technology Slic3r::GUI::PagePrinters::technology

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