QTfrontend/model/ammoSchemeModel.cpp
changeset 12666 1d25f5555c38
parent 12258 41af2274953d
child 12897 fc47fc4af6bd
child 12922 c0320d66310d
equal deleted inserted replaced
12665:5664ec82aed7 12666:1d25f5555c38
   722         return 0;
   722         return 0;
   723     else
   723     else
   724         return defaultScheme.size();
   724         return defaultScheme.size();
   725 }
   725 }
   726 
   726 
       
   727 bool AmmoSchemeModel::hasScheme(QString name)
       
   728 {
       
   729     for(int i=0; i<schemes.size(); i++)
       
   730     {
       
   731         if(schemes[i][0] == name)
       
   732         {
       
   733             return true;
       
   734         }
       
   735     }
       
   736     return false;
       
   737 }
       
   738 
   727 Qt::ItemFlags AmmoSchemeModel::flags(const QModelIndex & index) const
   739 Qt::ItemFlags AmmoSchemeModel::flags(const QModelIndex & index) const
   728 {
   740 {
   729     Q_UNUSED(index);
   741     Q_UNUSED(index);
   730 
   742 
   731     return
   743     return
   755     beginInsertRows(parent, schemes.size(), schemes.size());
   767     beginInsertRows(parent, schemes.size(), schemes.size());
   756 
   768 
   757     if (row == -1)
   769     if (row == -1)
   758     {
   770     {
   759         QList<QVariant> newScheme = defaultScheme;
   771         QList<QVariant> newScheme = defaultScheme;
   760         newScheme[0] = QVariant(tr("New"));
   772 
       
   773         QString newName = tr("New");
       
   774         if(hasScheme(newName))
       
   775         {
       
   776             //name already used -> look for an appropriate name:
       
   777             int i=2;
       
   778             while(hasScheme(newName = tr("New (%1)").arg(i++))) ;
       
   779         }
       
   780         newScheme[0] = QVariant(newName);
   761         schemes.insert(schemes.size(), newScheme);
   781         schemes.insert(schemes.size(), newScheme);
   762     }
   782     }
   763     else
   783     else
   764     {
   784     {
   765         QList<QVariant> newScheme = schemes[row];
   785         QList<QVariant> newScheme = schemes[row];
   766         newScheme[0] = QVariant(tr("Copy of %1").arg(newScheme[0].toString()));
   786         QString oldName = newScheme[0].toString();
       
   787         QString newName = tr("Copy of %1").arg(oldName);
       
   788         if(hasScheme(newName))
       
   789         {
       
   790             //name already used -> look for an appropriate name:
       
   791             int i=2;
       
   792             while(hasScheme(newName = tr("Copy of %1 (%2)").arg(oldName).arg(i++)));
       
   793         }
       
   794         newScheme[0] = QVariant(newName);
   767         schemes.insert(schemes.size(), newScheme);
   795         schemes.insert(schemes.size(), newScheme);
   768     }
   796     }
   769 
   797 
   770     endInsertRows();
   798     endInsertRows();
   771 
   799