LoadRequest LocationBar::createLoadRequest() const { LoadRequest req; // Check for Search Engine shortcut int firstSpacePos = text().indexOf(QLatin1Char(' ')); if (firstSpacePos != -1) { const QString shortcut = text().left(firstSpacePos); const QString searchedString = text().mid(firstSpacePos).trimmed(); SearchEngine en = mApp->searchEnginesManager()->engineForShortcut(shortcut); if (!en.name.isEmpty()) { req = mApp->searchEnginesManager()->searchResult(en, searchedString); } } // Check for Bookmark keyword QList<BookmarkItem*> items = mApp->bookmarks()->searchKeyword(text()); if (!items.isEmpty()) { BookmarkItem* item = items.first(); item->updateVisitCount(); req.setUrl(item->url()); } if (req.isEmpty()) { const QUrl guessedUrl = WebView::guessUrlFromString(text()); if (!guessedUrl.isEmpty()) req.setUrl(guessedUrl); else req.setUrl(QUrl::fromEncoded(text().toUtf8())); } return req; }
void WebView::load(const LoadRequest &request) { const QUrl reqUrl = request.url(); if (reqUrl.scheme() == QL1S("javascript")) { const QString scriptSource = reqUrl.toString().mid(11); // Is the javascript source percent encoded or not? // Looking for % character in source should work in most cases if (scriptSource.contains(QL1C('%'))) page()->mainFrame()->evaluateJavaScript(QUrl::fromPercentEncoding(scriptSource.toUtf8())); else page()->mainFrame()->evaluateJavaScript(scriptSource); return; } if (reqUrl.isEmpty() || isUrlValid(reqUrl)) { request.load(this); m_aboutToLoadUrl = reqUrl; return; } const LoadRequest searchRequest = mApp->searchEnginesManager()->searchResult(reqUrl.toString()); m_aboutToLoadUrl = searchRequest.url(); searchRequest.load(this); }
void LocationBar::requestLoadUrl() { const LoadRequest req = createLoadRequest(); const QString urlString = convertUrlToText(req.url()); m_completer->closePopup(); m_webView->setFocus(); if (urlString != text()) { setText(urlString); } m_webView->userLoadAction(req); }
void WebView::load(const LoadRequest &request) { const QUrl reqUrl = request.url(); if (reqUrl.isEmpty()) return; if (reqUrl.scheme() == QL1S("javascript")) { const QString scriptSource = reqUrl.toString().mid(11); // Is the javascript source percent encoded or not? // Looking for % character in source should work in most cases if (scriptSource.contains(QL1C('%'))) page()->runJavaScript(QUrl::fromPercentEncoding(scriptSource.toUtf8())); else page()->runJavaScript(scriptSource); return; } if (isUrlValid(reqUrl)) { loadRequest(request); return; } // Make sure to correctly load hosts like localhost (eg. without the dot) if (!reqUrl.isEmpty() && reqUrl.scheme().isEmpty() && !QzTools::containsSpace(reqUrl.path()) && // See #1622 !reqUrl.path().contains(QL1C('.')) ) { QUrl u(QSL("http://") + reqUrl.path()); if (u.isValid()) { // This is blocking... QHostInfo info = QHostInfo::fromName(u.path()); if (info.error() == QHostInfo::NoError) { LoadRequest req = request; req.setUrl(u); loadRequest(req); return; } } } if (qzSettings->searchFromAddressBar) { const LoadRequest searchRequest = mApp->searchEnginesManager()->searchResult(request.urlString()); loadRequest(searchRequest); } }
void WebView::searchSelectedTextInBackgroundTab() { SearchEngine engine = mApp->searchEnginesManager()->activeEngine(); if (QAction* act = qobject_cast<QAction*>(sender())) { if (act->data().isValid()) { engine = act->data().value<SearchEngine>(); } } LoadRequest req = mApp->searchEnginesManager()->searchResult(engine, selectedText()); QNetworkRequest r = req.networkRequest(); r.setRawHeader("Referer", req.url().toEncoded()); r.setRawHeader("X-QupZilla-UserLoadAction", QByteArray("1")); req.setNetworkRequest(r); loadInNewTab(req, Qz::NT_NotSelectedTab); }
void LocationCompleter::loadRequest(const LoadRequest &request) { closePopup(); // Show url in locationbar emit showCompletion(request.url().toString(), false); // Load request emit loadRequested(request); }
void LocationBar::loadRequest(const LoadRequest &request) { if (!m_webView->webTab()->isRestored()) { return; } const QString urlString = convertUrlToText(request.url()); m_completer->closePopup(); m_webView->setFocus(); if (urlString != text()) { setText(urlString); } m_webView->userLoadAction(request); }
LoadRequest LocationBar::createLoadRequest() const { LoadRequest req; const QString &t = text().trimmed(); // Check for Search Engine shortcut int firstSpacePos = t.indexOf(QLatin1Char(' ')); if (firstSpacePos != -1) { const QString shortcut = t.left(firstSpacePos); const QString searchedString = t.mid(firstSpacePos).trimmed(); SearchEngine en = mApp->searchEnginesManager()->engineForShortcut(shortcut); if (!en.name.isEmpty()) { req = mApp->searchEnginesManager()->searchResult(en, searchedString); } } // Check for Bookmark keyword QList<BookmarkItem*> items = mApp->bookmarks()->searchKeyword(t); if (!items.isEmpty()) { BookmarkItem* item = items.at(0); item->updateVisitCount(); req.setUrl(item->url()); } if (req.isEmpty()) { // One word needs special handling, because QUrl::fromUserInput // would convert it to QUrl("http://WORD") if (!t.contains(QL1C(' ')) && !t.contains(QL1C('.'))) { req.setUrl(QUrl(t)); } else { const QUrl &guessed = QUrl::fromUserInput(t); if (!guessed.isEmpty()) req.setUrl(guessed); else req.setUrl(QUrl::fromEncoded(t.toUtf8())); } } return req; }