+void DolphinTabPage::connectNavigators(DolphinNavigatorsWidgetAction *navigatorsWidget)
+{
+ m_navigatorsWidget = navigatorsWidget;
+ auto primaryNavigator = navigatorsWidget->primaryUrlNavigator();
+ primaryNavigator->setActive(m_primaryViewActive);
+ m_primaryViewContainer->connectUrlNavigator(primaryNavigator);
+ if (m_splitViewEnabled) {
+ auto secondaryNavigator = navigatorsWidget->secondaryUrlNavigator();
+ if (!secondaryNavigator) {
+ navigatorsWidget->createSecondaryUrlNavigator();
+ secondaryNavigator = navigatorsWidget->secondaryUrlNavigator();
+ }
+ secondaryNavigator->setActive(!m_primaryViewActive);
+ m_secondaryViewContainer->connectUrlNavigator(secondaryNavigator);
+ }
+ resizeNavigators();
+}
+
+void DolphinTabPage::disconnectNavigators()
+{
+ m_navigatorsWidget = nullptr;
+ m_primaryViewContainer->disconnectUrlNavigator();
+ if (m_splitViewEnabled) {
+ m_secondaryViewContainer->disconnectUrlNavigator();
+ }
+}
+
+bool DolphinTabPage::eventFilter(QObject */* watched */, QEvent *event)
+{
+ if (event->type() == QEvent::Resize && m_navigatorsWidget) {
+ resizeNavigators();
+ }
+ return false;
+}
+
+void DolphinTabPage::resizeNavigators() const
+{
+ if (!m_splitViewEnabled) {
+ m_navigatorsWidget->followViewContainerGeometry(
+ m_primaryViewContainer->mapToGlobal(QPoint(0,0)).x(),
+ m_primaryViewContainer->width());
+ } else {
+ m_navigatorsWidget->followViewContainersGeometry(
+ m_primaryViewContainer->mapToGlobal(QPoint(0,0)).x(),
+ m_primaryViewContainer->width(),
+ m_secondaryViewContainer->mapToGlobal(QPoint(0,0)).x(),
+ m_secondaryViewContainer->width());
+ }
+}
+