diff options
| author | Felix Ernst <[email protected]> | 2021-05-17 14:52:45 +0200 |
|---|---|---|
| committer | Felix Ernst <[email protected]> | 2021-05-17 14:52:45 +0200 |
| commit | 98e1fb66d054d188a7c07683e7e6768b84f63605 (patch) | |
| tree | 0fe8517d117a73e799283c17a2602da01376dc1a | |
| parent | 75d1d25d7e64dc4c1d6557b7aca90577fc28d305 (diff) | |
Fix primary view changing folder for the closing animation
This commit fixes a bug which made it so an UrlNavigator that was
disconnected from a viewContainer would still indirectly control
the viewContainer because of a dubious connection created in
DolphinMainWindow.
Instead the internal UrlNavigator of the viewContainer is used
which is always connected to its own viewContainer.
This way the the supposedly disconnected primary UrlNavigator will
actually not affect the old disconnected viewContainer that is
currently being closed.
BUG: 437080
FIXED-IN: 21.08
| -rw-r--r-- | src/dolphinmainwindow.cpp | 13 | ||||
| -rw-r--r-- | src/dolphinmainwindow.h | 3 |
2 files changed, 6 insertions, 10 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 87deb8ca6..c2c4ae703 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -1274,6 +1274,7 @@ void DolphinMainWindow::activeViewChanged(DolphinViewContainer* viewContainer) // view and url navigator) and main window. oldViewContainer->disconnect(this); oldViewContainer->view()->disconnect(this); + oldViewContainer->urlNavigatorInternalWithHistory()->disconnect(this); auto navigators = static_cast<DolphinNavigatorsWidgetAction *> (actionCollection()->action(QStringLiteral("url_navigators"))); navigators->primaryUrlNavigator()->disconnect(this); @@ -2144,15 +2145,17 @@ void DolphinMainWindow::connectViewSignals(DolphinViewContainer* container) connect(view, &DolphinView::goUpRequested, this, &DolphinMainWindow::goUp); + connect(container->urlNavigatorInternalWithHistory(), &KUrlNavigator::urlChanged, + this, &DolphinMainWindow::changeUrl); + connect(container->urlNavigatorInternalWithHistory(), &KUrlNavigator::historyChanged, + this, &DolphinMainWindow::updateHistory); + auto navigators = static_cast<DolphinNavigatorsWidgetAction *> (actionCollection()->action(QStringLiteral("url_navigators"))); - const KUrlNavigator *navigator = m_tabWidget->currentTabPage()->primaryViewActive() ? navigators->primaryUrlNavigator() : navigators->secondaryUrlNavigator(); - connect(navigator, &KUrlNavigator::urlChanged, - this, &DolphinMainWindow::changeUrl); QAction *editableLocactionAction = actionCollection()->action(QStringLiteral("editable_location")); editableLocactionAction->setChecked(navigator->isUrlEditable()); connect(navigator, &KUrlNavigator::editableStateChanged, @@ -2160,10 +2163,6 @@ void DolphinMainWindow::connectViewSignals(DolphinViewContainer* container) connect(navigator, &KUrlNavigator::tabRequested, this, &DolphinMainWindow::openNewTab); - disconnect(m_updateHistoryConnection); - m_updateHistoryConnection = connect( - container->urlNavigatorInternalWithHistory(), &KUrlNavigator::historyChanged, - this, &DolphinMainWindow::updateHistory); } void DolphinMainWindow::updateSplitAction() diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h index 2b8165ea4..95e8bb564 100644 --- a/src/dolphinmainwindow.h +++ b/src/dolphinmainwindow.h @@ -671,9 +671,6 @@ private: KToolBarPopupAction* m_backAction; KToolBarPopupAction* m_forwardAction; - /** Makes sure that only one object is ever connected to the history. */ - QMetaObject::Connection m_updateHistoryConnection; - QMenu m_searchTools; }; |
