]> cloud.milkyroute.net Git - dolphin.git/commitdiff
if "split view" is used as startup setting, also open new tabs in the split view...
authorPeter Penz <peter.penz19@gmail.com>
Fri, 12 Dec 2008 20:30:23 +0000 (20:30 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Fri, 12 Dec 2008 20:30:23 +0000 (20:30 +0000)
BUG: 176980

svn path=/trunk/KDE/kdebase/apps/; revision=896206

src/dolphinmainwindow.cpp
src/dolphinmainwindow.h

index 23bec1173486e8f54683cdea49b5cca5f534ae4c..22d2f09fc338fa7ea691c054f2f62f226e0dff1b 100644 (file)
@@ -327,6 +327,15 @@ void DolphinMainWindow::openNewTab(const KUrl& url)
     m_viewTab.append(viewTab);
 
     actionCollection()->action("close_tab")->setEnabled(true);
+
+    // provide a split view, if the startup settings are set this way
+    const GeneralSettings* generalSettings = DolphinSettings::instance().generalSettings();
+    if (generalSettings->splitView()) {
+        const int tabIndex = m_viewTab.count() - 1;
+        createSecondaryView(tabIndex);
+        m_viewTab[tabIndex].secondaryView->setActive(true);
+        m_viewTab[tabIndex].isPrimaryViewActive = false;
+    }
 }
 
 void DolphinMainWindow::activateNextTab()
@@ -532,19 +541,7 @@ void DolphinMainWindow::invertSelection()
 void DolphinMainWindow::toggleSplitView()
 {
     if (m_viewTab[m_tabIndex].secondaryView == 0) {
-        // create a secondary view
-        QSplitter* splitter = m_viewTab[m_tabIndex].splitter;
-        const int newWidth = (m_viewTab[m_tabIndex].primaryView->width() - splitter->handleWidth()) / 2;
-
-        const DolphinView* view = m_viewTab[m_tabIndex].primaryView->view();
-        m_viewTab[m_tabIndex].secondaryView = new DolphinViewContainer(this, 0, view->rootUrl());
-        connectViewSignals(m_viewTab[m_tabIndex].secondaryView);
-        splitter->addWidget(m_viewTab[m_tabIndex].secondaryView);
-        splitter->setSizes(QList<int>() << newWidth << newWidth);
-        m_viewTab[m_tabIndex].secondaryView->view()->reload();
-        m_viewTab[m_tabIndex].secondaryView->setActive(false);
-        m_viewTab[m_tabIndex].secondaryView->show();
-
+        createSecondaryView(m_tabIndex);
         setActiveViewContainer(m_viewTab[m_tabIndex].secondaryView);
     } else if (m_activeViewContainer == m_viewTab[m_tabIndex].secondaryView) {
         // remove secondary view
@@ -1308,6 +1305,21 @@ bool DolphinMainWindow::isKompareInstalled() const
     return installed;
 }
 
+void DolphinMainWindow::createSecondaryView(int tabIndex)
+{
+    QSplitter* splitter = m_viewTab[tabIndex].splitter;
+    const int newWidth = (m_viewTab[tabIndex].primaryView->width() - splitter->handleWidth()) / 2;
+
+    const DolphinView* view = m_viewTab[tabIndex].primaryView->view();
+    m_viewTab[tabIndex].secondaryView = new DolphinViewContainer(this, 0, view->rootUrl());
+    splitter->addWidget(m_viewTab[tabIndex].secondaryView);
+    splitter->setSizes(QList<int>() << newWidth << newWidth);
+    connectViewSignals(m_viewTab[tabIndex].secondaryView);
+    m_viewTab[tabIndex].secondaryView->view()->reload();
+    m_viewTab[tabIndex].secondaryView->setActive(false);
+    m_viewTab[tabIndex].secondaryView->show();
+}
+
 DolphinMainWindow::UndoUiInterface::UndoUiInterface() :
     KIO::FileUndoManager::UiInterface()
 {
index e09b005087ac2524e8b5e298bbf1798fc877653a..8ec61d764f3443a7008f4556b43895226a996e77 100644 (file)
@@ -398,6 +398,8 @@ private:
 
     bool isKompareInstalled() const;
 
+    void createSecondaryView(int tabIndex);
+
 private:
     /**
      * Implements a custom error handling for the undo manager. This