Commit 4bb345d2081a64adccd1b6352b724b9086931249

Authored by Josh Klontz
1 parent b29a6349

changed TemplateList::relabel behavior to preserve integer labels

Showing 1 changed file with 9 additions and 4 deletions
openbr/openbr_plugin.cpp
... ... @@ -476,13 +476,18 @@ TemplateList TemplateList::fromGallery(const br::File &gallery)
476 476  
477 477 // indexes some property, assigns an integer id to each unique value of propName
478 478 // stores the index values in "Label" of the output template list
479   -TemplateList TemplateList::relabel(const TemplateList &tl, const QString & propName)
  479 +TemplateList TemplateList::relabel(const TemplateList &tl, const QString &propName)
480 480 {
481 481 const QList<QString> originalLabels = File::get<QString>(tl, propName);
482 482 QHash<QString,int> labelTable;
483   - foreach (const QString & label, originalLabels)
484   - if (!labelTable.contains(label))
485   - labelTable.insert(label, labelTable.size());
  483 + foreach (const QString &label, originalLabels)
  484 + if (!labelTable.contains(label)) {
  485 + int value; bool ok;
  486 + value = label.toInt(&ok);
  487 + // If the label is already an integer value we don't want to change it.
  488 + if (ok) labelTable.insert(label, value);
  489 + else labelTable.insert(label, labelTable.size());
  490 + }
486 491  
487 492 TemplateList result = tl;
488 493 for (int i=0; i<result.size(); i++)
... ...