Add methods to generally add/remove modifiers in CKeyboardKey

It adds a modifier if modifer1 or modifer2 are set to None.

refs #83
This commit is contained in:
Roland Winklmeier
2014-03-05 21:58:56 +01:00
parent 9a5f2b2003
commit 492a950877
2 changed files with 99 additions and 0 deletions

View File

@@ -223,6 +223,56 @@ namespace BlackMisc
m_qtKey = static_cast<Qt::Key>(sequence[0]);
}
}
bool CKeyboardKey::addModifier(const Modifier &modifier)
{
bool added = false;
// Don't add the same modifier twice
if (hasModifier(modifier))
return false;
if (m_modifier1 == ModifierNone)
{
m_modifier1 = modifier;
added = true;
}
else if (m_modifier2 == ModifierNone)
{
m_modifier2 = modifier;
added = true;
}
return added;
}
bool CKeyboardKey::addModifier(const QString &modifier)
{
return addModifier(modifierFromString(modifier));
}
bool CKeyboardKey::removeModifier(const Modifier &modifier)
{
bool removed = false;
if (m_modifier1 == modifier)
{
m_modifier1 = ModifierNone;
removed = true;
}
if (m_modifier2 == modifier)
{
m_modifier2 = ModifierNone;
removed = true;
}
cleanup();
return removed;
}
bool CKeyboardKey::removeModifier(const QString &modifier)
{
return removeModifier(modifierFromString(modifier));
}
QString CKeyboardKey::getFunctionAsString() const