bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type) { // ctrl open in new tab // ctrl-shift open in new tab and select // ctrl-alt open in new window if (type == QWebPage::NavigationTypeLinkClicked && (m_keyboardModifiers & Qt::ControlModifier || m_pressedButtons == Qt::MidButton)) { bool newWindow = (m_keyboardModifiers & Qt::AltModifier); WebView *webView; if (newWindow) { BrowserApplication::instance()->newMainWindow(); BrowserMainWindow *newMainWindow = BrowserApplication::instance()->mainWindow(); webView = newMainWindow->currentTab(); newMainWindow->raise(); newMainWindow->activateWindow(); webView->setFocus(); } else { bool selectNewTab = (m_keyboardModifiers & Qt::ShiftModifier); webView = mainWindow()->tabWidget()->newTab(selectNewTab); } webView->load(request); m_keyboardModifiers = Qt::NoModifier; m_pressedButtons = Qt::NoButton; return false; } if (frame == mainFrame()) { m_loadingUrl = request.url(); emit loadingUrl(m_loadingUrl); } return QWebPage::acceptNavigationRequest(frame, request, type); }
void SettingsDialog::setHomeToCurrentPage() { BrowserMainWindow *mw = static_cast<BrowserMainWindow*>(parent()); WebView *webView = mw->currentTab(); if (webView) homeLineEdit->setText(QString::fromUtf8(webView->url().toEncoded())); }
QWebPage *WebPage::createWindow(QWebPage::WebWindowType type) { Q_UNUSED(type); if (m_keyboardModifiers & Qt::ControlModifier || m_pressedButtons == Qt::MidButton) m_openInNewTab = true; if (m_openInNewTab) { m_openInNewTab = false; return mainWindow()->tabWidget()->newTab()->page(); } BrowserApplication::instance()->newMainWindow(); BrowserMainWindow *mainWindow = BrowserApplication::instance()->mainWindow(); return mainWindow->currentTab()->page(); }