Added support for setting the DockWidget icon - this icon is shown in the title bar or when using the ToggleViewAction

This commit is contained in:
Uwe Kindler
2018-01-02 08:01:23 +01:00
parent dae852d9f9
commit e878bb47ed
8 changed files with 116 additions and 7 deletions

View File

@@ -330,9 +330,31 @@ QAction* CDockWidget::toggleViewAction() const
}
//============================================================================
void CDockWidget::setToggleViewActionMode(eToggleViewActionMode Mode)
{
if (ActionModeToggle == Mode)
{
d->ToggleViewAction->setCheckable(true);
d->ToggleViewAction->setIcon(QIcon());
}
else
{
d->ToggleViewAction->setCheckable(false);
d->ToggleViewAction->setIcon(d->TitleWidget->icon());
}
}
//============================================================================
void CDockWidget::toggleView(bool Open)
{
QAction* Sender = qobject_cast<QAction*>(sender());
if (Sender == d->ToggleViewAction && !d->ToggleViewAction->isCheckable())
{
Open = true;
}
if (Open)
{
d->showDockWidget();
@@ -391,6 +413,17 @@ bool CDockWidget::event(QEvent *e)
}
//============================================================================
void CDockWidget::setIcon(const QIcon& Icon)
{
d->TitleWidget->setIcon(Icon);
if (!d->ToggleViewAction->isCheckable())
{
d->ToggleViewAction->setIcon(Icon);
}
}
} // namespace ads