void WebView::keyPressEvent(QKeyEvent* pEv) { // Work around bugs in QtWebKit that result in numpad key // presses resulting in keyCode=0 in the DOM's keydown events. // This is due to some missing switch cases in the case // where the keypad modifier bit is on, so we turn it off. QKeyEvent newEv(pEv->type(), pEv->key(), pEv->modifiers() & ~Qt::KeypadModifier, pEv->text(), pEv->isAutoRepeat(), pEv->count()); this->QWebView::keyPressEvent(&newEv); }
void WebView::keyPressEvent(QKeyEvent* pEv) { // emit close window shortcut signal if appropriate #ifndef _WIN32 if (pEv->key() == 'W') { #ifdef Q_WS_MAC Qt::KeyboardModifier modifier = Qt::MetaModifier; #else Qt::KeyboardModifier modifier = Qt::ControlModifier; #endif // check modifier and emit signal if (pEv->modifiers() & modifier) onCloseWindowShortcut(); } #endif // Work around bugs in QtWebKit that result in numpad key // presses resulting in keyCode=0 in the DOM's keydown events. // This is due to some missing switch cases in the case // where the keypad modifier bit is on, so we turn it off. Qt::KeyboardModifiers modifiers; #ifdef Q_WS_MAC if ((pEv->nativeModifiers() & 0x40101) == 0x40101) { modifiers &= ~Qt::MetaModifier; modifiers |= Qt::ControlModifier; } else if ((pEv->nativeModifiers() & 0x100108) == 0x100108) { modifiers &= ~Qt::ControlModifier; modifiers |= Qt::MetaModifier; } else { #else { #endif modifiers = pEv->modifiers(); } QKeyEvent newEv(pEv->type(), pEv->key(), modifiers & ~Qt::KeypadModifier, pEv->text(), pEv->isAutoRepeat(), pEv->count()); this->QWebView::keyPressEvent(&newEv); } void WebView::downloadRequested(const QNetworkRequest& request) { QString fileName = promptForFilename(request); if (fileName.isEmpty()) return; // Ask the network manager to download // the file and connect to the progress // and finished signals. QNetworkRequest newRequest = request; QNetworkAccessManager* pNetworkManager = page()->networkAccessManager(); QNetworkReply* pReply = pNetworkManager->get(newRequest); // DownloadHelper frees itself when downloading is done new DownloadHelper(pReply, fileName); }