spv_text_submit (const struct spv_item *in)
{
enum spv_item_class class = spv_item_get_class (in);
- enum text_item_type type
- = (class == SPV_CLASS_HEADINGS ? TEXT_ITEM_TITLE
- : class == SPV_CLASS_PAGETITLE ? TEXT_ITEM_PAGE_TITLE
- : TEXT_ITEM_LOG);
- const struct pivot_value *value = spv_item_get_text (in);
- char *text = pivot_value_to_string (value, SETTINGS_VALUE_SHOW_DEFAULT,
- SETTINGS_VALUE_SHOW_DEFAULT);
- char *label = in->label ? xstrdup (in->label) : NULL;
- struct text_item *item = text_item_create_nocopy (type, text, label);
- const struct font_style *font = value->font_style;
- if (font)
- {
- item->bold = font->bold;
- item->italic = font->italic;
- item->underline = font->underline;
- item->markup = font->markup;
- if (font->typeface)
- item->typeface = xstrdup (font->typeface);
- item->size = font->size;
- }
+ struct text_item *item = text_item_create_value (
+ (class == SPV_CLASS_HEADINGS ? TEXT_ITEM_TITLE
+ : class == SPV_CLASS_PAGETITLE ? TEXT_ITEM_PAGE_TITLE
+ : TEXT_ITEM_LOG),
+ pivot_value_clone (spv_item_get_text (in)),
+ xstrdup_if_nonnull (in->label));
text_item_submit (item);
}