Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Slic3r::Search::OptionsSearcher Class Reference

#include <src/slic3r/GUI/Search.hpp>

+ Collaboration diagram for Slic3r::Search::OptionsSearcher:

Public Member Functions

 OptionsSearcher ()
 
 ~OptionsSearcher ()
 
void append_preferences_option (const GUI::Line &opt_line)
 
void append_preferences_options (const std::vector< GUI::Line > &opt_lines)
 
void check_and_update (PrinterTechnology pt_in, ConfigOptionMode mode_in, std::vector< InputInfo > input_values)
 
bool search ()
 
bool search (const std::string &search, bool force=false)
 
void add_key (const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category)
 
size_t size () const
 
const FoundOptionoperator[] (const size_t pos) const noexcept
 
const Optionget_option (size_t pos_in_filter) const
 
const Optionget_option (const std::string &opt_key, Preset::Type type) const
 
Option get_option (const std::string &opt_key, const wxString &label, Preset::Type type) const
 
const std::vector< FoundOption > & found_options ()
 
const GroupAndCategoryget_group_and_category (const std::string &opt_key)
 
std::string & search_string ()
 
void sort_options_by_key ()
 
void sort_options_by_label ()
 
void show_dialog ()
 
void dlg_sys_color_changed ()
 
void dlg_msw_rescale ()
 

Public Attributes

OptionViewParameters view_params
 
SearchDialogsearch_dialog { nullptr }
 

Private Member Functions

void append_options (DynamicPrintConfig *config, Preset::Type type)
 
void sort_options ()
 
void sort_found ()
 
size_t options_size () const
 
size_t found_size () const
 

Private Attributes

std::string search_line
 
std::map< std::string, GroupAndCategorygroups_and_categories
 
PrinterTechnology printer_technology {ptAny}
 
ConfigOptionMode mode { comUndef }
 
std::vector< Optionoptions {}
 
std::vector< Optionpreferences_options {}
 
std::vector< FoundOptionfound {}
 

Detailed Description

Constructor & Destructor Documentation

◆ OptionsSearcher()

Slic3r::Search::OptionsSearcher::OptionsSearcher ( )
304{
305}

◆ ~OptionsSearcher()

Slic3r::Search::OptionsSearcher::~OptionsSearcher ( )
308{
309}

Member Function Documentation

◆ add_key()

void Slic3r::Search::OptionsSearcher::add_key ( const std::string &  opt_key,
Preset::Type  type,
const wxString &  group,
const wxString &  category 
)
463{
464 groups_and_categories[get_key(opt_key, type)] = GroupAndCategory{group, category};
465}
std::map< std::string, GroupAndCategory > groups_and_categories
Definition Search.hpp:84
static std::string get_key(const std::string &opt_key, Preset::Type type)
Definition Search.cpp:77

References Slic3r::Search::get_key(), and groups_and_categories.

Referenced by Slic3r::GUI::TabPrinter::create_bed_shape_widget().

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

◆ append_options()

void Slic3r::Search::OptionsSearcher::append_options ( DynamicPrintConfig config,
Preset::Type  type 
)
private
83{
84 auto emplace = [this, type](std::string key, const wxString& label, int id = -1)
85 {
86 if (id >= 0)
87 // ! It's very important to use "#". opt_key#n is a real option key used in GroupAndCategory
88 key += "#" + std::to_string(id);
89
90 const GroupAndCategory& gc = groups_and_categories[key];
91 if (gc.group.IsEmpty() || gc.category.IsEmpty())
92 return;
93
94 wxString suffix;
95 wxString suffix_local;
96 if (gc.category == "Machine limits") {
97 suffix = id == 1 ? L("Stealth") : L("Normal");
98 suffix_local = " " + _(suffix);
99 suffix = " " + suffix;
100 }
101 else if (gc.group == "Dynamic overhang speed" && id >= 0) {
102 suffix = " " + std::to_string(id+1);
103 suffix_local = suffix;
104 }
105
106 if (!label.IsEmpty())
107 options.emplace_back(Option{ boost::nowide::widen(key), type,
108 (label + suffix).ToStdWstring(), (_(label) + suffix_local).ToStdWstring(),
109 gc.group.ToStdWstring(), _(gc.group).ToStdWstring(),
110 gc.category.ToStdWstring(), GUI::Tab::translate_category(gc.category, type).ToStdWstring() });
111 };
112
113 for (std::string opt_key : config->keys())
114 {
115 const ConfigOptionDef& opt = *config->option_def(opt_key);
116 if (opt.mode > mode)
117 continue;
118
119 int cnt = 0;
120
122 switch (config->option(opt_key)->type())
123 {
124 case coInts: change_opt_key<ConfigOptionInts >(opt_key, config, cnt); break;
125 case coBools: change_opt_key<ConfigOptionBools >(opt_key, config, cnt); break;
126 case coFloats: change_opt_key<ConfigOptionFloats >(opt_key, config, cnt); break;
127 case coStrings: change_opt_key<ConfigOptionStrings >(opt_key, config, cnt); break;
128 case coPercents:change_opt_key<ConfigOptionPercents >(opt_key, config, cnt); break;
129 case coPoints: change_opt_key<ConfigOptionPoints >(opt_key, config, cnt); break;
130 case coFloatsOrPercents: change_opt_key<ConfigOptionFloatsOrPercents >(opt_key, config, cnt); break;
131 default: break;
132 }
133
134 wxString label = opt.full_label.empty() ? opt.label : opt.full_label;
135
136 std::string key = get_key(opt_key, type);
137 if (cnt == 0)
138 emplace(key, label);
139 else
140 for (int i = 0; i < cnt; ++i)
141 emplace(key, label, i);
142 }
143}
static wxString translate_category(const wxString &title, Preset::Type preset_type)
Definition Tab.cpp:417
static bool is_independent_from_extruder_number_option(const std::string &opt_key)
Definition Preset.cpp:1293
@ TYPE_FILAMENT
Definition Preset.hpp:114
ConfigOptionMode mode
Definition Search.hpp:86
std::vector< Option > options
Definition Search.hpp:88
#define _(msgid)
Definition getopt.c:87
@ coFloatsOrPercents
Definition Config.hpp:182
@ coBools
Definition Config.hpp:192
@ coPercents
Definition Config.hpp:178
@ coInts
Definition Config.hpp:170
@ coPoints
Definition Config.hpp:186
@ coStrings
Definition Config.hpp:174
@ coFloats
Definition Config.hpp:166
wchar_t * widen(wchar_t *output, size_t output_size, char const *source)
Convert NULL terminated UTF source string to NULL terminated output string of size at most output_siz...
Definition convert.hpp:95
#define L(s)
Definition I18N.hpp:18

References _, Slic3r::Search::GroupAndCategory::category, Slic3r::coBools, Slic3r::coFloats, Slic3r::coFloatsOrPercents, Slic3r::coInts, Slic3r::coPercents, Slic3r::coPoints, Slic3r::coStrings, Slic3r::ConfigOptionDef::full_label, Slic3r::Search::get_key(), Slic3r::Search::GroupAndCategory::group, groups_and_categories, Slic3r::PresetCollection::is_independent_from_extruder_number_option(), Slic3r::DynamicConfig::keys(), L, Slic3r::ConfigOptionDef::label, Slic3r::ConfigOptionDef::mode, mode, Slic3r::ConfigBase::option(), Slic3r::ConfigBase::option_def(), options, Slic3r::GUI::Tab::translate_category(), Slic3r::ConfigOption::type(), Slic3r::Preset::TYPE_FILAMENT, and boost::nowide::widen().

Referenced by check_and_update().

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

◆ append_preferences_option()

void Slic3r::Search::OptionsSearcher::append_preferences_option ( const GUI::Line opt_line)
332{
334 wxString label = opt_line.label;
335 if (label.IsEmpty())
336 return;
337
338 std::string key = get_key(opt_line.get_options().front().opt_id, type);
339 const GroupAndCategory& gc = groups_and_categories[key];
340 if (gc.group.IsEmpty() || gc.category.IsEmpty())
341 return;
342
343 preferences_options.emplace_back(Search::Option{ boost::nowide::widen(key), type,
344 label.ToStdWstring(), _(label).ToStdWstring(),
345 gc.group.ToStdWstring(), _(gc.group).ToStdWstring(),
346 gc.category.ToStdWstring(), _(gc.category).ToStdWstring() });
347}
Type
Definition Preset.hpp:110
@ TYPE_PREFERENCES
Definition Preset.hpp:122
std::vector< Option > preferences_options
Definition Search.hpp:89

References _, Slic3r::Search::GroupAndCategory::category, Slic3r::Search::get_key(), Slic3r::GUI::Line::get_options(), Slic3r::Search::GroupAndCategory::group, groups_and_categories, Slic3r::GUI::Line::label, preferences_options, Slic3r::Preset::TYPE_PREFERENCES, and boost::nowide::widen().

Referenced by append_preferences_options().

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

◆ append_preferences_options()

void Slic3r::Search::OptionsSearcher::append_preferences_options ( const std::vector< GUI::Line > &  opt_lines)
350{
351 //Preset::Type type = Preset::TYPE_PREFERENCES;
352 for (const GUI::Line& line : opt_lines) {
353 if (line.is_separator())
354 continue;
356 //wxString label = line.label;
357 //if (label.IsEmpty())
358 // continue;
359
360 //std::string key = get_key(line.get_options().front().opt_id, type);
361 //const GroupAndCategory& gc = groups_and_categories[key];
362 //if (gc.group.IsEmpty() || gc.category.IsEmpty())
363 // continue;
364 //
365 //preferences_options.emplace_back(Search::Option{ boost::nowide::widen(key), type,
366 // label.ToStdWstring(), _(label).ToStdWstring(),
367 // gc.group.ToStdWstring(), _(gc.group).ToStdWstring(),
368 // gc.category.ToStdWstring(), _(gc.category).ToStdWstring() });
369 }
370}
void append_preferences_option(const GUI::Line &opt_line)
Definition Search.cpp:331

References append_preferences_option().

+ Here is the call graph for this function:

◆ check_and_update()

void Slic3r::Search::OptionsSearcher::check_and_update ( PrinterTechnology  pt_in,
ConfigOptionMode  mode_in,
std::vector< InputInfo input_values 
)
312{
313 if (printer_technology == pt_in && mode == mode_in)
314 return;
315
316 options.clear();
317
318 printer_technology = pt_in;
319 mode = mode_in;
320
321 for (auto i : input_values)
322 append_options(i.config, i.type);
323
324 options.insert(options.end(), preferences_options.begin(), preferences_options.end());
325
326 sort_options();
327
328 search(search_line, true);
329}
void append_options(DynamicPrintConfig *config, Preset::Type type)
Definition Search.cpp:82
void sort_options()
Definition Search.hpp:94
std::string search_line
Definition Search.hpp:83
bool search()
Definition Search.cpp:175
PrinterTechnology printer_technology
Definition Search.hpp:85

References append_options(), mode, options, preferences_options, printer_technology, search(), search_line, and sort_options().

+ Here is the call graph for this function:

◆ dlg_msw_rescale()

void Slic3r::Search::OptionsSearcher::dlg_msw_rescale ( )
457{
458 if (search_dialog)
460}
SearchDialog * search_dialog
Definition Search.hpp:109
void msw_rescale()
Definition Search.cpp:731

References Slic3r::Search::SearchDialog::msw_rescale(), and search_dialog.

+ Here is the call graph for this function:

◆ dlg_sys_color_changed()

void Slic3r::Search::OptionsSearcher::dlg_sys_color_changed ( )
451{
452 if (search_dialog)
454}
void on_sys_color_changed() override
Definition Search.cpp:747

References Slic3r::Search::SearchDialog::on_sys_color_changed(), and search_dialog.

+ Here is the call graph for this function:

◆ found_options()

const std::vector< FoundOption > & Slic3r::Search::OptionsSearcher::found_options ( )
inline
131{ return found; }
std::vector< FoundOption > found
Definition Search.hpp:90

References found.

Referenced by Slic3r::Search::SearchDialog::update_list().

+ Here is the caller graph for this function:

◆ found_size()

size_t Slic3r::Search::OptionsSearcher::found_size ( ) const
inlineprivate
104{ return found.size(); }

References found.

Referenced by size().

+ Here is the caller graph for this function:

◆ get_group_and_category()

const GroupAndCategory & Slic3r::Search::OptionsSearcher::get_group_and_category ( const std::string &  opt_key)
inline
132{ return groups_and_categories[opt_key]; }

References groups_and_categories.

Referenced by Slic3r::GUI::TabPrinter::create_bed_shape_widget().

+ Here is the caller graph for this function:

◆ get_option() [1/3]

Option Slic3r::Search::OptionsSearcher::get_option ( const std::string &  opt_key,
const wxString &  label,
Preset::Type  type 
) const
409{
410 std::string key = get_key(opt_key, type);
411 auto it = std::lower_bound(options.begin(), options.end(), Option({ boost::nowide::widen(key) }));
412 if(it->key == boost::nowide::widen(key))
413 return options[it - options.begin()];
414 if (groups_and_categories.find(key) == groups_and_categories.end()) {
415 size_t pos = key.find('#');
416 if (pos == std::string::npos)
417 return options[it - options.begin()];
418
419 std::string zero_opt_key = key.substr(0, pos + 1) + "0";
420
421 if(groups_and_categories.find(zero_opt_key) == groups_and_categories.end())
422 return options[it - options.begin()];
423
424 return create_option(opt_key, label, type, groups_and_categories.at(zero_opt_key));
425 }
426
427 const GroupAndCategory& gc = groups_and_categories.at(key);
428 if (gc.group.IsEmpty() || gc.category.IsEmpty())
429 return options[it - options.begin()];
430
431 return create_option(opt_key, label, type, gc);
432}
static Option create_option(const std::string &opt_key, const wxString &label, Preset::Type type, const GroupAndCategory &gc)
Definition Search.cpp:386
Vec3d pos(const Pt &p)
Definition ReprojectPointsOnMesh.hpp:14

References Slic3r::Search::GroupAndCategory::category, Slic3r::Search::create_option(), Slic3r::Search::get_key(), Slic3r::Search::GroupAndCategory::group, groups_and_categories, options, and boost::nowide::widen().

+ Here is the call graph for this function:

◆ get_option() [2/3]

const Option & Slic3r::Search::OptionsSearcher::get_option ( const std::string &  opt_key,
Preset::Type  type 
) const
379{
380 auto it = std::lower_bound(options.begin(), options.end(), Option({ boost::nowide::widen(get_key(opt_key, type)) }));
381 assert(it != options.end());
382
383 return options[it - options.begin()];
384}

References Slic3r::Search::get_key(), options, and boost::nowide::widen().

+ Here is the call graph for this function:

◆ get_option() [3/3]

const Option & Slic3r::Search::OptionsSearcher::get_option ( size_t  pos_in_filter) const
373{
374 assert(pos_in_filter != size_t(-1) && found[pos_in_filter].option_idx != size_t(-1));
375 return options[found[pos_in_filter].option_idx];
376}

References found, and options.

Referenced by Slic3r::GUI::DiffPresetDialog::update_tree(), and Slic3r::GUI::UnsavedChangesDialog::update_tree().

+ Here is the caller graph for this function:

◆ operator[]()

const FoundOption & Slic3r::Search::OptionsSearcher::operator[] ( const size_t  pos) const
inlinenoexcept
126{ return found[pos]; }

References found.

◆ options_size()

size_t Slic3r::Search::OptionsSearcher::options_size ( ) const
inlineprivate
103{ return options.size(); }

References options.

◆ search() [1/2]

bool Slic3r::Search::OptionsSearcher::search ( )
176{
177 return search(search_line, true);
178}

References search(), and search_line.

Referenced by check_and_update(), Slic3r::Search::SearchDialog::OnCheck(), Slic3r::Search::SearchDialog::OnInputText(), search(), and search().

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

◆ search() [2/2]

bool Slic3r::Search::OptionsSearcher::search ( const std::string &  search,
bool  force = false 
)
195{
196 if (search_line == search && !force)
197 return false;
198
199 found.clear();
200
201 bool full_list = search.empty();
202 std::wstring sep = L" : ";
203
204 auto get_label = [this, &sep](const Option& opt, bool marked = true)
205 {
206 std::wstring out;
207 if (marked)
208 out += marker_by_type(opt.type, printer_technology);
209 const std::wstring *prev = nullptr;
210 for (const std::wstring * const s : {
211 view_params.category ? &opt.category_local : nullptr,
212 &opt.group_local, &opt.label_local })
213 if (s != nullptr && (prev == nullptr || *prev != *s)) {
214 if (out.size()>2)
215 out += sep;
216 out += *s;
217 prev = s;
218 }
219 return out;
220 };
221
222 auto get_label_english = [this, &sep](const Option& opt, bool marked = true)
223 {
224 std::wstring out;
225 if (marked)
226 out += marker_by_type(opt.type, printer_technology);
227 const std::wstring*prev = nullptr;
228 for (const std::wstring * const s : {
229 view_params.category ? &opt.category : nullptr,
230 &opt.group, &opt.label })
231 if (s != nullptr && (prev == nullptr || *prev != *s)) {
232 if (out.size()>2)
233 out += sep;
234 out += *s;
235 prev = s;
236 }
237 return out;
238 };
239
240 auto get_tooltip = [this, &sep](const Option& opt)
241 {
242 return marker_by_type(opt.type, printer_technology) +
243 opt.category_local + sep +
244 opt.group_local + sep + opt.label_local;
245 };
246
247 std::vector<uint16_t> matches, matches2;
248 for (size_t i=0; i < options.size(); i++)
249 {
250 const Option &opt = options[i];
251 if (full_list) {
252 std::string label = into_u8(get_label(opt));
253 found.emplace_back(FoundOption{ label, label, boost::nowide::narrow(get_tooltip(opt)), i, 0 });
254 continue;
255 }
256
257 std::wstring wsearch = boost::nowide::widen(search);
258 boost::trim_left(wsearch);
259 std::wstring label = get_label(opt, false);
260 std::wstring label_english = get_label_english(opt, false);
261 int score = std::numeric_limits<int>::min();
262 int score2;
263 matches.clear();
264 fuzzy_match(wsearch, label, score, matches);
265 if (fuzzy_match(wsearch, opt.key, score2, matches2) && score2 > score) {
266 for (fts::pos_type &pos : matches2)
267 pos += label.size() + 1;
268 label += L"(" + opt.key + L")";
269 append(matches, matches2);
270 score = score2;
271 }
272 if (view_params.english && fuzzy_match(wsearch, label_english, score2, matches2) && score2 > score) {
273 label = std::move(label_english);
274 matches = std::move(matches2);
275 score = score2;
276 }
277 if (score > 90/*std::numeric_limits<int>::min()*/) {
278 label = mark_string(label, matches, opt.type, printer_technology);
279 label += L" [" + std::to_wstring(score) + L"]";// add score value
280 std::string label_u8 = into_u8(label);
281 std::string label_plain = label_u8;
282
283#ifdef SUPPORTS_MARKUP
284 boost::replace_all(label_plain, std::string(1, char(ImGui::ColorMarkerStart)), "<b>");
285 boost::replace_all(label_plain, std::string(1, char(ImGui::ColorMarkerEnd)), "</b>");
286#else
287 boost::erase_all(label_plain, std::string(1, char(ImGui::ColorMarkerStart)));
288 boost::erase_all(label_plain, std::string(1, char(ImGui::ColorMarkerEnd)));
289#endif
290 found.emplace_back(FoundOption{ label_plain, label_u8, boost::nowide::narrow(get_tooltip(opt)), i, score });
291 }
292 }
293
294 if (!full_list)
295 sort_found();
296
297 if (search_line != search)
299
300 return true;
301}
size_t size() const
Definition Search.hpp:124
void sort_found()
Definition Search.hpp:98
OptionViewParameters view_params
Definition Search.hpp:107
const char ColorMarkerStart
Definition imconfig.h:123
const char ColorMarkerEnd
Definition imconfig.h:124
std::string into_u8(const wxString &str)
Definition GUI.cpp:442
bool english
Definition Search.hpp:76
bool category
Definition Search.hpp:75
static char marker_by_type(Preset::Type type, PrinterTechnology pt)
Definition Search.cpp:35
static bool fuzzy_match(const std::wstring &search_pattern, const std::wstring &label, int &out_score, std::vector< uint16_t > &out_matches)
Definition Search.cpp:180
static std::wstring mark_string(const std::wstring &str, const std::vector< uint16_t > &matches, Preset::Type type, PrinterTechnology pt)
Definition Search.cpp:146
void append(std::vector< T, Alloc > &dest, const std::vector< T, Alloc2 > &src)
Definition libslic3r.h:110
char * narrow(char *output, size_t output_size, wchar_t const *source)
Convert NULL terminated UTF source string to NULL terminated output string of size at most output_siz...
Definition convert.hpp:73
uint16_t pos_type
Definition fts_fuzzy_match.h:46

References Slic3r::append(), Slic3r::Search::Option::category, Slic3r::Search::OptionViewParameters::category, Slic3r::Search::Option::category_local, ImGui::ColorMarkerEnd, ImGui::ColorMarkerStart, Slic3r::Search::OptionViewParameters::english, found, Slic3r::Search::fuzzy_match(), Slic3r::Search::Option::group, Slic3r::Search::Option::group_local, Slic3r::Search::Option::key, L, Slic3r::Search::Option::label, Slic3r::Search::Option::label_local, Slic3r::Search::mark_string(), Slic3r::Search::marker_by_type(), boost::nowide::narrow(), options, printer_technology, search(), search_line, sort_found(), Slic3r::Search::Option::type, view_params, and boost::nowide::widen().

+ Here is the call graph for this function:

◆ search_string()

std::string & Slic3r::Search::OptionsSearcher::search_string ( )
inline
133{ return search_line; }

References search_line.

Referenced by Slic3r::Search::SearchDialog::Popup().

+ Here is the caller graph for this function:

◆ show_dialog()

void Slic3r::Search::OptionsSearcher::show_dialog ( )
435{
436 if (!search_dialog) {
437 search_dialog = new SearchDialog(this);
438
439 auto parent = search_dialog->GetParent();
440 wxPoint pos = parent->ClientToScreen(wxPoint(0, 0));
441 pos.x += em_unit(parent) * 40;
442 pos.y += em_unit(parent) * 4;
443
444 search_dialog->SetPosition(pos);
445 }
446
448}
void Popup(wxPoint position=wxDefaultPosition)
Definition Search.cpp:574
int em_unit(wxWindow *win)
Definition wxExtensions.cpp:388

References em_unit(), Slic3r::Search::SearchDialog::Popup(), and search_dialog.

+ Here is the call graph for this function:

◆ size()

size_t Slic3r::Search::OptionsSearcher::size ( ) const
inline
124{ return found_size(); }
size_t found_size() const
Definition Search.hpp:104

References found_size().

Referenced by Slic3r::GUI::Plater::search_string_getter().

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

◆ sort_found()

void Slic3r::Search::OptionsSearcher::sort_found ( )
inlineprivate
98 {
99 std::sort(found.begin(), found.end(), [](const FoundOption& f1, const FoundOption& f2) {
100 return f1.outScore > f2.outScore || (f1.outScore == f2.outScore && f1.label < f2.label); });
101 };

References found.

Referenced by search().

+ Here is the caller graph for this function:

◆ sort_options()

void Slic3r::Search::OptionsSearcher::sort_options ( )
inlineprivate
94 {
95 std::sort(options.begin(), options.end(), [](const Option& o1, const Option& o2) {
96 return o1.label < o2.label; });
97 }

References options.

Referenced by check_and_update(), and sort_options_by_label().

+ Here is the caller graph for this function:

◆ sort_options_by_key()

void Slic3r::Search::OptionsSearcher::sort_options_by_key ( )
inline
135 {
136 std::sort(options.begin(), options.end(), [](const Option& o1, const Option& o2) {
137 return o1.key < o2.key; });
138 }

References options.

Referenced by Slic3r::GUI::DiffPresetDialog::update_tree(), and Slic3r::GUI::UnsavedChangesDialog::update_tree().

+ Here is the caller graph for this function:

◆ sort_options_by_label()

void Slic3r::Search::OptionsSearcher::sort_options_by_label ( )
inline
139{ sort_options(); }

References sort_options().

Referenced by Slic3r::GUI::DiffPresetDialog::update_tree(), and Slic3r::GUI::UnsavedChangesDialog::update_tree().

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

Member Data Documentation

◆ found

std::vector<FoundOption> Slic3r::Search::OptionsSearcher::found {}
private

◆ groups_and_categories

std::map<std::string, GroupAndCategory> Slic3r::Search::OptionsSearcher::groups_and_categories
private

◆ mode

ConfigOptionMode Slic3r::Search::OptionsSearcher::mode { comUndef }
private

Referenced by append_options(), and check_and_update().

◆ options

std::vector<Option> Slic3r::Search::OptionsSearcher::options {}
private

◆ preferences_options

std::vector<Option> Slic3r::Search::OptionsSearcher::preferences_options {}
private

◆ printer_technology

PrinterTechnology Slic3r::Search::OptionsSearcher::printer_technology {ptAny}
private

Referenced by check_and_update(), and search().

◆ search_dialog

SearchDialog* Slic3r::Search::OptionsSearcher::search_dialog { nullptr }

◆ search_line

std::string Slic3r::Search::OptionsSearcher::search_line
private

◆ view_params


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