From 9d1a8d98ddee728adf8345aefffd9c27b356c876 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Sun, 13 Apr 2008 19:12:52 +0000 Subject: fixes for tabs: * remember active view when having a split view inside a tab * prevent a possible recursion when returning into a tab having a split view svn path=/trunk/KDE/kdebase/apps/; revision=796563 --- src/dolphinmainwindow.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/dolphinmainwindow.cpp') diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 84d22ec4f..d19f8eb1d 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -673,6 +673,7 @@ void DolphinMainWindow::setActiveTab(int index) } // hide current tab content + m_viewTab[m_tabIndex].isPrimaryViewActive = m_viewTab[m_tabIndex].primaryView->isActive(); QSplitter* splitter = m_viewTab[m_tabIndex].splitter; m_centralWidgetLayout->removeWidget(splitter); splitter->hide(); @@ -688,7 +689,8 @@ void DolphinMainWindow::setActiveTab(int index) viewTab.secondaryView->show(); } - setActiveViewContainer(viewTab.primaryView); + setActiveViewContainer(viewTab.isPrimaryViewActive ? viewTab.primaryView : + viewTab.secondaryView); } void DolphinMainWindow::init() @@ -777,7 +779,13 @@ void DolphinMainWindow::setActiveViewContainer(DolphinViewContainer* viewContain m_activeViewContainer->setActive(false); m_activeViewContainer = viewContainer; + + // Activating the view container might trigger a recursive setActiveViewContainer() call + // inside DolphinMainWindow::toggleActiveView() when having a split view. Temporary + // disconnect the activated() signal in this case: + disconnect(m_activeViewContainer->view(), SIGNAL(activated()), this, SLOT(toggleActiveView())); m_activeViewContainer->setActive(true); + connect(m_activeViewContainer->view(), SIGNAL(activated()), this, SLOT(toggleActiveView())); m_actionHandler->setCurrentView(viewContainer->view()); -- cgit v1.3