summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/application.cpp4
-rw-r--r--src/application.h17
-rw-r--r--src/mainview.cpp19
-rw-r--r--src/mainview.h3
4 files changed, 35 insertions, 8 deletions
diff --git a/src/application.cpp b/src/application.cpp
index 03c0f442..ec24691e 100644
--- a/src/application.cpp
+++ b/src/application.cpp
@@ -141,9 +141,9 @@ MainWindow *Application::mainWindow()
}
-WebView *Application::newWebView(bool makeCurrent)
+WebView *Application::newWebView(Rekonq::OpenType type)
{
- return m_mainWindow->mainView()->newWebView(makeCurrent);
+ return m_mainWindow->mainView()->newWebView(type);
}
diff --git a/src/application.h b/src/application.h
index 10f18545..61f4af81 100644
--- a/src/application.h
+++ b/src/application.h
@@ -48,6 +48,21 @@ class NetworkAccessManager;
class WebView;
+namespace Rekonq
+{
+ /**
+ * @short Open link options
+ * Different modes of opening new tab
+ */
+ enum OpenType
+ {
+ Default, ///< open url according to users settings
+ New, ///< open url in new tab and make it current
+ Background ///< open url in new tab in background
+ };
+}
+
+
/**
*
*/
@@ -62,7 +77,7 @@ public:
static Application *instance();
MainWindow *mainWindow();
- WebView* newWebView(bool makeCurrent = true);
+ WebView* newWebView(Rekonq::OpenType type = Rekonq::Default);
KIcon icon(const KUrl &url) const;
diff --git a/src/mainview.cpp b/src/mainview.cpp
index d8375ab8..9dbf800b 100644
--- a/src/mainview.cpp
+++ b/src/mainview.cpp
@@ -296,7 +296,7 @@ WebView *MainView::webView(int index) const
}
-WebView *MainView::newWebView(bool makeCurrent)
+WebView *MainView::newWebView(Rekonq::OpenType type)
{
// line edit
UrlBar *urlBar = new UrlBar; // Ownership of widget is passed on to the QStackedWidget (addWidget method).
@@ -338,11 +338,22 @@ WebView *MainView::newWebView(bool makeCurrent)
addTab(webView, i18n("(Untitled)"));
- if (makeCurrent)
+ switch(type)
{
+ case Rekonq::Default:
+ if (makeTabCurrent)
+ {
+ setCurrentWidget(webView); // this method does NOT take ownership of webView
+ urlBar->setFocus();
+ }
+ break;
+ case Rekonq::New:
setCurrentWidget(webView); // this method does NOT take ownership of webView
urlBar->setFocus();
- }
+ break;
+ case Rekonq::Background:
+ break;
+ };
emit tabsChanged();
@@ -698,7 +709,7 @@ void MainView::mouseDoubleClickEvent(QMouseEvent *event)
{
if (!childAt(event->pos()))
{
- newWebView(true);
+ newWebView(Rekonq::New);
return;
}
KTabWidget::mouseDoubleClickEvent(event);
diff --git a/src/mainview.h b/src/mainview.h
index faa43be9..75242fef 100644
--- a/src/mainview.h
+++ b/src/mainview.h
@@ -26,6 +26,7 @@
// Local Includes
#include "webview.h"
+#include "application.h"
// KDE Includes
#include <KTabWidget>
@@ -109,7 +110,7 @@ public slots:
*
* @return a pointer to the new WebView
*/
- WebView *newWebView(bool makeCurrent = true);
+ WebView *newWebView(Rekonq::OpenType type = Rekonq::Default);
/**
* Core browser slot. Load an url in a webview