]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinnavigatorswidgetaction.cpp
SVN_SILENT made messages (.desktop file) - always resolve ours
[dolphin.git] / src / dolphinnavigatorswidgetaction.cpp
index e1254e019dd01fca5ce8829bcc86ef5289f116c8..ef99d1cb701321b726a4409bf863472fd7b65161 100644 (file)
@@ -9,6 +9,7 @@
 
 #include "trash/dolphintrash.h"
 
+#include <KCoreAddons>
 #include <KLocalizedString>
 #include <KNotificationJobUiDelegate>
 #include <KService>
@@ -18,6 +19,7 @@
 #include <QApplication>
 #include <QHBoxLayout>
 #include <QPushButton>
+#include <QStyle>
 #include <QToolBar>
 
 #include <limits>
@@ -101,6 +103,9 @@ void DolphinNavigatorsWidgetAction::createSecondaryUrlNavigator()
     Q_ASSERT(m_splitter->count() == 1);
     m_splitter->addWidget(createNavigatorWidget(Secondary));
     Q_ASSERT(m_splitter->count() == 2);
+#if KIO_VERSION >= QT_VERSION_CHECK(6, 14, 0)
+    secondaryUrlNavigator()->setBackgroundEnabled(primaryUrlNavigator()->isBackgroundEnabled());
+#endif
     updateText();
 }
 
@@ -134,15 +139,33 @@ void DolphinNavigatorsWidgetAction::setSecondaryNavigatorVisible(bool visible)
 {
     if (visible) {
         Q_ASSERT(m_splitter->count() == 2);
+        m_splitter->widget(0)->setContentsMargins(0, 0, m_splitter->style()->pixelMetric(QStyle::PM_LayoutRightMargin), 0);
+        m_splitter->widget(1)->setContentsMargins(m_splitter->style()->pixelMetric(QStyle::PM_LayoutLeftMargin), 0, 0, 0);
         m_splitter->widget(1)->setVisible(true);
     } else if (m_splitter->count() > 1) {
         m_splitter->widget(1)->setVisible(false);
+        m_splitter->widget(0)->setContentsMargins(0, 0, 0, 0);
+        m_splitter->widget(1)->setContentsMargins(0, 0, 0, 0);
         // Fix an unlikely event of wrong trash button visibility.
         emptyTrashButton(Secondary)->setVisible(false);
     }
     updateText();
 }
 
+void DolphinNavigatorsWidgetAction::setBackgroundEnabled(bool enabled)
+{
+#if KIO_VERSION >= QT_VERSION_CHECK(6, 14, 0)
+    m_splitter->setAutoFillBackground(!enabled);
+    m_splitter->setBackgroundRole(enabled ? QPalette::Window : QPalette::Base);
+    primaryUrlNavigator()->setBackgroundEnabled(enabled);
+    if (secondaryUrlNavigator()) {
+        secondaryUrlNavigator()->setBackgroundEnabled(enabled);
+    }
+#else
+    Q_UNUSED(enabled);
+#endif
+}
+
 QWidget *DolphinNavigatorsWidgetAction::createWidget(QWidget *parent)
 {
     QWidget *oldParent = m_splitter->parentWidget();
@@ -172,6 +195,7 @@ QWidget *DolphinNavigatorsWidgetAction::createNavigatorWidget(Side side) const
     auto layout = new QHBoxLayout{navigatorWidget};
     layout->setSpacing(0);
     layout->setContentsMargins(0, 0, 0, 0);
+
     if (side == Primary) {
         auto leadingSpacing = new QWidget{navigatorWidget};
         layout->addWidget(leadingSpacing);