From d58162127a1f0c4c7de919643cd5cccc8a84b259 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 11 Jan 2018 12:54:56 +0100 Subject: 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 --- src/widgets/styles/images/closedock-10.png | Bin 0 -> 284 bytes src/widgets/styles/images/closedock-16.png | Bin 0 -> 299 bytes src/widgets/styles/images/closedock-20.png | Bin 0 -> 374 bytes src/widgets/styles/images/closedock-32.png | Bin 0 -> 368 bytes src/widgets/styles/images/closedock-48.png | Bin 0 -> 468 bytes src/widgets/styles/images/closedock-64.png | Bin 0 -> 541 bytes src/widgets/styles/images/normalizedockup-10.png | Bin 0 -> 138 bytes src/widgets/styles/images/normalizedockup-16.png | Bin 0 -> 256 bytes src/widgets/styles/images/normalizedockup-20.png | Bin 0 -> 143 bytes src/widgets/styles/images/normalizedockup-32.png | Bin 0 -> 273 bytes src/widgets/styles/images/normalizedockup-48.png | Bin 0 -> 279 bytes src/widgets/styles/images/normalizedockup-64.png | Bin 0 -> 291 bytes src/widgets/styles/qcommonstyle.cpp | 24 +++++++++++++++++++++++ src/widgets/styles/qfusionstyle.cpp | 13 ++++++++++++ src/widgets/styles/qstyle.qrc | 12 ++++++++++++ 15 files changed, 49 insertions(+) create mode 100644 src/widgets/styles/images/closedock-10.png create mode 100644 src/widgets/styles/images/closedock-16.png create mode 100644 src/widgets/styles/images/closedock-20.png create mode 100644 src/widgets/styles/images/closedock-32.png create mode 100644 src/widgets/styles/images/closedock-48.png create mode 100644 src/widgets/styles/images/closedock-64.png create mode 100644 src/widgets/styles/images/normalizedockup-10.png create mode 100644 src/widgets/styles/images/normalizedockup-16.png create mode 100644 src/widgets/styles/images/normalizedockup-20.png create mode 100644 src/widgets/styles/images/normalizedockup-32.png create mode 100644 src/widgets/styles/images/normalizedockup-48.png create mode 100644 src/widgets/styles/images/normalizedockup-64.png (limited to 'src') diff --git a/src/widgets/styles/images/closedock-10.png b/src/widgets/styles/images/closedock-10.png new file mode 100644 index 0000000000..ee2af34550 Binary files /dev/null and b/src/widgets/styles/images/closedock-10.png differ diff --git a/src/widgets/styles/images/closedock-16.png b/src/widgets/styles/images/closedock-16.png new file mode 100644 index 0000000000..570012fc9a Binary files /dev/null and b/src/widgets/styles/images/closedock-16.png differ diff --git a/src/widgets/styles/images/closedock-20.png b/src/widgets/styles/images/closedock-20.png new file mode 100644 index 0000000000..b5ea92d1de Binary files /dev/null and b/src/widgets/styles/images/closedock-20.png differ diff --git a/src/widgets/styles/images/closedock-32.png b/src/widgets/styles/images/closedock-32.png new file mode 100644 index 0000000000..95a1ad014d Binary files /dev/null and b/src/widgets/styles/images/closedock-32.png differ diff --git a/src/widgets/styles/images/closedock-48.png b/src/widgets/styles/images/closedock-48.png new file mode 100644 index 0000000000..3ca36d1394 Binary files /dev/null and b/src/widgets/styles/images/closedock-48.png differ diff --git a/src/widgets/styles/images/closedock-64.png b/src/widgets/styles/images/closedock-64.png new file mode 100644 index 0000000000..cbec2052ad Binary files /dev/null and b/src/widgets/styles/images/closedock-64.png differ diff --git a/src/widgets/styles/images/normalizedockup-10.png b/src/widgets/styles/images/normalizedockup-10.png new file mode 100644 index 0000000000..f380c65035 Binary files /dev/null and b/src/widgets/styles/images/normalizedockup-10.png differ diff --git a/src/widgets/styles/images/normalizedockup-16.png b/src/widgets/styles/images/normalizedockup-16.png new file mode 100644 index 0000000000..1b795a9e84 Binary files /dev/null and b/src/widgets/styles/images/normalizedockup-16.png differ diff --git a/src/widgets/styles/images/normalizedockup-20.png b/src/widgets/styles/images/normalizedockup-20.png new file mode 100644 index 0000000000..857338427f Binary files /dev/null and b/src/widgets/styles/images/normalizedockup-20.png differ diff --git a/src/widgets/styles/images/normalizedockup-32.png b/src/widgets/styles/images/normalizedockup-32.png new file mode 100644 index 0000000000..d8993a1067 Binary files /dev/null and b/src/widgets/styles/images/normalizedockup-32.png differ diff --git a/src/widgets/styles/images/normalizedockup-48.png b/src/widgets/styles/images/normalizedockup-48.png new file mode 100644 index 0000000000..be48c9524c Binary files /dev/null and b/src/widgets/styles/images/normalizedockup-48.png differ diff --git a/src/widgets/styles/images/normalizedockup-64.png b/src/widgets/styles/images/normalizedockup-64.png new file mode 100644 index 0000000000..7b540f04f8 Binary files /dev/null and b/src/widgets/styles/images/normalizedockup-64.png differ diff --git a/src/widgets/styles/qcommonstyle.cpp b/src/widgets/styles/qcommonstyle.cpp index 4a83cdd4a6..1190099c16 100644 --- a/src/widgets/styles/qcommonstyle.cpp +++ b/src/widgets/styles/qcommonstyle.cpp @@ -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)); diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp index 80196a39a2..a2b94d59d4 100644 --- a/src/widgets/styles/qfusionstyle.cpp +++ b/src/widgets/styles/qfusionstyle.cpp @@ -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); } diff --git a/src/widgets/styles/qstyle.qrc b/src/widgets/styles/qstyle.qrc index 9bcd3904a1..2dc3207e6d 100644 --- a/src/widgets/styles/qstyle.qrc +++ b/src/widgets/styles/qstyle.qrc @@ -128,6 +128,18 @@ images/media-volume-16.png images/media-volume-muted-16.png images/fusion_groupbox.png + images/closedock-10.png + images/closedock-16.png + images/closedock-20.png + images/closedock-32.png + images/closedock-48.png + images/closedock-64.png + images/normalizedockup-10.png + images/normalizedockup-16.png + images/normalizedockup-20.png + images/normalizedockup-32.png + images/normalizedockup-48.png + images/normalizedockup-64.png images/closedock-macstyle-16.png -- cgit v1.2.3