summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2019-01-24 15:04:47 +0100
committerhjk <hjk@qt.io>2019-02-13 12:39:04 +0000
commite8a511f313422602626edc86d7669603fc52ea51 (patch)
treef33b8996cd1e0d99001c3ce11f09e8c28293cbcd
parent5f5e2543a5f6971fa1d07c9e84eba9742ba329f8 (diff)
downloadqt-creator-e8a511f313422602626edc86d7669603fc52ea51.tar.gz
Debugger: Change workaround for scrambled dock widget layouts
The workaround from 3d92a79a introduces a bug by itself: When a user moves all docks off the bottom area, the workaround will trigger as the condition "nothing below the tool bar" is met. This here changes the condition to toolbar.width() != mainwindow.width(), which will trigger in the known scrambled situations (there was always something to the right of the toolbar), but not in the situation described above. Task-number: QTCREATORBUG-21669 Task-number: QTCREATORBUG-21455 Change-Id: Ic2eabbe2ed07352680add4fc5e3b5f6673600479 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
-rw-r--r--src/plugins/debugger/debuggermainwindow.cpp24
1 files changed, 8 insertions, 16 deletions
diff --git a/src/plugins/debugger/debuggermainwindow.cpp b/src/plugins/debugger/debuggermainwindow.cpp
index 2607c1fbd0..233f9d9a6d 100644
--- a/src/plugins/debugger/debuggermainwindow.cpp
+++ b/src/plugins/debugger/debuggermainwindow.cpp
@@ -372,24 +372,16 @@ void DebuggerMainWindowPrivate::fixupLayoutIfNeeded()
{
// Evil workaround for QTCREATORBUG-21455: In some so far unknown situation
// the saveLayout/restoreLayout process leads to a situation where some docks
- // does not end up below the perspective toolbar even though they were there
+ // do not end up below the perspective toolbar even though they were there
// initially, leading to an awkward dock layout.
- // This here tries to detect the situation (no other dock directly below the
- // toolbar) and "corrects" that by restoring the default layout.
- const QRect toolbarRect = m_toolBarDock->geometry();
- const int targetX = toolbarRect.left();
- const int targetY = toolbarRect.bottom();
-
- const QList<QDockWidget *> docks = q->dockWidgets();
- for (QDockWidget *dock : docks) {
- const QRect dockRect = dock->geometry();
- // 10 for some decoration wiggle room. Found something below? Good.
- if (targetX == dockRect.left() && qAbs(targetY - dockRect.top()) < 10)
- return;
- }
+ // This here tries to detect the situation (sonmething else in the bottom
+ // area is at the right of the toolbar) "corrects" that by restoring the
+ // default layout.
- qDebug() << "Scrambled dock layout found. Resetting it.";
- resetCurrentPerspective();
+ if (m_toolBarDock->width() != q->width()) {
+ qDebug() << "Scrambled dock layout found. Resetting it.";
+ resetCurrentPerspective();
+ }
}
void DebuggerMainWindowPrivate::selectPerspective(Perspective *perspective)