Warning, file /graphics/glaxnimate/src/gui/style/dock_widget_style.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002  * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 
0007 #include "dock_widget_style.hpp"
0008 
0009 #include <QtGlobal>
0010 
0011 void glaxnimate::gui::style::DockWidgetStyle::drawControl(
0012     ControlElement element, const QStyleOption* option,
0013     QPainter* painter, const QWidget* widget) const
0014 {
0015     if ( widget && element == QStyle::CE_DockWidgetTitle && !widget->windowIcon().isNull() )
0016     {
0017         QStyleOptionDockWidget option_copy = *qstyleoption_cast<const QStyleOptionDockWidget *>(option);
0018 
0019         int margin = baseStyle()->pixelMetric(QStyle::PM_DockWidgetTitleMargin);
0020         QRect title_rect = subElementRect(SE_DockWidgetTitleBarText, option, widget);
0021         int size = qMin(pixelMetric(QStyle::PM_ToolBarIconSize), title_rect.height());
0022         int padding = (title_rect.height() - size) / 2;
0023         QPoint pos(margin + padding + title_rect.left(), title_rect.top() + padding);
0024 
0025 #ifndef Q_OS_MACOS
0026         option_copy.rect = option->rect.adjusted(size+margin*2, 0, 0, 0);
0027 #endif
0028         QProxyStyle::drawControl(element, &option_copy, painter, widget);
0029 
0030         painter->drawPixmap(pos, widget->windowIcon().pixmap(size, size));
0031 
0032         return;
0033     }
0034     QProxyStyle::drawControl(element, option, painter, widget);
0035 }