From 2cad90a55999119b5023f670f2970719c996ff24 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 19 Feb 2019 14:56:41 +0100 Subject: [PATCH] Debugger: Fix toolbar-oversizing on perspective switch The true reason for the overshooting is still unknown. This here works around the issue by wrapping the toolbar into an additional QScrollArea. Task-number: QTCREATORBUG-21903 Task-number: QTCREATORBUG-21889 Change-Id: If6e89d138cd3e617e4eaa44227b078f31df1a627 Reviewed-by: Eike Ziller --- src/plugins/debugger/debuggermainwindow.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/plugins/debugger/debuggermainwindow.cpp b/src/plugins/debugger/debuggermainwindow.cpp index a5da08055bb..c177b3ffcaa 100644 --- a/src/plugins/debugger/debuggermainwindow.cpp +++ b/src/plugins/debugger/debuggermainwindow.cpp @@ -45,6 +45,7 @@ #include #include #include +#include #include #include @@ -52,6 +53,7 @@ #include #include #include +#include #include #include #include @@ -189,14 +191,22 @@ DebuggerMainWindowPrivate::DebuggerMainWindowPrivate(DebuggerMainWindow *parent) hbox->addWidget(viewButton); hbox->addWidget(closeButton); + auto scrolledToolbar = new QScrollArea; + scrolledToolbar->setWidget(toolbar); + scrolledToolbar->setFrameStyle(QFrame::NoFrame); + scrolledToolbar->setWidgetResizable(true); + scrolledToolbar->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + scrolledToolbar->setFixedHeight(StyleHelper::navigationWidgetHeight()); + scrolledToolbar->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + auto dock = new QDockWidget(DebuggerMainWindow::tr("Toolbar"), q); dock->setObjectName("Toolbar"); dock->setFeatures(QDockWidget::NoDockWidgetFeatures); dock->setAllowedAreas(Qt::BottomDockWidgetArea); dock->setTitleBarWidget(new QWidget(dock)); // hide title bar dock->setProperty("managed_dockwidget", "true"); - toolbar->setParent(dock); - dock->setWidget(toolbar); + dock->setWidget(scrolledToolbar); + m_toolBarDock = dock; q->addDockWidget(Qt::BottomDockWidgetArea, m_toolBarDock);