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 { |