On url redirect, we should check which container url is being changed
and then update it accordingly. This makes sure the tab name is
updated.
We also should not disconnect redirection on view activation
since the redirection might be used by the other split.
The disconnection is done in `setSplitViewEnabled` instead.
This allows us to update the tab name every time the url changes,
even inside a splitview where the split which name is changed is
not active.
BUG:496414
m_splitViewEnabled = true;
const QUrl &url = secondaryUrl.isValid() ? secondaryUrl : primaryUrl;
m_secondaryViewContainer = createViewContainer(url);
m_splitViewEnabled = true;
const QUrl &url = secondaryUrl.isValid() ? secondaryUrl : primaryUrl;
m_secondaryViewContainer = createViewContainer(url);
+ connect(m_secondaryViewContainer->view(), &DolphinView::redirection, this, &DolphinTabPage::slotViewUrlRedirection);
m_splitter->addWidget(m_secondaryViewContainer);
m_secondaryViewContainer->show();
}
m_splitter->addWidget(m_secondaryViewContainer);
m_secondaryViewContainer->show();
}
secondaryNavigator = m_navigatorsWidget->secondaryUrlNavigator();
}
m_secondaryViewContainer->connectUrlNavigator(secondaryNavigator);
secondaryNavigator = m_navigatorsWidget->secondaryUrlNavigator();
}
m_secondaryViewContainer->connectUrlNavigator(secondaryNavigator);
+ connect(m_secondaryViewContainer->view(), &DolphinView::redirection, this, &DolphinTabPage::slotViewUrlRedirection);
m_navigatorsWidget->setSecondaryNavigatorVisible(true);
m_navigatorsWidget->followViewContainersGeometry(m_primaryViewContainer, m_secondaryViewContainer);
m_navigatorsWidget->setSecondaryNavigatorVisible(true);
m_navigatorsWidget->followViewContainersGeometry(m_primaryViewContainer, m_secondaryViewContainer);
} else {
m_navigatorsWidget->setSecondaryNavigatorVisible(false);
m_secondaryViewContainer->disconnectUrlNavigator();
} else {
m_navigatorsWidget->setSecondaryNavigatorVisible(false);
m_secondaryViewContainer->disconnectUrlNavigator();
+ disconnect(m_secondaryViewContainer->view(), &DolphinView::redirection, this, &DolphinTabPage::slotViewUrlRedirection);
DolphinViewContainer *view;
if (GeneralSettings::closeActiveSplitView()) {
DolphinViewContainer *view;
if (GeneralSettings::closeActiveSplitView()) {
}
disconnect(oldActiveView, &DolphinView::urlChanged, this, &DolphinTabPage::activeViewUrlChanged);
}
disconnect(oldActiveView, &DolphinView::urlChanged, this, &DolphinTabPage::activeViewUrlChanged);
- disconnect(oldActiveView, &DolphinView::redirection, this, &DolphinTabPage::slotViewUrlRedirection);
connect(newActiveView, &DolphinView::urlChanged, this, &DolphinTabPage::activeViewUrlChanged);
connect(newActiveView, &DolphinView::urlChanged, this, &DolphinTabPage::activeViewUrlChanged);
- connect(newActiveView, &DolphinView::redirection, this, &DolphinTabPage::slotViewUrlRedirection);
Q_EMIT activeViewChanged(activeViewContainer());
Q_EMIT activeViewUrlChanged(activeViewContainer()->url());
}
void DolphinTabPage::slotViewUrlRedirection(const QUrl &oldUrl, const QUrl &newUrl)
{
Q_EMIT activeViewChanged(activeViewContainer());
Q_EMIT activeViewUrlChanged(activeViewContainer()->url());
}
void DolphinTabPage::slotViewUrlRedirection(const QUrl &oldUrl, const QUrl &newUrl)
{
+ // Make sure the url of the view is updated. BUG:496414
+ if (splitViewEnabled()) {
+ if (primaryViewContainer()->view()->url() == oldUrl) {
+ primaryViewContainer()->view()->setUrl(newUrl);
+ }
+ if (secondaryViewContainer()->view()->url() == oldUrl) {
+ secondaryViewContainer()->view()->setUrl(newUrl);
+ }
+ } else {
+ activeViewContainer()->view()->setUrl(newUrl);
+ }
Q_EMIT activeViewUrlChanged(newUrl);
}
Q_EMIT activeViewUrlChanged(newUrl);
}