diff options
| author | Akseli Lahtinen <[email protected]> | 2025-09-19 11:22:23 +0300 |
|---|---|---|
| committer | Akseli Lahtinen <[email protected]> | 2025-09-19 11:22:23 +0300 |
| commit | 2a0fa83b72631b21d2e8d731feb0eff576af0f77 (patch) | |
| tree | 8353ebbdf5f05652ab5fde09d8586f68db60348c | |
| parent | 4be2b872b55995fb12d9c6f8f7442d676c4f5ba5 (diff) | |
DolphinTabPage: Show separator when navigator is outside of menubar
When navigator is outside of menubar, we should show separator under
it to make it visually easier to understand it's a clickable area.
This adds a small separator, that will be disabled when
the navigator is moved back to menubar.
BUG: 508303
| -rw-r--r-- | src/dolphinmainwindow.cpp | 6 | ||||
| -rw-r--r-- | src/dolphintabpage.cpp | 13 | ||||
| -rw-r--r-- | src/dolphintabpage.h | 2 |
3 files changed, 18 insertions, 3 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index f7ca69553..7d8e406c2 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -3053,9 +3053,9 @@ void DolphinMainWindow::saveNewToolbarConfig() // because the rest of this method decides things // based on the new config. auto navigators = static_cast<DolphinNavigatorsWidgetAction *>(actionCollection()->action(QStringLiteral("url_navigators"))); - if (!toolBar()->actions().contains(navigators)) { - m_tabWidget->currentTabPage()->insertNavigatorsWidget(navigators); - } + + m_tabWidget->currentTabPage()->insertNavigatorsWidget(navigators); + updateAllowedToolbarAreas(); updateNavigatorsBackground(); (static_cast<KHamburgerMenu *>(actionCollection()->action(KStandardAction::name(KStandardAction::HamburgerMenu))))->hideActionsOf(toolBar()); diff --git a/src/dolphintabpage.cpp b/src/dolphintabpage.cpp index dbc55e7d6..8e06bbb69 100644 --- a/src/dolphintabpage.cpp +++ b/src/dolphintabpage.cpp @@ -10,6 +10,7 @@ #include "dolphin_generalsettings.h" #include "dolphinviewcontainer.h" +#include <QFrame> #include <QGridLayout> #include <QStyle> #include <QVariantAnimation> @@ -210,6 +211,7 @@ void DolphinTabPage::connectNavigators(DolphinNavigatorsWidgetAction *navigators void DolphinTabPage::disconnectNavigators() { m_navigatorsWidget = nullptr; + m_navigatorSeparator = nullptr; m_primaryViewContainer->disconnectUrlNavigator(); if (m_splitViewEnabled) { m_secondaryViewContainer->disconnectUrlNavigator(); @@ -220,12 +222,23 @@ void DolphinTabPage::insertNavigatorsWidget(DolphinNavigatorsWidgetAction *navig { QGridLayout *gridLayout = static_cast<QGridLayout *>(layout()); if (navigatorsWidget->isInToolbar()) { + if (m_navigatorSeparator) { + m_navigatorSeparator->setFrameStyle(QFrame::NoFrame); + gridLayout->removeWidget(m_navigatorSeparator.get()); + } gridLayout->setRowMinimumHeight(0, 0); } else { // We set a row minimum height, so the height does not visibly change whenever // navigatorsWidget is inserted which happens every time the current tab is changed. gridLayout->setRowMinimumHeight(0, navigatorsWidget->primaryUrlNavigator()->height()); gridLayout->addWidget(navigatorsWidget->requestWidget(this), 0, 0); + if (!m_navigatorSeparator) { + m_navigatorSeparator = std::make_unique<QFrame>(this); + } + m_navigatorSeparator->setFrameStyle(QFrame::HLine); + m_navigatorSeparator->setFixedHeight(1); + m_navigatorSeparator->setContentsMargins(0, 0, 0, 0); + gridLayout->addWidget(m_navigatorSeparator.get(), 1, 0, 0, -1); } } diff --git a/src/dolphintabpage.h b/src/dolphintabpage.h index 1e79fb5db..0c788d115 100644 --- a/src/dolphintabpage.h +++ b/src/dolphintabpage.h @@ -210,6 +210,8 @@ private: DolphinViewContainer *m_expandingContainer; QPointer<QVariantAnimation> m_expandViewAnimation; + std::unique_ptr<QFrame> m_navigatorSeparator; + bool m_primaryViewActive; bool m_splitViewEnabled; bool m_active; |
