mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 00:11:21 +00:00
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
This commit is contained in:
parent
f332f4cf9a
commit
9d1a8d98dd
|
@ -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());
|
||||
|
||||
|
|
|
@ -391,7 +391,8 @@ private:
|
|||
|
||||
struct ViewTab
|
||||
{
|
||||
ViewTab() : primaryView(0), secondaryView(0), splitter(0) {}
|
||||
ViewTab() : isPrimaryViewActive(true), primaryView(0), secondaryView(0), splitter(0) {}
|
||||
bool isPrimaryViewActive;
|
||||
DolphinViewContainer* primaryView;
|
||||
DolphinViewContainer* secondaryView;
|
||||
QSplitter* splitter;
|
||||
|
|
Loading…
Reference in a new issue