Example #1
0
PlatformKeyboardEvent::PlatformKeyboardEvent(QKeyEvent* event)
{
    const int state = event->modifiers();
    m_type = (event->type() == QEvent::KeyRelease) ? PlatformEvent::KeyUp : PlatformEvent::KeyDown;

    m_modifiers = 0;
    if ((state & Qt::ShiftModifier) || event->key() == Qt::Key_Backtab) // Simulate Shift+Tab with Key_Backtab
        m_modifiers |= ShiftKey;
    if (state & Qt::ControlModifier)
        m_modifiers |= CtrlKey;
    if (state & Qt::AltModifier)
        m_modifiers |= AltKey;
    if (state & Qt::MetaModifier)
        m_modifiers |= MetaKey;

    m_text = keyTextForKeyEvent(event);
    m_unmodifiedText = m_text; // FIXME: not correct
    m_keyIdentifier = keyIdentifierForQtKeyCode(event->key());
    m_autoRepeat = event->isAutoRepeat();
    m_isKeypad = (state & Qt::KeypadModifier);
    m_isSystemKey = false;
    m_windowsVirtualKeyCode = windowsKeyCodeForKeyEvent(event->key(), m_isKeypad);
    m_nativeVirtualKeyCode = event->nativeVirtualKey();
    m_macCharCode = 0;
    m_qtEvent = event;
    m_timestamp = WTF::currentTime();
}
PlatformKeyboardEvent::PlatformKeyboardEvent(QKeyEvent* event, bool useNativeVirtualKeyAsDOMKey)
{
    const int state = event->modifiers();
    m_type = (event->type() == QEvent::KeyRelease) ? PlatformEvent::KeyUp : PlatformEvent::KeyDown;

    m_modifiers = 0;
    if ((state & Qt::ShiftModifier) || event->key() == Qt::Key_Backtab) // Simulate Shift+Tab with Key_Backtab
        m_modifiers |= ShiftKey;
    if (state & Qt::ControlModifier)
        m_modifiers |= CtrlKey;
    if (state & Qt::AltModifier)
        m_modifiers |= AltKey;
    if (state & Qt::MetaModifier)
        m_modifiers |= MetaKey;

    m_useNativeVirtualKeyAsDOMKey = useNativeVirtualKeyAsDOMKey;
    m_text = keyTextForKeyEvent(event);
    m_unmodifiedText = m_text; // FIXME: not correct
    m_keyIdentifier = keyIdentifierForQtKeyCode(event->key());
    m_autoRepeat = event->isAutoRepeat();
    m_isKeypad = (state & Qt::KeypadModifier);
    m_isSystemKey = false;
    m_nativeVirtualKeyCode = event->nativeVirtualKey();
    // If QKeyEvent::nativeVirtualKey() is valid (!=0) and useNativeVirtualKeyAsDOMKey is set,
    // then it is a special case desired by QtWebKit embedder to send domain specific keys
    // to Web Applications intented for platforms like HbbTV,CE-HTML,OIPF,..etc.
    if (useNativeVirtualKeyAsDOMKey && m_nativeVirtualKeyCode)
        m_windowsVirtualKeyCode = m_nativeVirtualKeyCode;
    else
        m_windowsVirtualKeyCode = windowsKeyCodeForKeyEvent(event->key(), m_isKeypad);

    m_macCharCode = 0;
    m_qtEvent = event;
    m_timestamp = WTF::currentTime();
}
PlatformKeyboardEvent::PlatformKeyboardEvent(QKeyEvent* event, bool isKeyUp)
{
    m_text = event->text();
    m_unmodifiedText = event->text(); // FIXME: not correct
    m_keyIdentifier = keyIdentifierForQtKeyCode(event->key());
    m_isKeyUp = isKeyUp;
    m_autoRepeat = event->isAutoRepeat();
    m_WindowsKeyCode = windowsKeyCodeForKeyEvent(event->key());
    m_isKeypad = (event->modifiers() & Qt::KeypadModifier) != 0;
    m_shiftKey = (event->modifiers() & Qt::ShiftModifier) != 0;
    m_ctrlKey = (event->modifiers() & Qt::ControlModifier) != 0;
    m_altKey = (event->modifiers() & Qt::AltModifier) != 0;
    m_metaKey = (event->modifiers() & Qt::MetaModifier) != 0;    
}
PlatformKeyboardEvent::PlatformKeyboardEvent(QKeyEvent* event)
{
    const int state = event->modifiers();
    m_type = (event->type() == QEvent::KeyRelease) ? KeyUp : KeyDown;
    m_text = event->text();
    m_unmodifiedText = event->text(); // FIXME: not correct
    m_keyIdentifier = keyIdentifierForQtKeyCode(event->key());
    m_autoRepeat = event->isAutoRepeat();
    m_ctrlKey = (state & Qt::ControlModifier);
    m_altKey = (state & Qt::AltModifier);
    m_metaKey = (state & Qt::MetaModifier);
    m_isKeypad = (state & Qt::KeypadModifier);
    m_windowsVirtualKeyCode = windowsKeyCodeForKeyEvent(event->key(), m_isKeypad);
    m_nativeVirtualKeyCode = event->nativeVirtualKey();
    m_shiftKey = (state & Qt::ShiftModifier) || event->key() == Qt::Key_Backtab; // Simulate Shift+Tab with Key_Backtab
    m_qtEvent = event;
}
Example #5
0
WebKeyboardEvent WebEventFactory::createWebKeyboardEvent(QKeyEvent* event)
{
    const int state                 = event->modifiers();
    WebEvent::Type type             = webEventTypeForEvent(event);
    const String text               = event->text();
    const String unmodifiedText     = event->text();
    bool isAutoRepeat               = event->isAutoRepeat();
    bool isSystemKey                = false; // FIXME: No idea what that is.
    bool isKeypad                   = (state & Qt::KeypadModifier);
    const String keyIdentifier      = keyIdentifierForQtKeyCode(event->key());
    int windowsVirtualKeyCode       = windowsKeyCodeForKeyEvent(event->key(), isKeypad);
    int nativeVirtualKeyCode        = event->nativeVirtualKey();
    int macCharCode                 = 0;
    WebEvent::Modifiers modifiers   = modifiersForEvent(event->modifiers());
    double timestamp                = currentTimeForEvent(event);

    return WebKeyboardEvent(type, text, unmodifiedText, keyIdentifier, windowsVirtualKeyCode, nativeVirtualKeyCode, macCharCode, isAutoRepeat, isKeypad, isSystemKey, modifiers, timestamp);
}