Skip to content

Commit 0f8096e

Browse files
Added minimize and close action to Auto Hide context menu
1 parent 9ec97a8 commit 0f8096e

File tree

3 files changed

+34
-2
lines changed

3 files changed

+34
-2
lines changed

demo/MainWindow.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,7 @@ void MainWindowPrivate::createContent()
527527

528528
// Tests CustomCloseHandling without DeleteOnClose
529529
LabelDockWidget->setFeature(ads::CDockWidget::CustomCloseHandling, true);
530+
LabelDockWidget->setWindowTitle(LabelDockWidget->windowTitle() + " [Custom Close]");
530531
QObject::connect(LabelDockWidget, &ads::CDockWidget::closeRequested, [LabelDockWidget, this]()
531532
{
532533
int Result = QMessageBox::question(_this, "Custom Close Request",

src/DockAreaTitleBar.cpp

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,24 @@ void CDockAreaTitleBar::onCloseButtonClicked()
431431
}
432432

433433

434+
//============================================================================
435+
void CDockAreaTitleBar::onAutoHideCloseActionTriggered()
436+
{
437+
d->DockArea->closeArea();
438+
}
439+
440+
441+
//============================================================================
442+
void CDockAreaTitleBar::onAutoHideMinimizeActionTriggered()
443+
{
444+
auto AutoHideContainer = d->DockArea->autoHideDockContainer();
445+
if (AutoHideContainer)
446+
{
447+
AutoHideContainer->collapseView(true);
448+
}
449+
}
450+
451+
434452
//============================================================================
435453
void CDockAreaTitleBar::onUndockButtonClicked()
436454
{
@@ -735,7 +753,17 @@ void CDockAreaTitleBar::contextMenuEvent(QContextMenuEvent* ev)
735753
}
736754
Menu.addSeparator();
737755
}
738-
Action = Menu.addAction(isAutoHide ? tr("Close") : tr("Close Group"), this, SLOT(onCloseButtonClicked()));
756+
757+
if (isAutoHide)
758+
{
759+
Action = Menu.addAction(tr("Minimize"), this, SLOT(onAutoHideMinimizeActionTriggered()));
760+
Action = Menu.addAction(tr("Close"), this, SLOT(onAutoHideCloseActionTriggered()));
761+
}
762+
else
763+
{
764+
Action = Menu.addAction(isAutoHide ? tr("Close") : tr("Close Group"), this, SLOT(onCloseButtonClicked()));
765+
}
766+
739767
Action->setEnabled(d->DockArea->features().testFlag(CDockWidget::DockWidgetClosable));
740768
if (!isAutoHide && !isTopLevelArea)
741769
{
@@ -782,7 +810,8 @@ QString CDockAreaTitleBar::titleBarButtonToolTip(TitleBarButton Button) const
782810
case TitleBarButtonClose:
783811
if (d->DockArea->isAutoHide())
784812
{
785-
return tr("Close");
813+
bool Minimize = CDockManager::testAutoHideConfigFlag(CDockManager::AutoHideCloseButtonCollapsesDock);
814+
return Minimize ? tr("Minimize") : tr("Close");
786815
}
787816

788817
if (CDockManager::testConfigFlag(CDockManager::DockAreaCloseButtonClosesTab))

src/DockAreaTitleBar.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ class ADS_EXPORT CDockAreaTitleBar : public QFrame
9797
private Q_SLOTS:
9898
void onTabsMenuAboutToShow();
9999
void onCloseButtonClicked();
100+
void onAutoHideCloseActionTriggered();
101+
void onAutoHideMinimizeActionTriggered();
100102
void onUndockButtonClicked();
101103
void onTabsMenuActionTriggered(QAction* Action);
102104
void onCurrentTabChanged(int Index);

0 commit comments

Comments
 (0)