QTfrontend/ui/widget/selectWeapon.cpp
changeset 7830 72e52da6ea7f
parent 7797 5aedd02e7230
child 8282 1f81bcce3ee6
child 9080 9b42757d7e71
equal deleted inserted replaced
7829:c1dc7839d7b9 7830:72e52da6ea7f
   189     setWeapons(*cDefaultAmmoStore);
   189     setWeapons(*cDefaultAmmoStore);
   190 }
   190 }
   191 
   191 
   192 void SelWeaponWidget::save()
   192 void SelWeaponWidget::save()
   193 {
   193 {
   194     for(int i = 0; i < cDefaultAmmos.size(); i++)
   194     // TODO make this return if success or not, so that the page can react
   195         if (!cDefaultAmmos[i].first.compare(m_name->text()))
   195     // properly and not goBack if saving failed
   196         {
       
   197             QMessageBox deniedMsg(this);
       
   198             deniedMsg.setIcon(QMessageBox::Warning);
       
   199             deniedMsg.setWindowTitle(QMessageBox::tr("Weapons - Warning"));
       
   200             deniedMsg.setText(QMessageBox::tr("Cannot overwrite default weapon set '%1'!").arg(cDefaultAmmos[i].first));
       
   201             deniedMsg.setWindowModality(Qt::WindowModal);
       
   202             deniedMsg.exec();
       
   203             return;
       
   204         }
       
   205 
       
   206     if (m_name->text() == "") return;
   196     if (m_name->text() == "") return;
   207 
   197 
   208     QString state1;
   198     QString state1;
   209     QString state2;
   199     QString state2;
   210     QString state3;
   200     QString state3;
   211     QString state4;
   201     QString state4;
       
   202     QString stateFull;
   212 
   203 
   213     for(int i = 0; i < m_numItems; ++i)
   204     for(int i = 0; i < m_numItems; ++i)
   214     {
   205     {
   215         twi::const_iterator it = weaponItems.find(i);
   206         twi::const_iterator it = weaponItems.find(i);
   216         int num = it == weaponItems.end() ? 9 : it.value()[0]->getItemsNum(); // 9 is for 'skip turn'
   207         int num = it == weaponItems.end() ? 9 : it.value()[0]->getItemsNum(); // 9 is for 'skip turn'
   220         int del = it == weaponItems.end() ? 0 : it.value()[2]->getItemsNum();
   211         int del = it == weaponItems.end() ? 0 : it.value()[2]->getItemsNum();
   221         state3.append(QString::number(del));
   212         state3.append(QString::number(del));
   222         int am = it == weaponItems.end() ? 0 : it.value()[3]->getItemsNum();
   213         int am = it == weaponItems.end() ? 0 : it.value()[3]->getItemsNum();
   223         state4.append(QString::number(am));
   214         state4.append(QString::number(am));
   224     }
   215     }
       
   216 
       
   217     stateFull = state1 + state2 + state3 + state4;
       
   218 
       
   219     for(int i = 0; i < cDefaultAmmos.size(); i++)
       
   220     {
       
   221         if (cDefaultAmmos[i].first.compare(m_name->text()) == 0)
       
   222         {
       
   223             // don't show warning if no change
       
   224             if (cDefaultAmmos[i].second.compare(stateFull) == 0)
       
   225                 return;
       
   226 
       
   227             QMessageBox deniedMsg(this);
       
   228             deniedMsg.setIcon(QMessageBox::Warning);
       
   229             deniedMsg.setWindowTitle(QMessageBox::tr("Weapons - Warning"));
       
   230             deniedMsg.setText(QMessageBox::tr("Cannot overwrite default weapon set '%1'!").arg(cDefaultAmmos[i].first));
       
   231             deniedMsg.setWindowModality(Qt::WindowModal);
       
   232             deniedMsg.exec();
       
   233             return;
       
   234         }
       
   235     }
       
   236 
   225     if (curWeaponsName != "")
   237     if (curWeaponsName != "")
   226     {
   238     {
   227         // remove old entry
   239         // remove old entry
   228         wconf->remove(curWeaponsName);
   240         wconf->remove(curWeaponsName);
   229     }
   241     }
   230     wconf->setValue(m_name->text(), state1 + state2 + state3 + state4);
   242     wconf->setValue(m_name->text(), stateFull);
   231     emit weaponsChanged();
   243     emit weaponsChanged();
   232 }
   244 }
   233 
   245 
   234 int SelWeaponWidget::operator [] (unsigned int weaponIndex) const
   246 int SelWeaponWidget::operator [] (unsigned int weaponIndex) const
   235 {
   247 {