summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/application.cpp45
-rw-r--r--src/mainwindow.cpp11
-rw-r--r--src/rekonq.kcfg4
-rw-r--r--src/webview.cpp4
4 files changed, 40 insertions, 24 deletions
diff --git a/src/application.cpp b/src/application.cpp
index 565c6ab3..6cfdf03c 100644
--- a/src/application.cpp
+++ b/src/application.cpp
@@ -46,6 +46,8 @@
#include <KPassivePopup>
#include <KToolInvocation>
#include <KUriFilter>
+#include <KMessageBox>
+#include <KProtocolInfo>
// Qt Includes
#include <QRegExp>
@@ -257,31 +259,41 @@ void Application::loadUrl(const KUrl& url, const Rekonq::OpenType& type)
if (url.isEmpty())
return;
+ if ( !url.isValid() )
+ {
+ KMessageBox::error(0, i18n("Malformed URL\n%1", url.url()));
+ return;
+ }
+
if (url.scheme() == QLatin1String("mailto"))
{
KToolInvocation::invokeMailer(url);
return;
}
-
+
KUrl loadingUrl(url);
- if (loadingUrl.isRelative())
+ // this should let rekonq filtering URI info and supporting
+ // the beautiful KDE web browsing shortcuts
+ KUriFilterData data(loadingUrl.pathOrUrl());
+ data.setCheckForExecutables(false); // if true, queries like "rekonq" or "dolphin"
+ // are considered as executables
+ if (KUriFilter::self()->filterUri(data))
{
- QString fn = loadingUrl.url(KUrl::RemoveTrailingSlash);
- if(loadingUrl.path().contains('.'))
- {
- loadingUrl.setUrl("//" + fn);
- loadingUrl.setScheme("http");
- }
- else
- {
- loadingUrl.setUrl(fn);
- loadingUrl.setScheme("gg");
- }
+ loadingUrl = data.uri().url();
+ }
+
+ if (loadingUrl.isRelative() && !loadingUrl.path().contains("."))
+ {
+ QString urlString = QString("http://www.google.com/search?q=%1").arg(loadingUrl.path());
+ loadingUrl = KUrl(urlString);
+ }
+
+ if ( !KProtocolInfo::isKnownProtocol( loadingUrl ) )
+ {
+ KMessageBox::error(0, i18n("Protocol not supported\n%1", url.protocol()));
+ return;
}
-
- // this should let rekonq to support the beautiful KDE web browsing shortcuts
- loadingUrl = KUriFilter::self()->filteredUri(loadingUrl);
WebView *webView;
@@ -310,7 +322,6 @@ void Application::loadUrl(const KUrl& url, const Rekonq::OpenType& type)
}
}
-
void Application::loadUrl(const QString& urlString, const Rekonq::OpenType& type)
{
return loadUrl( guessUrlFromString(urlString), type );
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index cebb7454..27ed8e37 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -931,13 +931,18 @@ void MainWindow::notifyMessage(const QString &msg, Rekonq::Notify status)
break;
}
- m_popup->setView(msg);
-
+ m_popup->setFrameShape(QFrame::NoFrame);
+ QLabel *label = new QLabel(msg);
+ m_popup->setLineWidth(0);
+ m_popup->setView(label);
+ m_popup->setFixedSize(0, 0);
+ m_popup->layout()->setAlignment(Qt::AlignTop);
+ m_popup->layout()->setMargin(4);
int h = KGlobalSettings::generalFont().pointSize();
// setting popus in bottom-left position
int x = geometry().x();
- int y = geometry().y() + height() - h*4;
+ int y = geometry().y() + height() - h*3;
QPoint p(x,y);
m_popup->show(p);
diff --git a/src/rekonq.kcfg b/src/rekonq.kcfg
index d6e3a8ae..50fa6621 100644
--- a/src/rekonq.kcfg
+++ b/src/rekonq.kcfg
@@ -24,7 +24,7 @@
<default>false</default>
</entry>
<entry name="showUrlsPopup" type="Bool">
- <default>false</default>
+ <default>true</default>
</entry>
</group>
@@ -37,7 +37,7 @@
<default code="true">QFont(QWebSettings::globalSettings()->fontFamily(QWebSettings::FixedFont))</default>
</entry>
<entry name="fontSize" type="Int">
- <default>12</default>
+ <default>16</default>
</entry>
</group>
diff --git a/src/webview.cpp b/src/webview.cpp
index a562b1ab..a4621dd0 100644
--- a/src/webview.cpp
+++ b/src/webview.cpp
@@ -164,7 +164,7 @@ void WebView::contextMenuEvent(QContextMenuEvent *event)
QStringList favoriteEngines;
favoriteEngines << "wikipedia" << "google"; //defaults
favoriteEngines = cg.readEntry("FavoriteSearchEngines", favoriteEngines);
- const char keywordDelimiter = cg.readEntry("KeywordDelimiter", static_cast<int>(':'));
+ QString keywordDelimiter = cg.readEntry("KeywordDelimiter", ":");
KService::Ptr service;
KUriFilterData data;
foreach (QString engine, favoriteEngines)
@@ -208,7 +208,7 @@ void WebView::contextMenuEvent(QContextMenuEvent *event)
QStringList favoriteEngines;
favoriteEngines << "wikipedia" << "google"; //defaults
favoriteEngines = cg.readEntry("FavoriteSearchEngines", favoriteEngines);
- const char keywordDelimiter = cg.readEntry("KeywordDelimiter", static_cast<int>(':'));
+ QString keywordDelimiter = cg.readEntry("KeywordDelimiter", ":");
KService::Ptr service;
KUriFilterData data;
foreach (QString engine, favoriteEngines)