summaryrefslogtreecommitdiff
path: root/src/application.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/application.cpp')
-rw-r--r--src/application.cpp74
1 files changed, 60 insertions, 14 deletions
diff --git a/src/application.cpp b/src/application.cpp
index 5f7892c4..09a8a087 100644
--- a/src/application.cpp
+++ b/src/application.cpp
@@ -34,7 +34,6 @@
#include "networkaccessmanager.h"
#include "mainview.h"
#include "webview.h"
-#include "download.h"
// KDE Includes
#include <KCmdLineArgs>
@@ -52,7 +51,6 @@
QPointer<HistoryManager> Application::s_historyManager;
QPointer<NetworkAccessManager> Application::s_networkAccessManager;
-QPointer<DownloadManager> Application::s_downloadManager;
QPointer<BookmarkProvider> Application::s_bookmarkProvider;
@@ -93,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);
}
@@ -150,7 +148,7 @@ WebView *Application::newWebView(Rekonq::OpenType type)
CookieJar *Application::cookieJar()
{
- return (CookieJar*)networkAccessManager()->cookieJar();
+ return (CookieJar *)networkAccessManager()->cookieJar();
}
@@ -176,16 +174,6 @@ HistoryManager *Application::historyManager()
}
-DownloadManager *Application::downloadManager()
-{
- if (!s_downloadManager)
- {
- s_downloadManager = new DownloadManager();
- }
- return s_downloadManager;
-}
-
-
BookmarkProvider *Application::bookmarkProvider()
{
if (!s_bookmarkProvider)
@@ -206,3 +194,61 @@ 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;
+}