diff --git a/linphone-app/src/components/other/colors/ColorListModel.cpp b/linphone-app/src/components/other/colors/ColorListModel.cpp index d3aa928e2..1e8f7ea9f 100644 --- a/linphone-app/src/components/other/colors/ColorListModel.cpp +++ b/linphone-app/src/components/other/colors/ColorListModel.cpp @@ -114,8 +114,20 @@ void ColorListModel::add(std::shared_ptr color){ emit layoutChanged(); } +QString ColorListModel::buildDescription(QString description){ + QStringList tokens = description.split('_'); + for(int index = 0 ; index < tokens.size() ; ++index) + if(mKeywordsMap.contains(tokens[index])) + tokens[index] = mKeywordsMap[tokens[index]]; + description = tokens.join(' '); + description[0] = description[0].toUpper(); + return description; +} + ColorModel * ColorListModel::add(const QString& id, const QString& idLink, QString description, QString colorValue){ ColorModel * color = getColor(id); + if( description == "") + description = buildDescription(id); if(!color){ if(idLink != ""){ if( colorValue == ""){ @@ -126,19 +138,13 @@ ColorModel * ColorListModel::add(const QString& id, const QString& idLink, QStri } addLink(id, idLink); } - if( description == ""){ - description = id; - QStringList tokens = description.split('_'); - for(int index = 0 ; index < tokens.size() ; ++index) - if(mKeywordsMap.contains(tokens[index])) - tokens[index] = mKeywordsMap[tokens[index]]; - description = tokens.join(' '); - description[0] = description[0].toUpper(); - } auto colorShared = std::make_shared(id, colorValue, description); add(colorShared); color = colorShared.get(); emit colorChanged(); + }else if( description != color->getDescription()) { + color->setDescription(description); + emit colorChanged(); } return color; } diff --git a/linphone-app/src/components/other/colors/ColorListModel.hpp b/linphone-app/src/components/other/colors/ColorListModel.hpp index dde23d657..4cb3daa24 100644 --- a/linphone-app/src/components/other/colors/ColorListModel.hpp +++ b/linphone-app/src/components/other/colors/ColorListModel.hpp @@ -333,6 +333,7 @@ private: void add(std::shared_ptr imdn); bool removeRow (int row, const QModelIndex &parent = QModelIndex()); virtual bool removeRows (int row, int count, const QModelIndex &parent = QModelIndex()) override; + QString buildDescription(QString description); // return a description from id by splitting '_' QList> mList;