diff options
| -rw-r--r-- | src/application.cpp | 4 | ||||
| -rw-r--r-- | src/application.h | 17 | ||||
| -rw-r--r-- | src/mainview.cpp | 19 | ||||
| -rw-r--r-- | src/mainview.h | 7 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 2 | 
5 files changed, 38 insertions, 11 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..d4edeb19 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 (!m_makeBackTab) +        { +            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..372902dd 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> @@ -74,7 +75,7 @@ public:      WebView *currentWebView() const { return webView(currentIndex()); }      int webViewIndex(WebView *webView) const { return indexOf(webView); }      KAction *recentlyClosedTabsAction() const { return m_recentlyClosedTabsAction; } -    void setMakeTabCurrent( bool b) { makeTabCurrent = b; } +    void setMakeBackTab(bool b) { m_makeBackTab = b; }      /**       * show and hide TabBar if user doesn't choose @@ -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 @@ -191,7 +192,7 @@ private:      QString m_loadingGitPath; -    bool makeTabCurrent; +    bool m_makeBackTab;  };  #endif diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 38156dcd..4f76d180 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -352,7 +352,7 @@ void MainWindow::slotUpdateConfiguration()      // ============== General ==================      m_homePage = ReKonfig::homePage();      mainView()->showTabBar(); -    mainView()->setMakeTabCurrent( ReKonfig::openTabsBack() ); +    mainView()->setMakeBackTab( ReKonfig::openTabsBack() );      // =========== Fonts ==============      QWebSettings *defaultSettings = QWebSettings::globalSettings(); | 
