From 2a0fa83b72631b21d2e8d731feb0eff576af0f77 Mon Sep 17 00:00:00 2001 From: Akseli Lahtinen Date: Fri, 19 Sep 2025 11:22:23 +0300 Subject: 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 --- src/dolphinmainwindow.cpp | 6 +++--- src/dolphintabpage.cpp | 13 +++++++++++++ src/dolphintabpage.h | 2 ++ 3 files changed, 18 insertions(+), 3 deletions(-) (limited to 'src') 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(actionCollection()->action(QStringLiteral("url_navigators"))); - if (!toolBar()->actions().contains(navigators)) { - m_tabWidget->currentTabPage()->insertNavigatorsWidget(navigators); - } + + m_tabWidget->currentTabPage()->insertNavigatorsWidget(navigators); + updateAllowedToolbarAreas(); updateNavigatorsBackground(); (static_cast(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 #include #include #include @@ -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(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(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 m_expandViewAnimation; + std::unique_ptr m_navigatorSeparator; + bool m_primaryViewActive; bool m_splitViewEnabled; bool m_active; -- cgit v1.3