Fix updating of new item menu when changing tabs

Correctly set the active status of views when changing tabs.

Before: Right click in home folder, see create new enabled, open tab, go
to /usr, right click and see it is disabled, switch back to first tab
and right click, and it is still disabled.

After: It is enabled and disabled as appropriate when switching tab.

REVIEW: 129664
This commit is contained in:
Martin T. H. Sandsmark 2016-12-17 14:23:20 +01:00
parent ae935d36b1
commit 6af0dad2ee
2 changed files with 10 additions and 1 deletions

View file

@ -32,7 +32,8 @@
DolphinTabWidget::DolphinTabWidget(QWidget* parent) :
QTabWidget(parent),
m_placesSelectorVisible(true)
m_placesSelectorVisible(true),
m_previousTab(-1)
{
connect(this, &DolphinTabWidget::tabCloseRequested,
this, static_cast<void (DolphinTabWidget::*)(int)>(&DolphinTabWidget::closeTab));
@ -304,9 +305,15 @@ void DolphinTabWidget::tabUrlChanged(const QUrl& url)
void DolphinTabWidget::currentTabChanged(int index)
{
DolphinViewContainer* viewContainer = tabPageAt(index)->activeViewContainer();
viewContainer->setActive(true);
emit activeViewChanged(viewContainer);
emit currentUrlChanged(viewContainer->url());
viewContainer->view()->setFocus();
if (tabPageAt(m_previousTab)) {
tabPageAt(m_previousTab)->activeViewContainer()->setActive(false);
}
m_previousTab = index;
}
void DolphinTabWidget::tabInserted(int index)

View file

@ -186,6 +186,8 @@ private:
private:
/** Caches the (negated) places panel visibility */
bool m_placesSelectorVisible;
int m_previousTab;
};
#endif