From 0f96a0ae5d93853d56ad723557fc58ca51b7cef0 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Mon, 1 Jun 2009 01:43:03 +0200 Subject: Moving guessUrlFromString function to Application class --- src/application.cpp | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++-- src/application.h | 4 +++- src/mainview.cpp | 6 ++--- src/mainwindow.cpp | 61 +-------------------------------------------------- src/mainwindow.h | 1 - 5 files changed, 67 insertions(+), 68 deletions(-) (limited to 'src') diff --git a/src/application.cpp b/src/application.cpp index 06947e22..09a8a087 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -91,7 +91,7 @@ int Application::newInstance() { for (int i = 0; i < args->count(); ++i) { - KUrl url = MainWindow::guessUrlFromString(args->arg(i)); + KUrl url = guessUrlFromString(args->arg(i)); newWebView(); mainWindow()->loadUrl(url); } @@ -148,7 +148,7 @@ WebView *Application::newWebView(Rekonq::OpenType type) CookieJar *Application::cookieJar() { - return (CookieJar*)networkAccessManager()->cookieJar(); + return (CookieJar *)networkAccessManager()->cookieJar(); } @@ -193,3 +193,62 @@ KIcon Application::icon(const KUrl &url) const } return icon; } + + +KUrl Application::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 qurl(urlStr, QUrl::TolerantMode); + KUrl url(qurl); + + if (url.isValid()) + { + return url; + } + } + + // Might be a file. + if (QFile::exists(urlStr)) + { + QFileInfo info(urlStr); + return KUrl::fromPath(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(); + QString schema = (prefix == QLatin1String("ftp")) ? prefix : QLatin1String("http"); + QUrl qurl(schema + QLatin1String("://") + urlStr, QUrl::TolerantMode); + KUrl url(qurl); + + if (url.isValid()) + { + return url; + } + } + } + + // Fall back to QUrl's own tolerant parser. + QUrl qurl = QUrl(string, QUrl::TolerantMode); + KUrl url(qurl); + + // finally for cases where the user just types in a hostname add http + if (qurl.scheme().isEmpty()) + { + qurl = QUrl(QLatin1String("http://") + string, QUrl::TolerantMode); + url = KUrl(qurl); + } + return url; +} diff --git a/src/application.h b/src/application.h index dd26ef9c..e61b2a31 100644 --- a/src/application.h +++ b/src/application.h @@ -75,10 +75,12 @@ public: static Application *instance(); MainWindow *mainWindow(); - WebView* newWebView(Rekonq::OpenType type = Rekonq::Default); + WebView *newWebView(Rekonq::OpenType type = Rekonq::Default); KIcon icon(const KUrl &url) const; + static KUrl guessUrlFromString(const QString &url); + static HistoryManager *historyManager(); static CookieJar *cookieJar(); static NetworkAccessManager *networkAccessManager(); diff --git a/src/mainview.cpp b/src/mainview.cpp index d8d1c2b5..ea56527d 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -362,10 +362,8 @@ WebView *MainView::newWebView(Rekonq::OpenType type) connect(webView, SIGNAL(shiftCtrlTabPressed()), this, SLOT(previousTab())); // connecting webPage signals with mainview - connect(webView->page(), SIGNAL(windowCloseRequested()), - this, SLOT(windowCloseRequested())); - connect(webView->page(), SIGNAL(printRequested(QWebFrame *)), - this, SIGNAL(printRequested(QWebFrame *))); + connect(webView->page(), SIGNAL(windowCloseRequested()), this, SLOT(windowCloseRequested())); + connect(webView->page(), SIGNAL(printRequested(QWebFrame *)), this, SIGNAL(printRequested(QWebFrame *))); addTab(webView, i18n("(Untitled)")); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index f47c6677..287d423d 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -409,65 +409,6 @@ void MainWindow::slotUpdateBrowser() } -KUrl MainWindow::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 qurl(urlStr, QUrl::TolerantMode); - KUrl url(qurl); - - if (url.isValid()) - { - return url; - } - } - - // Might be a file. - if (QFile::exists(urlStr)) - { - QFileInfo info(urlStr); - return KUrl::fromPath(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(); - QString schema = (prefix == QLatin1String("ftp")) ? prefix : QLatin1String("http"); - QUrl qurl(schema + QLatin1String("://") + urlStr, QUrl::TolerantMode); - KUrl url(qurl); - - if (url.isValid()) - { - return url; - } - } - } - - // Fall back to QUrl's own tolerant parser. - QUrl qurl = QUrl(string, QUrl::TolerantMode); - KUrl url(qurl); - - // finally for cases where the user just types in a hostname add http - if (qurl.scheme().isEmpty()) - { - qurl = QUrl(QLatin1String("http://") + string, QUrl::TolerantMode); - url = KUrl(qurl); - } - return url; -} - - void MainWindow::loadUrl(const KUrl &url) { m_view->loadUrl(url); @@ -543,7 +484,7 @@ void MainWindow::slotFileOpen() if (filePath.isEmpty()) return; - loadUrl(guessUrlFromString(filePath)); + loadUrl(Application::guessUrlFromString(filePath)); } diff --git a/src/mainwindow.h b/src/mainwindow.h index 7d0b2e5c..cc0aa2e8 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -62,7 +62,6 @@ public: MainWindow(); ~MainWindow(); - static KUrl guessUrlFromString(const QString &url); MainView *mainView() const; WebView *currentTab() const; QAction *actionByName(const QString name); -- cgit v1.2.1