diff --git a/src/widgets/styles/images/titlebar-contexthelp-16.png b/src/widgets/styles/images/titlebar-contexthelp-16.png
new file mode 100644
index 00000000000..2cead199102
Binary files /dev/null and b/src/widgets/styles/images/titlebar-contexthelp-16.png differ
diff --git a/src/widgets/styles/images/titlebar-contexthelp-32.png b/src/widgets/styles/images/titlebar-contexthelp-32.png
new file mode 100644
index 00000000000..1cd4843d5e8
Binary files /dev/null and b/src/widgets/styles/images/titlebar-contexthelp-32.png differ
diff --git a/src/widgets/styles/images/titlebar-contexthelp-48.png b/src/widgets/styles/images/titlebar-contexthelp-48.png
new file mode 100644
index 00000000000..9b170687bee
Binary files /dev/null and b/src/widgets/styles/images/titlebar-contexthelp-48.png differ
diff --git a/src/widgets/styles/images/titlebar-max-16.png b/src/widgets/styles/images/titlebar-max-16.png
new file mode 100644
index 00000000000..101a7eac2b9
Binary files /dev/null and b/src/widgets/styles/images/titlebar-max-16.png differ
diff --git a/src/widgets/styles/images/titlebar-max-32.png b/src/widgets/styles/images/titlebar-max-32.png
new file mode 100644
index 00000000000..529c54f61d5
Binary files /dev/null and b/src/widgets/styles/images/titlebar-max-32.png differ
diff --git a/src/widgets/styles/images/titlebar-max-48.png b/src/widgets/styles/images/titlebar-max-48.png
new file mode 100644
index 00000000000..cfa0b67edf6
Binary files /dev/null and b/src/widgets/styles/images/titlebar-max-48.png differ
diff --git a/src/widgets/styles/images/titlebar-min-16.png b/src/widgets/styles/images/titlebar-min-16.png
new file mode 100644
index 00000000000..95e714b5221
Binary files /dev/null and b/src/widgets/styles/images/titlebar-min-16.png differ
diff --git a/src/widgets/styles/images/titlebar-min-32.png b/src/widgets/styles/images/titlebar-min-32.png
new file mode 100644
index 00000000000..0b9afedecf4
Binary files /dev/null and b/src/widgets/styles/images/titlebar-min-32.png differ
diff --git a/src/widgets/styles/images/titlebar-min-48.png b/src/widgets/styles/images/titlebar-min-48.png
new file mode 100644
index 00000000000..b59a336d36c
Binary files /dev/null and b/src/widgets/styles/images/titlebar-min-48.png differ
diff --git a/src/widgets/styles/images/titlebar-shade-16.png b/src/widgets/styles/images/titlebar-shade-16.png
new file mode 100644
index 00000000000..cc870a1e5c0
Binary files /dev/null and b/src/widgets/styles/images/titlebar-shade-16.png differ
diff --git a/src/widgets/styles/images/titlebar-shade-32.png b/src/widgets/styles/images/titlebar-shade-32.png
new file mode 100644
index 00000000000..b785b8e2166
Binary files /dev/null and b/src/widgets/styles/images/titlebar-shade-32.png differ
diff --git a/src/widgets/styles/images/titlebar-shade-48.png b/src/widgets/styles/images/titlebar-shade-48.png
new file mode 100644
index 00000000000..42b75b4a0cc
Binary files /dev/null and b/src/widgets/styles/images/titlebar-shade-48.png differ
diff --git a/src/widgets/styles/images/titlebar-unshade-16.png b/src/widgets/styles/images/titlebar-unshade-16.png
new file mode 100644
index 00000000000..ef19de6c2fb
Binary files /dev/null and b/src/widgets/styles/images/titlebar-unshade-16.png differ
diff --git a/src/widgets/styles/images/titlebar-unshade-32.png b/src/widgets/styles/images/titlebar-unshade-32.png
new file mode 100644
index 00000000000..9f74bb0ac78
Binary files /dev/null and b/src/widgets/styles/images/titlebar-unshade-32.png differ
diff --git a/src/widgets/styles/images/titlebar-unshade-48.png b/src/widgets/styles/images/titlebar-unshade-48.png
new file mode 100644
index 00000000000..bd17c3cf48a
Binary files /dev/null and b/src/widgets/styles/images/titlebar-unshade-48.png differ
diff --git a/src/widgets/styles/images/toolbar-ext-h-16.png b/src/widgets/styles/images/toolbar-ext-h-16.png
new file mode 100644
index 00000000000..c6bd1b17845
Binary files /dev/null and b/src/widgets/styles/images/toolbar-ext-h-16.png differ
diff --git a/src/widgets/styles/images/toolbar-ext-h-32.png b/src/widgets/styles/images/toolbar-ext-h-32.png
new file mode 100644
index 00000000000..99c62698f26
Binary files /dev/null and b/src/widgets/styles/images/toolbar-ext-h-32.png differ
diff --git a/src/widgets/styles/images/toolbar-ext-h-8.png b/src/widgets/styles/images/toolbar-ext-h-8.png
new file mode 100644
index 00000000000..340a374bce8
Binary files /dev/null and b/src/widgets/styles/images/toolbar-ext-h-8.png differ
diff --git a/src/widgets/styles/images/toolbar-ext-h-rtl-16.png b/src/widgets/styles/images/toolbar-ext-h-rtl-16.png
new file mode 100644
index 00000000000..31c72892b44
Binary files /dev/null and b/src/widgets/styles/images/toolbar-ext-h-rtl-16.png differ
diff --git a/src/widgets/styles/images/toolbar-ext-h-rtl-32.png b/src/widgets/styles/images/toolbar-ext-h-rtl-32.png
new file mode 100644
index 00000000000..bfc333daacc
Binary files /dev/null and b/src/widgets/styles/images/toolbar-ext-h-rtl-32.png differ
diff --git a/src/widgets/styles/images/toolbar-ext-h-rtl-8.png b/src/widgets/styles/images/toolbar-ext-h-rtl-8.png
new file mode 100644
index 00000000000..538e4083108
Binary files /dev/null and b/src/widgets/styles/images/toolbar-ext-h-rtl-8.png differ
diff --git a/src/widgets/styles/images/toolbar-ext-v-10.png b/src/widgets/styles/images/toolbar-ext-v-10.png
new file mode 100644
index 00000000000..2a6d0e4c70c
Binary files /dev/null and b/src/widgets/styles/images/toolbar-ext-v-10.png differ
diff --git a/src/widgets/styles/images/toolbar-ext-v-20.png b/src/widgets/styles/images/toolbar-ext-v-20.png
new file mode 100644
index 00000000000..adc27f52b5c
Binary files /dev/null and b/src/widgets/styles/images/toolbar-ext-v-20.png differ
diff --git a/src/widgets/styles/images/toolbar-ext-v-5.png b/src/widgets/styles/images/toolbar-ext-v-5.png
new file mode 100644
index 00000000000..21c670446c1
Binary files /dev/null and b/src/widgets/styles/images/toolbar-ext-v-5.png differ
diff --git a/src/widgets/styles/qcommonstyle.cpp b/src/widgets/styles/qcommonstyle.cpp
index 06590afe722..f78aca58ac9 100644
--- a/src/widgets/styles/qcommonstyle.cpp
+++ b/src/widgets/styles/qcommonstyle.cpp
@@ -5716,14 +5716,14 @@ 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));
- }
+ for (size_t i = 0; i < count; ++i)
+ icon.addFile(prefix + QString::number(sizes[i]) + iconPngSuffix());
}
static const int dockTitleIconSizes[] = {10, 16, 20, 32, 48, 64};
-
+static const int titleBarSizes[] = {16, 32, 48};
+static const int toolBarExtHSizes[] = {8, 16, 32};
+static const int toolBarExtVSizes[] = {5, 10, 20};
#endif // imageformat_png
/*!
@@ -6038,6 +6038,27 @@ QIcon QCommonStyle::standardIcon(StandardPixmap standardIcon, const QStyleOption
switch (standardIcon) {
#ifndef QT_NO_IMAGEFORMAT_PNG
+ case SP_TitleBarMinButton:
+ addIconFiles(iconResourcePrefix() + QStringLiteral("titlebar-min-"),
+ titleBarSizes, sizeof(titleBarSizes)/sizeof(titleBarSizes[0]), icon);
+ break;
+ case SP_TitleBarMaxButton:
+ addIconFiles(iconResourcePrefix() + QStringLiteral("titlebar-max-"),
+ titleBarSizes, sizeof(titleBarSizes)/sizeof(titleBarSizes[0]), icon);
+ break;
+ case SP_TitleBarShadeButton:
+ addIconFiles(iconResourcePrefix() + QStringLiteral("titlebar-shade-"),
+ titleBarSizes, sizeof(titleBarSizes)/sizeof(titleBarSizes[0]), icon);
+
+ break;
+ case SP_TitleBarUnshadeButton:
+ addIconFiles(iconResourcePrefix() + QStringLiteral("titlebar-unshade-"),
+ titleBarSizes, sizeof(titleBarSizes)/sizeof(titleBarSizes[0]), icon);
+ break;
+ case SP_TitleBarContextHelpButton:
+ addIconFiles(iconResourcePrefix() + QStringLiteral("titlebar-contexthelp-"),
+ titleBarSizes, sizeof(titleBarSizes)/sizeof(titleBarSizes[0]), icon);
+ break;
case SP_FileDialogNewFolder:
icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/newdirectory-16.png"), QSize(16, 16));
icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/newdirectory-32.png"), QSize(32, 32));
@@ -6246,6 +6267,17 @@ QIcon QCommonStyle::standardIcon(StandardPixmap standardIcon, const QStyleOption
addIconFiles(iconResourcePrefix() + QStringLiteral("normalizedockup-"),
dockTitleIconSizes, sizeof(dockTitleIconSizes)/sizeof(dockTitleIconSizes[0]), icon);
break;
+ case SP_ToolBarHorizontalExtensionButton: {
+ QString prefix = iconResourcePrefix() + QStringLiteral("toolbar-ext-h-");
+ if (rtl)
+ prefix += QStringLiteral("rtl-");
+ addIconFiles(prefix, toolBarExtHSizes, sizeof(toolBarExtHSizes)/sizeof(toolBarExtHSizes[0]), icon);
+ }
+ break;
+ case SP_ToolBarVerticalExtensionButton:
+ addIconFiles(iconResourcePrefix() + QStringLiteral("toolbar-ext-v-"),
+ toolBarExtVSizes, sizeof(toolBarExtVSizes)/sizeof(toolBarExtVSizes[0]), icon);
+ break;
#endif // QT_NO_IMAGEFORMAT_PNG
default:
icon.addPixmap(proxy()->standardPixmap(standardIcon, option, widget));
diff --git a/src/widgets/styles/qstyle.qrc b/src/widgets/styles/qstyle.qrc
index 93e4bf480e4..d3511ee754f 100644
--- a/src/widgets/styles/qstyle.qrc
+++ b/src/widgets/styles/qstyle.qrc
@@ -140,6 +140,30 @@
images/normalizedockup-32.png
images/normalizedockup-48.png
images/normalizedockup-64.png
+ images/toolbar-ext-h-8.png
+ images/toolbar-ext-h-16.png
+ images/toolbar-ext-h-32.png
+ images/toolbar-ext-h-rtl-8.png
+ images/toolbar-ext-h-rtl-16.png
+ images/toolbar-ext-h-rtl-32.png
+ images/toolbar-ext-v-5.png
+ images/toolbar-ext-v-10.png
+ images/toolbar-ext-v-20.png
+ images/titlebar-contexthelp-16.png
+ images/titlebar-contexthelp-32.png
+ images/titlebar-contexthelp-48.png
+ images/titlebar-max-16.png
+ images/titlebar-max-32.png
+ images/titlebar-max-48.png
+ images/titlebar-min-16.png
+ images/titlebar-min-32.png
+ images/titlebar-min-48.png
+ images/titlebar-shade-16.png
+ images/titlebar-shade-32.png
+ images/titlebar-shade-48.png
+ images/titlebar-unshade-16.png
+ images/titlebar-unshade-32.png
+ images/titlebar-unshade-48.png
images/closedock-macstyle-16.png