diff -r 5664ec82aed7 -r 1d25f5555c38 QTfrontend/model/ammoSchemeModel.cpp --- a/QTfrontend/model/ammoSchemeModel.cpp Sat Oct 07 03:43:06 2017 +0200 +++ b/QTfrontend/model/ammoSchemeModel.cpp Sat Oct 07 18:43:31 2017 +0200 @@ -724,6 +724,18 @@ return defaultScheme.size(); } +bool AmmoSchemeModel::hasScheme(QString name) +{ + for(int i=0; i newScheme = defaultScheme; - newScheme[0] = QVariant(tr("New")); + + QString newName = tr("New"); + if(hasScheme(newName)) + { + //name already used -> look for an appropriate name: + int i=2; + while(hasScheme(newName = tr("New (%1)").arg(i++))) ; + } + newScheme[0] = QVariant(newName); schemes.insert(schemes.size(), newScheme); } else { QList newScheme = schemes[row]; - newScheme[0] = QVariant(tr("Copy of %1").arg(newScheme[0].toString())); + QString oldName = newScheme[0].toString(); + QString newName = tr("Copy of %1").arg(oldName); + if(hasScheme(newName)) + { + //name already used -> look for an appropriate name: + int i=2; + while(hasScheme(newName = tr("Copy of %1 (%2)").arg(oldName).arg(i++))); + } + newScheme[0] = QVariant(newName); schemes.insert(schemes.size(), newScheme); }