fix xml entity key description with escaped characters reading

handle special symbols in smartedit key description tooltip
This commit is contained in:
Garux 2021-03-21 05:44:28 +03:00
parent af82669bd3
commit 5b1b9b5e6c
2 changed files with 13 additions and 3 deletions

View File

@ -235,7 +235,14 @@ void popElement( const char* elementName ){
ERROR_MESSAGE( PARSE_ERROR( elementName, "attribute" ) );
}
std::size_t write( const char* data, std::size_t length ){
m_attribute->m_description = StringRange( data, data + length );
CopiedString& desc = m_attribute->m_description;
if( desc.empty() ){
desc = StringRange( data, data + length );
}
else{ // in case of special symbols, e.g. &quot, &apos, &lt, &gt, &amp, xml writes in a few steps
desc = StringOutputStream()( desc.c_str(), StringRange( data, data + length ) );
}
return m_comment.write( data, length );
}
};

View File

@ -988,8 +988,11 @@ void EntityAttribute_setTooltip( GtkWidget* widget, const char* name, const char
StringOutputStream stream( 256 );
if( string_not_empty( name ) )
stream << "<b> " << name << "</b> ";
if( string_not_empty( description ) )
stream << "\n" << description;
if( string_not_empty( description ) ){
gchar *str = g_markup_escape_text( description, -1 );
stream << "\n" << str;
g_free( str );
}
if( !stream.empty() )
gtk_widget_set_tooltip_markup( widget, stream.c_str() );
}