From 8ee38c561d2fd4d19de8c916139f7c88736636c2 Mon Sep 17 00:00:00 2001 From: megabigbug Date: Fri, 31 Jul 2009 21:43:28 +0200 Subject: Fix tab in background feature --- src/application.cpp | 44 +++++++++++++++++--------------------------- src/mainview.cpp | 6 +++--- src/mainview.h | 2 +- src/webpage.cpp | 2 +- 4 files changed, 22 insertions(+), 32 deletions(-) diff --git a/src/application.cpp b/src/application.cpp index 623c3034..06e67218 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -283,35 +283,25 @@ void Application::loadUrl(const KUrl& url, const Rekonq::OpenType& type) // this should let rekonq to support the beautiful KDE web browsing shortcuts loadingUrl = KUriFilter::self()->filteredUri(loadingUrl); - WebView *webView; - if( type == Rekonq::CurrentTab ) - { - webView = m_mainWindow->currentTab(); - m_mainWindow->mainView()->currentUrlBar()->setUrl(loadingUrl.prettyUrl()); - } - else + WebView *webView=m_mainWindow->mainView()->currentWebView(); + + switch(type) { - webView = m_mainWindow->mainView()->newTab(); - m_mainWindow->mainView()->currentUrlBar()->setUrl(loadingUrl.prettyUrl()); + case Rekonq::SettingOpenTab: + webView = m_mainWindow->mainView()->newTab(!ReKonfig::openTabsBack()); + break; + case Rekonq::NewTab: + webView = m_mainWindow->mainView()->newTab(true); + break; + case Rekonq::BackgroundTab: + webView = m_mainWindow->mainView()->newTab(false); + break; + case Rekonq::CurrentTab: // nothing to do here.. just to save a warning!! + break; + }; + + m_mainWindow->mainView()->currentUrlBar()->setUrl(loadingUrl.prettyUrl()); - switch(type) - { - case Rekonq::SettingOpenTab: - if (!ReKonfig::openTabsBack()) - { - m_mainWindow->mainView()->setCurrentWidget(webView); // this method does NOT take ownership of webView - } - break; - case Rekonq::NewTab: - m_mainWindow->mainView()->setCurrentWidget(webView); // this method does NOT take ownership of webView - break; - case Rekonq::BackgroundTab: // no need for focus here - break; - case Rekonq::CurrentTab: // nothing to do here.. just to save a warning!! - break; - }; - } - if (webView) { webView->setFocus(); diff --git a/src/mainview.cpp b/src/mainview.cpp index 22a03242..8c1de1f6 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -350,7 +350,7 @@ WebView *MainView::webView(int index) const } -WebView *MainView::newTab() +WebView *MainView::newTab(bool focus) { // line edit UrlBar *urlBar = new UrlBar; // Ownership of widget is passed on to the QStackedWidget (addWidget method). @@ -380,8 +380,8 @@ WebView *MainView::newTab() connect(webView->page(), SIGNAL(printRequested(QWebFrame *)), this, SIGNAL(printRequested(QWebFrame *))); addTab(webView, i18n("(Untitled)")); + if (focus) setCurrentWidget(webView); - setCurrentWidget(webView); // this method does NOT take ownership of webView urlBar->setFocus(); emit tabsChanged(); @@ -662,7 +662,7 @@ QLabel *MainView::animatedLoading(int index, bool addMovie) } -void MainView::mouseDoubleClickEvent(QMouseEvent *event) +void MainView::mouseDoubleClickEvent(QMouseEvent *event) //WARNING Need to be fix { if (!childAt(event->pos())) { diff --git a/src/mainview.h b/src/mainview.h index 49000434..99693ed6 100644 --- a/src/mainview.h +++ b/src/mainview.h @@ -102,7 +102,7 @@ public slots: * * @return a pointer to the new WebView */ - WebView *newTab(); + WebView *newTab(bool focus = true); void slotCloneTab(int index = -1); void slotCloseTab(int index = -1); diff --git a/src/webpage.cpp b/src/webpage.cpp index 771b7f04..7938208a 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -90,7 +90,7 @@ bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &r { if (m_keyboardModifiers & Qt::ControlModifier || m_pressedButtons == Qt::MidButton) { - Application::instance()->loadUrl(request.url(), Rekonq::NewTab); + Application::instance()->loadUrl(request.url(), Rekonq::SettingOpenTab); m_keyboardModifiers = Qt::NoModifier; m_pressedButtons = Qt::NoButton; return false; -- cgit v1.2.1