diff options
author | Jocelyn Turcotte <jocelyn.turcotte@nokia.com> | 2009-11-11 13:56:41 (GMT) |
---|---|---|
committer | Jocelyn Turcotte <jocelyn.turcotte@nokia.com> | 2009-11-12 13:20:14 (GMT) |
commit | aeea26b384a362e59c335f7932a8b3915c1c8383 (patch) | |
tree | d895f0477a5dcc255083d4e4505640ddd4104ed3 /demos/browser | |
parent | d39104d9b0ce43f872d2880baef8e1cff289adb8 (diff) | |
download | Qt-aeea26b384a362e59c335f7932a8b3915c1c8383.zip Qt-aeea26b384a362e59c335f7932a8b3915c1c8383.tar.gz Qt-aeea26b384a362e59c335f7932a8b3915c1c8383.tar.bz2 |
QUrl::fromUserInput: improvements, corrections and make the demo
browser use it.
- Handle windows files names by looking for paths first (and don't check
that it exists first)
- Handle host names without dots (it was not handled because of
difficulties with the case host:port)
- Return the parsed url only if the host or the path is not empty
instead of returning a url that looks like "http:"
Reviewed-by: Thiago Macieira
Diffstat (limited to 'demos/browser')
-rw-r--r-- | demos/browser/browsermainwindow.cpp | 43 | ||||
-rw-r--r-- | demos/browser/browsermainwindow.h | 1 |
2 files changed, 1 insertions, 43 deletions
diff --git a/demos/browser/browsermainwindow.cpp b/demos/browser/browsermainwindow.cpp index fba3ac5..8e3986b 100644 --- a/demos/browser/browsermainwindow.cpp +++ b/demos/browser/browsermainwindow.cpp @@ -552,47 +552,6 @@ void BrowserMainWindow::slotViewStatusbar() m_autoSaver->changeOccurred(); } -QUrl BrowserMainWindow::guessUrlFromString(const QString &string) -{ - QString urlStr = string.trimmed(); - QRegExp test(QLatin1String("^[a-zA-Z]+\\:.*")); - - // Check if it looks like a qualified URL. Try parsing it and see. - bool hasSchema = test.exactMatch(urlStr); - if (hasSchema) { - QUrl url = QUrl::fromEncoded(urlStr.toUtf8(), QUrl::TolerantMode); - if (url.isValid()) - return url; - } - - // Might be a file. - if (QFile::exists(urlStr)) { - QFileInfo info(urlStr); - return QUrl::fromLocalFile(info.absoluteFilePath()); - } - - // Might be a shorturl - try to detect the schema. - if (!hasSchema) { - int dotIndex = urlStr.indexOf(QLatin1Char('.')); - if (dotIndex != -1) { - QString prefix = urlStr.left(dotIndex).toLower(); - QByteArray schema = (prefix == QLatin1String("ftp")) ? prefix.toLatin1() : QByteArray("http"); - QUrl url = - QUrl::fromEncoded(schema + "://" + urlStr.toUtf8(), QUrl::TolerantMode); - if (url.isValid()) - return url; - } - } - - // Fall back to QUrl's own tolerant parser. - QUrl url = QUrl::fromEncoded(string.toUtf8(), QUrl::TolerantMode); - - // finally for cases where the user just types in a hostname add http - if (url.scheme().isEmpty()) - url = QUrl::fromEncoded("http://" + string.toUtf8(), QUrl::TolerantMode); - return url; -} - void BrowserMainWindow::loadUrl(const QUrl &url) { if (!currentTab() || !url.isValid()) @@ -873,7 +832,7 @@ void BrowserMainWindow::slotSwapFocus() void BrowserMainWindow::loadPage(const QString &page) { - QUrl url = guessUrlFromString(page); + QUrl url = QUrl::fromUserInput(page); loadUrl(url); } diff --git a/demos/browser/browsermainwindow.h b/demos/browser/browsermainwindow.h index f5c14ea..f0f95b1 100644 --- a/demos/browser/browsermainwindow.h +++ b/demos/browser/browsermainwindow.h @@ -68,7 +68,6 @@ public: QSize sizeHint() const; public: - static QUrl guessUrlFromString(const QString &url); TabWidget *tabWidget() const; WebView *currentTab() const; QByteArray saveState(bool withTabs = true) const; |