]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinnavigatorswidgetaction.cpp
Fix some compile error against qt6
[dolphin.git] / src / dolphinnavigatorswidgetaction.cpp
index d66125af6c40806899e1c04266d2fe065393ac68..bdd5cd9a7b54fb5beb2d59b4a9f7dc6dced76f15 100644 (file)
@@ -21,7 +21,6 @@
 #include <QDomDocument>
 #include <QHBoxLayout>
 #include <QPushButton>
-#include <QSplitter>
 #include <QToolBar>
 
 #include <limits>
@@ -47,6 +46,7 @@ DolphinNavigatorsWidgetAction::DolphinNavigatorsWidgetAction(QWidget *parent) :
 
 void DolphinNavigatorsWidgetAction::adjustSpacing()
 {
+    m_previousWindowWidth = parentWidget()->window()->width();
     auto viewGeometries = m_viewGeometriesHelper.viewGeometries();
     const int widthOfSplitterPrimary = viewGeometries.globalXOfPrimary + viewGeometries.widthOfPrimary - viewGeometries.globalXOfNavigatorsWidget;
     const QList<int> splitterSizes = {widthOfSplitterPrimary,
@@ -233,7 +233,7 @@ QPushButton *DolphinNavigatorsWidgetAction::newEmptyTrashButton(const DolphinUrl
 {
     auto emptyTrashButton = new QPushButton(QIcon::fromTheme(QStringLiteral("user-trash")),
                                         i18nc("@action:button", "Empty Trash"), parent);
-    emptyTrashButton->setToolTip(QLatin1String("Empties Trash to create free space"));
+    emptyTrashButton->setToolTip(i18n("Empties Trash to create free space"));
 
     emptyTrashButton->setFlat(true);
     connect(emptyTrashButton, &QPushButton::clicked,
@@ -310,7 +310,17 @@ DolphinNavigatorsWidgetAction::ViewGeometriesHelper::ViewGeometriesHelper
 bool DolphinNavigatorsWidgetAction::ViewGeometriesHelper::eventFilter(QObject *watched, QEvent *event)
 {
     if (event->type() == QEvent::Resize) {
-        m_navigatorsWidgetAction->adjustSpacing();
+        if (m_navigatorsWidgetAction->parentWidget()->window()->width() != m_navigatorsWidgetAction->m_previousWindowWidth) {
+            // The window is being resized which means not all widgets have gotten their new sizes yet.
+            // Let's wait a bit so the sizes of the navigatorsWidget and the viewContainers have all
+            // had a chance to be updated.
+            m_navigatorsWidgetAction->m_adjustSpacingTimer->start();
+        } else {
+            m_navigatorsWidgetAction->adjustSpacing();
+            // We could always use the m_adjustSpacingTimer instead of calling adjustSpacing() directly
+            // here but then the navigatorsWidget doesn't fluently align with the viewContainers when
+            // the DolphinTabPage::m_expandViewAnimation is animating.
+        }
         return false;
     }
     return QObject::eventFilter(watched, event);