]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphintabwidget.cpp
GIT_SILENT made messages (after extraction)
[dolphin.git] / src / dolphintabwidget.cpp
index a09a769d37c7497a9e2f185821daa93c713b1158..d61a9f74f5a5cb4ee086c4cc2583bdcf4d2b388f 100644 (file)
@@ -8,7 +8,6 @@
 
 #include "dolphin_generalsettings.h"
 #include "dolphintabbar.h"
-#include "dolphintabpage.h"
 #include "dolphinviewcontainer.h"
 
 #include <KConfigGroup>
@@ -128,12 +127,9 @@ bool DolphinTabWidget::isUrlOpen(const QUrl &url) const
 void DolphinTabWidget::openNewActivatedTab()
 {
     std::unique_ptr<DolphinUrlNavigator::VisualState> oldNavigatorState;
-    if (currentTabPage()->primaryViewActive()) {
+    if (currentTabPage()->primaryViewActive() || !m_navigatorsWidget->secondaryUrlNavigator()) {
         oldNavigatorState = m_navigatorsWidget->primaryUrlNavigator()->visualState();
     } else {
-        if (!m_navigatorsWidget->secondaryUrlNavigator()) {
-            m_navigatorsWidget->createSecondaryUrlNavigator();
-        }
         oldNavigatorState = m_navigatorsWidget->secondaryUrlNavigator()->visualState();
     }
 
@@ -156,10 +152,14 @@ void DolphinTabWidget::openNewActivatedTab()
 void DolphinTabWidget::openNewActivatedTab(const QUrl& primaryUrl, const QUrl& secondaryUrl)
 {
     openNewTab(primaryUrl, secondaryUrl);
-    setCurrentIndex(count() - 1);
+    if (GeneralSettings::openNewTabAfterLastTab()) {
+        setCurrentIndex(count() - 1);
+    } else {
+        setCurrentIndex(currentIndex() + 1);
+    }
 }
 
-void DolphinTabWidget::openNewTab(const QUrl& primaryUrl, const QUrl& secondaryUrl, TabPlacement tabPlacement)
+void DolphinTabWidget::openNewTab(const QUrl& primaryUrl, const QUrl& secondaryUrl)
 {
     QWidget* focusWidget = QApplication::focusWidget();
 
@@ -170,7 +170,7 @@ void DolphinTabWidget::openNewTab(const QUrl& primaryUrl, const QUrl& secondaryU
     connect(tabPage, &DolphinTabPage::activeViewUrlChanged,
             this, &DolphinTabWidget::tabUrlChanged);
     int newTabIndex = -1;
-    if (tabPlacement == AfterCurrentTab) {
+    if (!GeneralSettings::openNewTabAfterLastTab()) {
         newTabIndex = currentIndex() + 1;
     }
     insertTab(newTabIndex, tabPage, QIcon() /* loaded in tabInserted */, tabName(tabPage));
@@ -401,13 +401,16 @@ void DolphinTabWidget::currentTabChanged(int index)
         m_lastViewedTab->disconnectNavigators();
         m_lastViewedTab->setActive(false);
     }
+    if (tabPage->splitViewEnabled() && !m_navigatorsWidget->secondaryUrlNavigator()) {
+        m_navigatorsWidget->createSecondaryUrlNavigator();
+    }
     DolphinViewContainer* viewContainer = tabPage->activeViewContainer();
     Q_EMIT activeViewChanged(viewContainer);
     Q_EMIT currentUrlChanged(viewContainer->url());
     tabPage->setActive(true);
     tabPage->connectNavigators(m_navigatorsWidget);
     m_navigatorsWidget->setSecondaryNavigatorVisible(tabPage->splitViewEnabled());
-    m_lastViewedTab = tabPageAt(index);
+    m_lastViewedTab = tabPage;
 }
 
 void DolphinTabWidget::tabInserted(int index)