mirror of
https://github.com/OpenMW/openmw.git
synced 2025-01-21 23:53:57 +00:00
Don't prompt for spell deletion when using cycling keys (Fixes #2382)
This commit is contained in:
parent
4c5bba2947
commit
6d62aa7544
2 changed files with 39 additions and 33 deletions
|
@ -102,22 +102,7 @@ namespace MWGui
|
||||||
updateSpells();
|
updateSpells();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpellWindow::onModelIndexSelected(SpellModel::ModelIndex index)
|
void SpellWindow::askDeleteSpell(const std::string &spellId)
|
||||||
{
|
|
||||||
const Spell& spell = mSpellView->getModel()->getItem(index);
|
|
||||||
if (spell.mType == Spell::Type_EnchantedItem)
|
|
||||||
{
|
|
||||||
onEnchantedItemSelected(spell.mItem, spell.mActive);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
onSpellSelected(spell.mId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void SpellWindow::onSpellSelected(const std::string& spellId)
|
|
||||||
{
|
|
||||||
if (MyGUI::InputManager::getInstance().isShiftPressed())
|
|
||||||
{
|
{
|
||||||
// delete spell, if allowed
|
// delete spell, if allowed
|
||||||
const ESM::Spell* spell =
|
const ESM::Spell* spell =
|
||||||
|
@ -141,13 +126,29 @@ namespace MWGui
|
||||||
dialog->eventCancelClicked.clear();
|
dialog->eventCancelClicked.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SpellWindow::onModelIndexSelected(SpellModel::ModelIndex index)
|
||||||
|
{
|
||||||
|
const Spell& spell = mSpellView->getModel()->getItem(index);
|
||||||
|
if (spell.mType == Spell::Type_EnchantedItem)
|
||||||
|
{
|
||||||
|
onEnchantedItemSelected(spell.mItem, spell.mActive);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
if (MyGUI::InputManager::getInstance().isShiftPressed())
|
||||||
|
askDeleteSpell(spell.mId);
|
||||||
|
else
|
||||||
|
onSpellSelected(spell.mId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SpellWindow::onSpellSelected(const std::string& spellId)
|
||||||
{
|
{
|
||||||
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||||
MWWorld::InventoryStore& store = player.getClass().getInventoryStore(player);
|
MWWorld::InventoryStore& store = player.getClass().getInventoryStore(player);
|
||||||
store.setSelectedEnchantItem(store.end());
|
store.setSelectedEnchantItem(store.end());
|
||||||
MWBase::Environment::get().getWindowManager()->setSelectedSpell(spellId, int(MWMechanics::getSpellSuccessChance(spellId, player)));
|
MWBase::Environment::get().getWindowManager()->setSelectedSpell(spellId, int(MWMechanics::getSpellSuccessChance(spellId, player)));
|
||||||
}
|
|
||||||
|
|
||||||
updateSpells();
|
updateSpells();
|
||||||
}
|
}
|
||||||
|
@ -184,6 +185,10 @@ namespace MWGui
|
||||||
return;
|
return;
|
||||||
selected = (selected + itemcount) % itemcount;
|
selected = (selected + itemcount) % itemcount;
|
||||||
|
|
||||||
onModelIndexSelected(selected);
|
const Spell& spell = mSpellView->getModel()->getItem(selected);
|
||||||
|
if (spell.mType == Spell::Type_EnchantedItem)
|
||||||
|
onEnchantedItemSelected(spell.mItem, spell.mActive);
|
||||||
|
else
|
||||||
|
onSpellSelected(spell.mId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,7 @@ namespace MWGui
|
||||||
void onSpellSelected(const std::string& spellId);
|
void onSpellSelected(const std::string& spellId);
|
||||||
void onModelIndexSelected(SpellModel::ModelIndex index);
|
void onModelIndexSelected(SpellModel::ModelIndex index);
|
||||||
void onDeleteSpellAccept();
|
void onDeleteSpellAccept();
|
||||||
|
void askDeleteSpell(const std::string& spellId);
|
||||||
|
|
||||||
virtual void onPinToggled();
|
virtual void onPinToggled();
|
||||||
virtual void onTitleDoubleClicked();
|
virtual void onTitleDoubleClicked();
|
||||||
|
|
Loading…
Reference in a new issue