@@ -212,7 +212,7 @@ void TreeItem::apply()
212212 */
213213void TreeItem::setHighlight (bool highlight)
214214{
215- m_changed = false ;
215+ m_changed = false ;
216216 if (m_highlight != highlight) {
217217 m_highlight = highlight;
218218 if (highlight) {
@@ -265,28 +265,32 @@ QVariant ArrayFieldTreeItem::data(int column) const
265265 if (column == 1 ) {
266266 if (m_field->getType () == UAVObjectField::UINT8 && m_field->getUnits ().toLower () == " char" ) {
267267 QString dataString;
268+ dataString.reserve (2 + m_field->getNumElements ());
269+ dataString.append (" '" );
268270 for (uint i = 0 ; i < m_field->getNumElements (); ++i) {
269271 dataString.append (m_field->getValue (i).toChar ());
270272 }
271- QString data = QString (" '%1' " ). arg (dataString );
272- return data ;
273+ dataString. append (" '" );
274+ return dataString ;
273275 } else if (m_field->getUnits ().toLower () == " hex" ) {
274276 QString dataString;
277+ int len = TreeItem::maxHexStringLength (m_field->getType ());
278+ QChar fillChar (' 0' );
279+ dataString.reserve (2 + (len + 1 ) * m_field->getNumElements ());
280+ dataString.append (" {" );
275281 for (uint i = 0 ; i < m_field->getNumElements (); ++i) {
276282 if (i > 0 ) {
277283 dataString.append (' ' );
278284 }
279285 bool ok;
280- dataString.append (QString (" %1" )
281- .arg (m_field->getValue (i).toUInt (&ok), TreeItem::maxHexStringLength (m_field->getType ()),
282- 16 , QChar (' 0' )).toUpper ());
286+ uint value = m_field->getValue (i).toUInt (&ok);
287+ QString str = QString (" %1" ).arg (value, len, 16 , fillChar);
288+ str = str.toUpper ();
289+ dataString.append (str);
283290 }
284- QString data = QString (" {%1}" ).arg (dataString);
285- return data;
286- } else {
287- return QVariant ();
291+ dataString.append (" }" );
292+ return dataString;
288293 }
289- } else {
290- return TreeItem::data (column);
291294 }
295+ return TreeItem::data (column);
292296}
0 commit comments