Fixed issue #762 - Context menu entries for DockWidget tab missing for last dock widget
This commit is contained in:
@@ -50,7 +50,6 @@
|
||||
#include "FloatingDockContainer.h"
|
||||
#include "DockOverlay.h"
|
||||
#include "DockManager.h"
|
||||
#include "IconProvider.h"
|
||||
#include "DockFocusController.h"
|
||||
|
||||
|
||||
@@ -540,13 +539,14 @@ QMenu* CDockWidgetTab::buildContextMenu(QMenu *Menu)
|
||||
Menu = new QMenu(this);
|
||||
}
|
||||
|
||||
qDebug() << "CDockWidgetTab::buildContextMenu";
|
||||
const bool isFloatable = d->DockWidget->features().testFlag(CDockWidget::DockWidgetFloatable);
|
||||
const bool isNotOnlyTabInContainer = !d->DockArea->dockContainer()->hasTopLevelDockWidget();
|
||||
const bool isTopLevelArea = d->DockArea->isTopLevelArea();
|
||||
const bool isDetachable = isFloatable && isNotOnlyTabInContainer;
|
||||
const bool isFloating = d->DockWidget->isFloating();
|
||||
const bool isDetachable = isFloatable && !isFloating;
|
||||
QAction* Action;
|
||||
|
||||
if (!isTopLevelArea)
|
||||
if (!(isTopLevelArea && isFloating))
|
||||
{
|
||||
Action = Menu->addAction(tr("Detach"), this, SLOT(detachDockWidget()));
|
||||
Action->setEnabled(isDetachable);
|
||||
@@ -570,7 +570,7 @@ QMenu* CDockWidgetTab::buildContextMenu(QMenu *Menu)
|
||||
Action->setEnabled(isClosable());
|
||||
if (d->DockArea->openDockWidgetsCount() > 1)
|
||||
{
|
||||
Action = Menu->addAction(tr("Close Others"), this, SIGNAL(closeOtherTabsRequested()));
|
||||
Menu->addAction(tr("Close Others"), this, SIGNAL(closeOtherTabsRequested()));
|
||||
}
|
||||
|
||||
return Menu;
|
||||
|
||||
Reference in New Issue
Block a user