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

View File

@@ -131,6 +131,20 @@ namespace BlackMisc
//! \brief Native virtual key
quint32 getNativeVirtualKey() const { return this->m_nativeVirtualKey; }
/*!
* \brief Add modifier
* \param modifier
* \return True if modifier was added
*/
bool addModifier(const Modifier &modifier);
/*!
* \brief add modifier
* \param modifier
* \return True if modifier was added
*/
bool addModifier(const QString &modifier);
//! \brief number of modifiers
int numberOfModifiers() const;
@@ -149,18 +163,53 @@ namespace BlackMisc
//! \brief Modifier 2
QString getModifier2AsString() const { return modifierToString(this->m_modifier2); }
/*!
* \brief Remove modifier from key
* \param modifier
* \return True if modifier was removed
*/
bool removeModifier(const Modifier &modifier);
/*!
* \brief Remove modifier from key
* \param modifier
* \return True if modifier was removed
*/
bool removeModifier(const QString &modifier);
//! \brief Set modifier 1
void setModifier1(const QString &modifier) { this->m_modifier1 = modifierFromString(modifier); }
//! \brief Set modifier 1
void setModifier1(const Modifier &modifier) { this->m_modifier1 = modifier; }
//! \brief Set modifier 2
void setModifier2(const QString &modifier) { this->m_modifier2 = modifierFromString(modifier); }
//! \brief Set modifier 2
void setModifier2(const Modifier &modifier) { this->m_modifier2 = modifier; }
//! \brief Modifier?
bool hasModifier() const
{
return this->m_modifier1 != ModifierNone || this->m_modifier2 != ModifierNone;
}
//! \brief Modifier?
bool hasModifier() const
{
return this->m_modifier1 != ModifierNone || this->m_modifier2 != ModifierNone;
}
/*!
* \brief Do we have this Modifier?
* \param modifier
*/
bool hasModifier(Modifier modifier) const
{
return m_modifier1 == modifier || m_modifier2 == modifier;
}
//! \brief with key?
bool hasKey() const
{