QCommonStyle: Add dock title bar icons

Add larger pixmaps for the dock title bar icons; override
them by the XPM in fusion style to maintain the behavior.

Task-number: QTBUG-38776
Change-Id: I7d0e022bbf620d2aad2b6ee011b8bb9a745d7c3b
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
This commit is contained in:
Friedemann Kleint 2018-01-11 12:54:56 +01:00
parent f61304fc77
commit d58162127a
15 changed files with 49 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

View File

@ -5709,6 +5709,22 @@ QPixmap QCommonStyle::standardPixmap(StandardPixmap sp, const QStyleOption *opti
return QPixmap();
}
#if QT_CONFIG(imageformat_png)
static inline QString iconResourcePrefix() { return QStringLiteral(":/qt-project.org/styles/commonstyle/images/"); }
static inline QString iconPngSuffix() { return QStringLiteral(".png"); }
static void addIconFiles(const QString &prefix, const int sizes[], size_t count, QIcon &icon)
{
for (size_t i = 0; i < count; ++i) {
const int size = sizes[i];
icon.addFile(prefix + QString::number(size) + iconPngSuffix(), QSize(size, size));
}
}
static const int dockTitleIconSizes[] = {10, 16, 20, 32, 48, 64};
#endif // imageformat_png
/*!
\internal
*/
@ -6215,12 +6231,20 @@ QIcon QCommonStyle::standardIcon(StandardPixmap standardIcon, const QStyleOption
case SP_MediaVolumeMuted:
icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-volume-muted-16.png"), QSize(16, 16));
break;
case SP_TitleBarCloseButton:
addIconFiles(iconResourcePrefix() + QStringLiteral("closedock-"),
dockTitleIconSizes, sizeof(dockTitleIconSizes)/sizeof(dockTitleIconSizes[0]), icon);
break;
case SP_TitleBarMenuButton:
# ifndef QT_NO_IMAGEFORMAT_XPM
icon.addPixmap(titleBarMenuCachedPixmapFromXPM());
# endif
icon.addFile(QLatin1String(":/qt-project.org/qmessagebox/images/qtlogo-64.png"));
break;
case SP_TitleBarNormalButton:
addIconFiles(iconResourcePrefix() + QStringLiteral("normalizedockup-"),
dockTitleIconSizes, sizeof(dockTitleIconSizes)/sizeof(dockTitleIconSizes[0]), icon);
break;
#endif // QT_NO_IMAGEFORMAT_PNG
default:
icon.addPixmap(proxy()->standardPixmap(standardIcon, option, widget));

View File

@ -3769,6 +3769,19 @@ QRect QFusionStyle::subElementRect(SubElement sr, const QStyleOption *opt, const
QIcon QFusionStyle::standardIcon(StandardPixmap standardIcon, const QStyleOption *option,
const QWidget *widget) const
{
#if QT_CONFIG(imageformat_xpm)
switch (standardIcon) {
case SP_TitleBarNormalButton:
return QIcon(QPixmap(dock_widget_restore_xpm));
case SP_TitleBarMinButton:
return QIcon(QPixmap(workspace_minimize));
case SP_TitleBarCloseButton:
case SP_DockWidgetCloseButton:
return QIcon(QPixmap(dock_widget_close_xpm));
default:
break;
}
#endif // imageformat_xpm
return QCommonStyle::standardIcon(standardIcon, option, widget);
}

View File

@ -128,6 +128,18 @@
<file>images/media-volume-16.png</file>
<file>images/media-volume-muted-16.png</file>
<file>images/fusion_groupbox.png</file>
<file>images/closedock-10.png</file>
<file>images/closedock-16.png</file>
<file>images/closedock-20.png</file>
<file>images/closedock-32.png</file>
<file>images/closedock-48.png</file>
<file>images/closedock-64.png</file>
<file>images/normalizedockup-10.png</file>
<file>images/normalizedockup-16.png</file>
<file>images/normalizedockup-20.png</file>
<file>images/normalizedockup-32.png</file>
<file>images/normalizedockup-48.png</file>
<file>images/normalizedockup-64.png</file>
</qresource>
<qresource prefix="/qt-project.org/styles/macstyle">
<file alias="images/closedock-16.png">images/closedock-macstyle-16.png</file>