bool CoreNaviManager::handleEvent(QEvent *event) { if (!m_leds) { return false; } QKeyEvent *keyEvent = NULL; if (QEvent::KeyPress == event->type() || QEvent::KeyRelease == event->type()) { keyEvent = static_cast<QKeyEvent*> (event); } #if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) if (keyEvent && keyEvent->isGestureKey()) { #else if (keyEvent && keyEvent->type() == QEvent::Gesture) { #endif switch (keyEvent->key()) { case KEYS::Key_CoreNavi_QuickLaunch: case KEYS::Key_CoreNavi_Launcher: case KEYS::Key_CoreNavi_Previous: case KEYS::Key_CoreNavi_Next: case KEYS::Key_CoreNavi_Back: case KEYS::Key_CoreNavi_Menu: case KEYS::Key_CoreNavi_SwipeDown: case KEYS::Key_CoreNavi_Home: //One shot events if (keyEvent->type() == QEvent::KeyPress) { if (m_hasLightBar) { renderGestureOnLightbar(keyEvent->key()); } else { renderGesture(keyEvent->key()); } } break; case KEYS::Key_CoreNavi_Meta: if (!m_hasLightBar) { //continous glow if (keyEvent->type() == QEvent::KeyPress) { setMetaGlow(true); } else { setMetaGlow(false); } } else { if (useLightbar()) { if (keyEvent->type() == QEvent::KeyPress && m_systemUiController->isCardWindowMaximized() && !m_systemUiController->isScreenLocked()) { // this is just finger down in the meta area, triggering hold timer g_debug("Key down in core navi area, triggering lightbarHoldTimer"); m_metaKeyDown = true; m_lightbarHoldTimer.start(300, true); } else if (keyEvent->type() == QEvent::KeyRelease) { m_lightbarHoldTimer.stop(); if (!m_systemUiController->isScreenLocked() && m_systemUiController->isCardWindowMaximized() && !m_allGlow && !m_lightbarSwipeLeftTimer.running() && !m_lightbarSwipeRightTimer.running() && !m_lightbarRestoreTimer.running()) { m_metaKeyDown = false; g_debug("key up, setting leds back to %d", m_brightness); m_leds->ledSet(m_leds->All(), m_brightness); m_allGlow = true; } } } } break; default: break; } } return false; } bool CoreNaviManager::handleEvent(sptr<Event> e) { return false; } CoreNaviManager::LedRequest::LedRequest (const std::string& appId, const std::string& requestId) { this->appId = appId; this->requestId = requestId; }