Add tooltips for combo items in rotation optimization dialog

This commit is contained in:
tamasmeszaros 2021-08-16 16:03:20 +02:00
parent 8b5a63eaf8
commit 900814ff47
3 changed files with 26 additions and 33 deletions

View file

@ -15,13 +15,13 @@ class RotoptimizeJob : public PlaterJob
using FindFn = std::function<Vec2d(const ModelObject & mo,
const sla::RotOptimizeParams &params)>;
struct FindMethod { std::string name; FindFn findfn; };
struct FindMethod { std::string name; FindFn findfn; std::string descr; };
static inline const FindMethod Methods[] = {
{ L("Best surface quality"), sla::find_best_misalignment_rotation },
{ L("Least supports"), sla::find_least_supports_rotation },
{ L("Best surface quality"), sla::find_best_misalignment_rotation, L("Optimize object rotation for best surface quality.") },
{ L("Least supports"), sla::find_least_supports_rotation, L("Optimize object rotation to have minimum amount of overhangs needing support structures.") },
// Just a min area bounding box that is done for all methods anyway.
{ L("Z axis only"), nullptr }
{ L("Z axis only"), nullptr, L("Rotate the object only in Z axis to have the smallest bounding box.") }
};
size_t m_method_id = 0;
@ -52,20 +52,15 @@ public:
void finalize() override;
static constexpr size_t get_methods_count() { return std::size(Methods); }
static const auto & get_method_names()
static std::string get_method_name(size_t i)
{
static bool m_method_names_valid = false;
static std::array<std::string, std::size(Methods)> m_method_names;
return _utf8(Methods[i].name);
}
if (!m_method_names_valid) {
for (size_t i = 0; i < std::size(Methods); ++i)
m_method_names[i] = _utf8(Methods[i].name);
m_method_names_valid = true;
}
return m_method_names;
static std::string get_method_description(size_t i)
{
return _utf8(Methods[i].descr);
}
};