diff --git a/src/libs/utils/fancymainwindow.cpp b/src/libs/utils/fancymainwindow.cpp index dd17ae5f798a0c58b74d6ae057d3fdd1dc47b66a..5c1cdeb679328a62ea56d473990325f0b74df044 100644 --- a/src/libs/utils/fancymainwindow.cpp +++ b/src/libs/utils/fancymainwindow.cpp @@ -119,14 +119,16 @@ void FancyMainWindow::updateDockWidget(QDockWidget *dockWidget) const QDockWidget::DockWidgetFeatures features = (d->m_locked) ? QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetFloatable : QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetFloatable; - QWidget *titleBarWidget = dockWidget->titleBarWidget(); - if (d->m_locked && !titleBarWidget && !dockWidget->isFloating()) - titleBarWidget = new QWidget(dockWidget); - else if ((!d->m_locked || dockWidget->isFloating()) && titleBarWidget) { - delete titleBarWidget; - titleBarWidget = 0; + if (dockWidget->property("managed_dockwidget").isNull()) { // for the debugger tool bar + QWidget *titleBarWidget = dockWidget->titleBarWidget(); + if (d->m_locked && !titleBarWidget && !dockWidget->isFloating()) + titleBarWidget = new QWidget(dockWidget); + else if ((!d->m_locked || dockWidget->isFloating()) && titleBarWidget) { + delete titleBarWidget; + titleBarWidget = 0; + } + dockWidget->setTitleBarWidget(titleBarWidget); } - dockWidget->setTitleBarWidget(titleBarWidget); dockWidget->setFeatures(features); } @@ -257,7 +259,15 @@ bool FancyMainWindow::isLocked() const QMenu *FancyMainWindow::createPopupMenu() { - QMenu *menu = QMainWindow::createPopupMenu(); + QMenu *menu = new QMenu(this);; + QList<QDockWidget *> dockwidgets = qFindChildren<QDockWidget *>(this); + for (int i = 0; i < dockwidgets.size(); ++i) { + QDockWidget *dockWidget = dockwidgets.at(i); + if (dockWidget->property("managed_dockwidget").isNull() + && dockWidget->parentWidget() == this) { + menu->addAction(dockwidgets.at(i)->toggleViewAction()); + } + } menu->addAction(&d->m_menuSeparator1); menu->addAction(&d->m_toggleLockedAction); menu->addAction(&d->m_menuSeparator2); diff --git a/src/plugins/debugger/debuggermainwindow.cpp b/src/plugins/debugger/debuggermainwindow.cpp index 4749d08d6e0dba2d02896eae11f31ad59a7a30bf..c37a756c9914f8de96a22572a8c7a80df67f4162 100644 --- a/src/plugins/debugger/debuggermainwindow.cpp +++ b/src/plugins/debugger/debuggermainwindow.cpp @@ -476,6 +476,7 @@ QWidget *DebuggerMainWindow::createContents(IMode *mode) dock->setFeatures(QDockWidget::NoDockWidgetFeatures); dock->setAllowedAreas(Qt::BottomDockWidgetArea); dock->setTitleBarWidget(new QWidget(dock)); + dock->setProperty("managed_dockwidget", QLatin1String("true")); addDockWidget(Qt::BottomDockWidgetArea, dock); setToolBarDockWidget(dock);