#include "KonamiCode.h" #include #include namespace { const std::array konamiCode = { { Qt::Key_Up, Qt::Key_Up, Qt::Key_Down, Qt::Key_Down, Qt::Key_Left, Qt::Key_Right, Qt::Key_Left, Qt::Key_Right, Qt::Key_B, Qt::Key_A } }; } KonamiCode::KonamiCode(QObject* parent) : QObject(parent) { } void KonamiCode::input(QEvent* event) { if( event->type() == QEvent::KeyPress ) { QKeyEvent *keyEvent = static_cast( event ); auto key = Qt::Key(keyEvent->key()); if(key == konamiCode[m_progress]) { m_progress ++; } else { m_progress = 0; } if(m_progress == konamiCode.size()) { m_progress = 0; emit triggered(); } } }