summaryrefslogtreecommitdiff
path: root/src/webtab/protocolhandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/webtab/protocolhandler.cpp')
-rw-r--r--src/webtab/protocolhandler.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/webtab/protocolhandler.cpp b/src/webtab/protocolhandler.cpp
index e9f6a77c..4b456112 100644
--- a/src/webtab/protocolhandler.cpp
+++ b/src/webtab/protocolhandler.cpp
@@ -31,7 +31,10 @@
#include "rekonq.h"
// Local Includes
+#include "application.h"
+
#include "historymanager.h"
+
#include "webpage.h"
#include "webtab.h"
#include "urlbar.h"
@@ -142,6 +145,26 @@ bool ProtocolHandler::preHandling(const QNetworkRequest &request, QWebFrame *fra
return false;
}
+ kDebug() << "FN: " << _url.fileName();
+ kDebug() << "DIR: " << _url.directory();
+
+ if (_url.directory() == QL1S("webapp"))
+ {
+ if (_url.fileName() == QL1S("launch"))
+ {
+ QString value = _url.queryItemValue(QL1S("url"));
+ rApp->loadUrl(KUrl(value), Rekonq::WebApp);
+ return true;
+ }
+ if (_url.fileName() == QL1S("install"))
+ {
+ QString urlValue = _url.queryItemValue(QL1S("url"));
+ QString titleValue = _url.queryItemValue(QL1S("title"));
+ rApp->createWebAppShortcut(urlValue, titleValue);
+ return true;
+ }
+ }
+
if (encodedUrl == QByteArray("about:home"))
{
switch (ReKonfig::newTabStartPage())