store / load .3mf TextConfiguration: distance from surface & rotation for move text over surface
store / load appConfig distance from surface & rotation for move text over surface
This commit is contained in:
parent
a8ef5c35d2
commit
7c95f8f9aa
3 changed files with 24 additions and 2 deletions
|
@ -161,6 +161,8 @@ static constexpr const char *LINE_HEIGHT_ATTR = "line_height";
|
|||
static constexpr const char *DEPTH_ATTR = "depth";
|
||||
static constexpr const char *BOLDNESS_ATTR = "boldness";
|
||||
static constexpr const char *SKEW_ATTR = "skew";
|
||||
static constexpr const char *DISTANCE_ATTR = "distance";
|
||||
static constexpr const char *ANGLE_ATTR = "angle";
|
||||
|
||||
static constexpr const char *FONT_FAMILY_ATTR = "family";
|
||||
static constexpr const char *FONT_FACE_NAME_ATTR = "face_name";
|
||||
|
@ -3323,6 +3325,10 @@ void TextConfigurationSerialization::to_xml(std::stringstream &stream, const Tex
|
|||
stream << BOLDNESS_ATTR << "=\"" << *fp.boldness << "\" ";
|
||||
if (fp.skew.has_value())
|
||||
stream << SKEW_ATTR << "=\"" << *fp.skew << "\" ";
|
||||
if (fp.distance.has_value())
|
||||
stream << DISTANCE_ATTR << "=\"" << *fp.distance << "\" ";
|
||||
if (fp.angle.has_value())
|
||||
stream << ANGLE_ATTR << "=\"" << *fp.angle << "\" ";
|
||||
|
||||
// font descriptor
|
||||
if (fp.family.has_value())
|
||||
|
@ -3349,6 +3355,12 @@ std::optional<TextConfiguration> TextConfigurationSerialization::read(const char
|
|||
float skew = get_attribute_value_float(attributes, num_attributes, SKEW_ATTR);
|
||||
if (std::fabs(skew) > std::numeric_limits<float>::epsilon())
|
||||
fp.skew = skew;
|
||||
float distance = get_attribute_value_float(attributes, num_attributes, DISTANCE_ATTR);
|
||||
if (std::fabs(distance) > std::numeric_limits<float>::epsilon())
|
||||
fp.distance = distance;
|
||||
float angle = get_attribute_value_float(attributes, num_attributes, ANGLE_ATTR);
|
||||
if (std::fabs(angle) > std::numeric_limits<float>::epsilon())
|
||||
fp.angle = angle;
|
||||
|
||||
fp.size_in_mm = get_attribute_value_float(attributes, num_attributes, LINE_HEIGHT_ATTR);
|
||||
fp.emboss = get_attribute_value_float(attributes, num_attributes, DEPTH_ATTR);
|
||||
|
|
|
@ -6,12 +6,14 @@
|
|||
using namespace Slic3r;
|
||||
using namespace Slic3r::GUI;
|
||||
|
||||
const std::string FontListSerializable::APP_CONFIG_FONT_NAME = "name";
|
||||
const std::string FontListSerializable::APP_CONFIG_FONT_DESCRIPTOR = "descriptor";
|
||||
const std::string FontListSerializable::APP_CONFIG_FONT_NAME = "name";
|
||||
const std::string FontListSerializable::APP_CONFIG_FONT_DESCRIPTOR = "descriptor";
|
||||
const std::string FontListSerializable::APP_CONFIG_FONT_LINE_HEIGHT = "line_height";
|
||||
const std::string FontListSerializable::APP_CONFIG_FONT_DEPTH = "depth";
|
||||
const std::string FontListSerializable::APP_CONFIG_FONT_BOLDNESS = "boldness";
|
||||
const std::string FontListSerializable::APP_CONFIG_FONT_SKEW = "skew";
|
||||
const std::string FontListSerializable::APP_CONFIG_FONT_DISTANCE = "distance";
|
||||
const std::string FontListSerializable::APP_CONFIG_FONT_ANGLE = "angle";
|
||||
const std::string FontListSerializable::APP_CONFIG_FONT_CHAR_GAP = "char_gap";
|
||||
const std::string FontListSerializable::APP_CONFIG_FONT_LINE_GAP = "line_gap";
|
||||
|
||||
|
@ -79,6 +81,8 @@ std::optional<FontItem> FontListSerializable::load_font_item(
|
|||
read(app_cfg_section, APP_CONFIG_FONT_DEPTH, fp.emboss);
|
||||
read(app_cfg_section, APP_CONFIG_FONT_BOLDNESS, fp.boldness);
|
||||
read(app_cfg_section, APP_CONFIG_FONT_SKEW, fp.skew);
|
||||
read(app_cfg_section, APP_CONFIG_FONT_DISTANCE, fp.distance);
|
||||
read(app_cfg_section, APP_CONFIG_FONT_ANGLE, fp.angle);
|
||||
read(app_cfg_section, APP_CONFIG_FONT_CHAR_GAP, fp.char_gap);
|
||||
read(app_cfg_section, APP_CONFIG_FONT_LINE_GAP, fp.line_gap);
|
||||
|
||||
|
@ -101,6 +105,10 @@ void FontListSerializable::store_font_item(AppConfig & cfg,
|
|||
cfg.set(section_name, APP_CONFIG_FONT_BOLDNESS, std::to_string(*fp.boldness));
|
||||
if (fp.skew.has_value())
|
||||
cfg.set(section_name, APP_CONFIG_FONT_SKEW, std::to_string(*fp.skew));
|
||||
if (fp.distance.has_value())
|
||||
cfg.set(section_name, APP_CONFIG_FONT_DISTANCE, std::to_string(*fp.distance));
|
||||
if (fp.angle.has_value())
|
||||
cfg.set(section_name, APP_CONFIG_FONT_ANGLE, std::to_string(*fp.angle));
|
||||
if (fp.char_gap.has_value())
|
||||
cfg.set(section_name, APP_CONFIG_FONT_CHAR_GAP, std::to_string(*fp.char_gap));
|
||||
if (fp.line_gap.has_value())
|
||||
|
|
|
@ -23,6 +23,8 @@ class FontListSerializable
|
|||
static const std::string APP_CONFIG_FONT_DEPTH;
|
||||
static const std::string APP_CONFIG_FONT_BOLDNESS;
|
||||
static const std::string APP_CONFIG_FONT_SKEW;
|
||||
static const std::string APP_CONFIG_FONT_DISTANCE;
|
||||
static const std::string APP_CONFIG_FONT_ANGLE;
|
||||
static const std::string APP_CONFIG_FONT_CHAR_GAP;
|
||||
static const std::string APP_CONFIG_FONT_LINE_GAP;
|
||||
public:
|
||||
|
|
Loading…
Add table
Reference in a new issue