summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@woboq.com>2012-05-14 18:02:16 +0200
committerQt by Nokia <qt-info@nokia.com>2012-05-18 21:42:38 +0200
commit6c06e14a49773ce5572935864ed6b9be219c6103 (patch)
tree14bb88db68657527cabe6590b6cf5044aed65307
parent83645377e98fb1312b6f80a1c996a013b62f0b46 (diff)
QIcon: move back to QtGui
- Move the files and tests git mv src/widgets/kernel/qicon* qrc/gui/image/ git mv tests/auto/widgets/kernel/qicon/ tests/auto/gui/image/ - update the include of QIcon git grep -O"sed -i s,QtWidgets/qicon,QtGui/qicon," "QtWidgets/qicon" git grep -O"sed -i s,QtWidgets/QIcon,QtGui/QIcon," "QtWidgets/QIcon" - Adapt QIcon \ingroup documentation sed -i s/QtWidgets/QtGui/ src/gui/images/qicon* - Adapt export macro sed -i s/Q_WIDGETS_EXPORT/Q_GUI_EXPORT/g src/gui/image/qicon* - Update .pri and .pro files - Remove the use of QStyle::alignedRect by copying its content (and adapt slightly - Use QGuiApplication::palette() instead of QApplication::palette() - Add a hook in QGuiApplicationPrivate to call the QStyle::generatedIconPixmap() from QtWidgets Another commit follows to adjust QMetaType::Icon and move the QVariant and QMetaType icon handler back in QtGui Change-Id: I1b63759f892ebc02dfc30f41bb6e76e0b7451182 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
-rw-r--r--src/gui/image/image.pri12
-rw-r--r--src/gui/image/qicon.cpp (renamed from src/widgets/kernel/qicon.cpp)41
-rw-r--r--src/gui/image/qicon.h (renamed from src/widgets/kernel/qicon.h)12
-rw-r--r--src/gui/image/qicon_p.h (renamed from src/widgets/kernel/qicon_p.h)4
-rw-r--r--src/gui/image/qiconengine.cpp (renamed from src/widgets/kernel/qiconengine.cpp)4
-rw-r--r--src/gui/image/qiconengine.h (renamed from src/widgets/kernel/qiconengine.h)4
-rw-r--r--src/gui/image/qiconengineplugin.cpp (renamed from src/widgets/kernel/qiconengineplugin.cpp)2
-rw-r--r--src/gui/image/qiconengineplugin.h (renamed from src/widgets/kernel/qiconengineplugin.h)4
-rw-r--r--src/gui/image/qiconloader.cpp (renamed from src/widgets/kernel/qiconloader.cpp)16
-rw-r--r--src/gui/image/qiconloader_p.h (renamed from src/widgets/kernel/qiconloader_p.h)6
-rw-r--r--src/gui/kernel/qguiapplication_p.h4
-rw-r--r--src/testlib/qtest_gui.h2
-rw-r--r--src/widgets/dialogs/qfilesystemmodel.h2
-rw-r--r--src/widgets/dialogs/qmessagebox.cpp2
-rw-r--r--src/widgets/itemviews/qfileiconprovider.h2
-rw-r--r--src/widgets/itemviews/qstandarditemmodel.h2
-rw-r--r--src/widgets/kernel/kernel.pri9
-rw-r--r--src/widgets/kernel/qaction.h2
-rw-r--r--src/widgets/kernel/qapplication.cpp8
-rw-r--r--src/widgets/kernel/qapplication_p.h1
-rw-r--r--src/widgets/styles/qstyle.h2
-rw-r--r--src/widgets/styles/qstyleoption.h2
-rw-r--r--src/widgets/util/qsystemtrayicon.h2
-rw-r--r--src/widgets/util/qundoview.cpp2
-rw-r--r--src/widgets/widgets/qabstractbutton.h2
-rw-r--r--src/widgets/widgets/qmenu.h2
-rw-r--r--src/widgets/widgets/qtabwidget.h2
-rw-r--r--src/widgets/widgets/qtoolbox.h2
-rw-r--r--tests/auto/gui/image/image.pro1
-rw-r--r--tests/auto/gui/image/qicon/.gitignore (renamed from tests/auto/widgets/kernel/qicon/.gitignore)0
-rw-r--r--tests/auto/gui/image/qicon/icons/testtheme/16x16/actions/appointment-new.png (renamed from tests/auto/widgets/kernel/qicon/icons/testtheme/16x16/actions/appointment-new.png)bin897 -> 897 bytes
-rw-r--r--tests/auto/gui/image/qicon/icons/testtheme/22x22/actions/appointment-new.png (renamed from tests/auto/widgets/kernel/qicon/icons/testtheme/22x22/actions/appointment-new.png)bin1411 -> 1411 bytes
-rw-r--r--tests/auto/gui/image/qicon/icons/testtheme/32x32/actions/appointment-new.png (renamed from tests/auto/widgets/kernel/qicon/icons/testtheme/32x32/actions/appointment-new.png)bin2399 -> 2399 bytes
-rw-r--r--tests/auto/gui/image/qicon/icons/testtheme/index.theme (renamed from tests/auto/widgets/kernel/qicon/icons/testtheme/index.theme)0
-rw-r--r--tests/auto/gui/image/qicon/icons/testtheme/scalable/actions/svg-only.svg (renamed from tests/auto/widgets/kernel/qicon/icons/testtheme/scalable/actions/svg-only.svg)0
-rw-r--r--tests/auto/gui/image/qicon/icons/themeparent/16x16/actions/address-book-new.png (renamed from tests/auto/widgets/kernel/qicon/icons/themeparent/16x16/actions/address-book-new.png)bin796 -> 796 bytes
-rw-r--r--tests/auto/gui/image/qicon/icons/themeparent/16x16/actions/appointment-new.png (renamed from tests/auto/widgets/kernel/qicon/icons/themeparent/16x16/actions/appointment-new.png)bin897 -> 897 bytes
-rw-r--r--tests/auto/gui/image/qicon/icons/themeparent/22x22/actions/address-book-new.png (renamed from tests/auto/widgets/kernel/qicon/icons/themeparent/22x22/actions/address-book-new.png)bin924 -> 924 bytes
-rw-r--r--tests/auto/gui/image/qicon/icons/themeparent/22x22/actions/appointment-new.png (renamed from tests/auto/widgets/kernel/qicon/icons/themeparent/22x22/actions/appointment-new.png)bin1411 -> 1411 bytes
-rw-r--r--tests/auto/gui/image/qicon/icons/themeparent/32x32/actions/address-book-new.png (renamed from tests/auto/widgets/kernel/qicon/icons/themeparent/32x32/actions/address-book-new.png)bin1897 -> 1897 bytes
-rw-r--r--tests/auto/gui/image/qicon/icons/themeparent/32x32/actions/appointment-new.png (renamed from tests/auto/widgets/kernel/qicon/icons/themeparent/32x32/actions/appointment-new.png)bin2399 -> 2399 bytes
-rw-r--r--tests/auto/gui/image/qicon/icons/themeparent/index.theme (renamed from tests/auto/widgets/kernel/qicon/icons/themeparent/index.theme)0
-rw-r--r--tests/auto/gui/image/qicon/icons/themeparent/scalable/actions/address-book-new.svg (renamed from tests/auto/widgets/kernel/qicon/icons/themeparent/scalable/actions/address-book-new.svg)0
-rw-r--r--tests/auto/gui/image/qicon/icons/themeparent/scalable/actions/appointment-new.svg (renamed from tests/auto/widgets/kernel/qicon/icons/themeparent/scalable/actions/appointment-new.svg)0
-rw-r--r--tests/auto/gui/image/qicon/image.png (renamed from tests/auto/widgets/kernel/qicon/image.png)bin14743 -> 14743 bytes
-rw-r--r--tests/auto/gui/image/qicon/qicon.pro (renamed from tests/auto/widgets/kernel/qicon/qicon.pro)0
-rw-r--r--tests/auto/gui/image/qicon/rect.png (renamed from tests/auto/widgets/kernel/qicon/rect.png)bin175 -> 175 bytes
-rw-r--r--tests/auto/gui/image/qicon/tst_qicon.cpp (renamed from tests/auto/widgets/kernel/qicon/tst_qicon.cpp)0
-rw-r--r--tests/auto/gui/image/qicon/tst_qicon.qrc (renamed from tests/auto/widgets/kernel/qicon/tst_qicon.qrc)0
-rw-r--r--tests/auto/widgets/kernel/kernel.pro1
50 files changed, 92 insertions, 65 deletions
diff --git a/src/gui/image/image.pri b/src/gui/image/image.pri
index 737b7fcbd4..6b306ddaad 100644
--- a/src/gui/image/image.pri
+++ b/src/gui/image/image.pri
@@ -23,6 +23,11 @@ HEADERS += \
image/qpixmapcache_p.h \
image/qplatformpixmap.h \
image/qimagepixmapcleanuphooks_p.h \
+ image/qicon.h \
+ image/qicon_p.h \
+ image/qiconloader_p.h \
+ image/qiconengine.h \
+ image/qiconengineplugin.h \
SOURCES += \
image/qbitmap.cpp \
@@ -40,7 +45,12 @@ SOURCES += \
image/qpixmap_raster.cpp \
image/qpixmap_blitter.cpp \
image/qnativeimage.cpp \
- image/qimagepixmapcleanuphooks.cpp
+ image/qimagepixmapcleanuphooks.cpp \
+ image/qicon.cpp \
+ image/qiconloader.cpp \
+ image/qiconengine.cpp \
+ image/qiconengineplugin.cpp \
+
win32: SOURCES += image/qpixmap_win.cpp
diff --git a/src/widgets/kernel/qicon.cpp b/src/gui/image/qicon.cpp
index 448b6a8cfd..c2139c3336 100644
--- a/src/widgets/kernel/qicon.cpp
+++ b/src/gui/image/qicon.cpp
@@ -45,15 +45,13 @@
#include "qiconengineplugin.h"
#include "private/qfactoryloader_p.h"
#include "private/qiconloader_p.h"
-#include "qstyleoption.h"
#include "qpainter.h"
#include "qfileinfo.h"
-#include "qstyle.h"
#include "qpixmapcache.h"
#include "qvariant.h"
#include "qcache.h"
#include "qdebug.h"
-#include "qapplication.h"
+#include "qpalette.h"
#ifdef Q_WS_MAC
#include <private/qt_mac_p.h>
@@ -61,6 +59,7 @@
#endif
#include "private/qhexstring_p.h"
+#include "private/qguiapplication_p.h"
#ifndef QT_NO_ICON
QT_BEGIN_NAMESPACE
@@ -265,11 +264,10 @@ QPixmap QPixmapIconEngine::pixmap(const QSize &size, QIcon::Mode mode, QIcon::St
if (!actualSize.isNull() && (actualSize.width() > size.width() || actualSize.height() > size.height()))
actualSize.scale(size, Qt::KeepAspectRatio);
- // #### Qt5 no idea what this really does, but we need to remove the QApp and style references
QString key = QLatin1String("qt_")
% HexString<quint64>(pm.cacheKey())
% HexString<uint>(pe->mode)
- % HexString<quint64>(QApplication::palette().cacheKey())
+ % HexString<quint64>(QGuiApplication::palette().cacheKey())
% HexString<uint>(actualSize.width())
% HexString<uint>(actualSize.height());
@@ -277,9 +275,9 @@ QPixmap QPixmapIconEngine::pixmap(const QSize &size, QIcon::Mode mode, QIcon::St
if (QPixmapCache::find(key % HexString<uint>(mode), pm))
return pm; // horray
if (QPixmapCache::find(key % HexString<uint>(QIcon::Normal), pm)) {
- QStyleOption opt(0);
- opt.palette = QApplication::palette();
- QPixmap active = QApplication::style()->generatedIconPixmap(QIcon::Active, pm, &opt);
+ QPixmap active = pm;
+ if (QGuiApplication *guiApp = qobject_cast<QGuiApplication *>(qApp))
+ active = static_cast<QGuiApplicationPrivate*>(QObjectPrivate::get(guiApp))->applyQIconStyleHelper(QIcon::Active, pm);
if (pm.cacheKey() == active.cacheKey())
return pm;
}
@@ -289,9 +287,9 @@ QPixmap QPixmapIconEngine::pixmap(const QSize &size, QIcon::Mode mode, QIcon::St
if (pm.size() != actualSize)
pm = pm.scaled(actualSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
if (pe->mode != mode && mode != QIcon::Normal) {
- QStyleOption opt(0);
- opt.palette = QApplication::palette();
- QPixmap generated = QApplication::style()->generatedIconPixmap(mode, pm, &opt);
+ QPixmap generated = pm;
+ if (QGuiApplication *guiApp = qobject_cast<QGuiApplication *>(qApp))
+ generated = static_cast<QGuiApplicationPrivate*>(QObjectPrivate::get(guiApp))->applyQIconStyleHelper(mode, pm);
if (!generated.isNull())
pm = generated;
}
@@ -457,7 +455,7 @@ Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader,
\ingroup painting
\ingroup shared
- \inmodule QtWidgets
+ \inmodule QtGui
A QIcon can generate smaller, larger, active, and disabled pixmaps
from the set of pixmaps it is given. Such pixmaps are used by Qt
@@ -710,7 +708,24 @@ void QIcon::paint(QPainter *painter, const QRect &rect, Qt::Alignment alignment,
{
if (!d || !painter)
return;
- QRect alignedRect = QStyle::alignedRect(painter->layoutDirection(), alignment, d->engine->actualSize(rect.size(), mode, state), rect);
+
+ // Copy of QStyle::alignedRect
+ const QSize size = d->engine->actualSize(rect.size(), mode, state);
+ alignment = QGuiApplicationPrivate::visualAlignment(painter->layoutDirection(), alignment);
+ int x = rect.x();
+ int y = rect.y();
+ int w = size.width();
+ int h = size.height();
+ if ((alignment & Qt::AlignVCenter) == Qt::AlignVCenter)
+ y += rect.size().height()/2 - h/2;
+ else if ((alignment & Qt::AlignBottom) == Qt::AlignBottom)
+ y += rect.size().height() - h;
+ if ((alignment & Qt::AlignRight) == Qt::AlignRight)
+ x += rect.size().width() - w;
+ else if ((alignment & Qt::AlignHCenter) == Qt::AlignHCenter)
+ x += rect.size().width()/2 - w/2;
+ QRect alignedRect(x, y, w, h);
+
d->engine->paint(painter, alignedRect, mode, state);
}
diff --git a/src/widgets/kernel/qicon.h b/src/gui/image/qicon.h
index c6e07ba3e2..264b672c8c 100644
--- a/src/widgets/kernel/qicon.h
+++ b/src/gui/image/qicon.h
@@ -55,7 +55,7 @@ QT_BEGIN_NAMESPACE
class QIconPrivate;
class QIconEngine;
-class Q_WIDGETS_EXPORT QIcon
+class Q_GUI_EXPORT QIcon
{
public:
enum Mode { Normal, Disabled, Active, Selected };
@@ -118,8 +118,8 @@ public:
private:
QIconPrivate *d;
#if !defined(QT_NO_DATASTREAM)
- friend Q_WIDGETS_EXPORT QDataStream &operator<<(QDataStream &, const QIcon &);
- friend Q_WIDGETS_EXPORT QDataStream &operator>>(QDataStream &, QIcon &);
+ friend Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QIcon &);
+ friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QIcon &);
#endif
public:
@@ -131,12 +131,12 @@ Q_DECLARE_SHARED(QIcon)
Q_DECLARE_TYPEINFO(QIcon, Q_MOVABLE_TYPE);
#if !defined(QT_NO_DATASTREAM)
-Q_WIDGETS_EXPORT QDataStream &operator<<(QDataStream &, const QIcon &);
-Q_WIDGETS_EXPORT QDataStream &operator>>(QDataStream &, QIcon &);
+Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QIcon &);
+Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QIcon &);
#endif
#ifndef QT_NO_DEBUG_STREAM
-Q_WIDGETS_EXPORT QDebug operator<<(QDebug dbg, const QIcon &);
+Q_GUI_EXPORT QDebug operator<<(QDebug dbg, const QIcon &);
#endif
QT_END_NAMESPACE
diff --git a/src/widgets/kernel/qicon_p.h b/src/gui/image/qicon_p.h
index 37c4b7cb1f..b8b1f001fe 100644
--- a/src/widgets/kernel/qicon_p.h
+++ b/src/gui/image/qicon_p.h
@@ -57,8 +57,8 @@
#include <QtCore/qsize.h>
#include <QtCore/qlist.h>
#include <QtGui/qpixmap.h>
-#include <QtWidgets/qicon.h>
-#include <QtWidgets/qiconengine.h>
+#include <QtGui/qicon.h>
+#include <QtGui/qiconengine.h>
#ifndef QT_NO_ICON
QT_BEGIN_NAMESPACE
diff --git a/src/widgets/kernel/qiconengine.cpp b/src/gui/image/qiconengine.cpp
index 0a2d92ed69..2b7fdb9bdc 100644
--- a/src/widgets/kernel/qiconengine.cpp
+++ b/src/gui/image/qiconengine.cpp
@@ -50,7 +50,7 @@ QT_BEGIN_NAMESPACE
\brief The QIconEngine class provides an abstract base class for QIcon renderers.
\ingroup painting
- \inmodule QtWidgets
+ \inmodule QtGui
An icon engine provides the rendering functions for a QIcon. Each icon has a
corresponding icon engine that is responsible for drawing the icon with a
@@ -158,7 +158,7 @@ void QIconEngine::addFile(const QString &/*fileName*/, const QSize &/*size*/, QI
\class QIconEngine::AvailableSizesArgument
\since 4.5
- \inmodule QtWidgets
+ \inmodule QtGui
This struct represents arguments to virtual_hook() function when
\a id parameter is QIconEngine::AvailableSizesHook.
diff --git a/src/widgets/kernel/qiconengine.h b/src/gui/image/qiconengine.h
index acadef97c3..e47f86713a 100644
--- a/src/widgets/kernel/qiconengine.h
+++ b/src/gui/image/qiconengine.h
@@ -44,14 +44,14 @@
#include <QtCore/qglobal.h>
#include <QtCore/qlist.h>
-#include <QtWidgets/qicon.h>
+#include <QtGui/qicon.h>
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
-class Q_WIDGETS_EXPORT QIconEngine
+class Q_GUI_EXPORT QIconEngine
{
public:
virtual ~QIconEngine();
diff --git a/src/widgets/kernel/qiconengineplugin.cpp b/src/gui/image/qiconengineplugin.cpp
index 26c9e7890a..29953a468e 100644
--- a/src/widgets/kernel/qiconengineplugin.cpp
+++ b/src/gui/image/qiconengineplugin.cpp
@@ -49,7 +49,7 @@ QT_BEGIN_NAMESPACE
\brief The QIconEnginePlugin class provides an abstract base for custom QIconEngine plugins.
\ingroup plugins
- \inmodule QtWidgets
+ \inmodule QtGui
\b {Use QIconEnginePluginV2 instead.}
diff --git a/src/widgets/kernel/qiconengineplugin.h b/src/gui/image/qiconengineplugin.h
index a30c5475ba..9333400609 100644
--- a/src/widgets/kernel/qiconengineplugin.h
+++ b/src/gui/image/qiconengineplugin.h
@@ -52,7 +52,7 @@ QT_BEGIN_NAMESPACE
class QIconEngine;
-struct Q_WIDGETS_EXPORT QIconEngineFactoryInterface : public QFactoryInterface
+struct Q_GUI_EXPORT QIconEngineFactoryInterface : public QFactoryInterface
{
virtual QIconEngine *create(const QString &filename = QString()) = 0;
};
@@ -61,7 +61,7 @@ struct Q_WIDGETS_EXPORT QIconEngineFactoryInterface : public QFactoryInterface
"org.qt-project.Qt.QIconEngineFactoryInterface"
Q_DECLARE_INTERFACE(QIconEngineFactoryInterface, QIconEngineFactoryInterface_iid)
-class Q_WIDGETS_EXPORT QIconEnginePlugin : public QObject, public QIconEngineFactoryInterface
+class Q_GUI_EXPORT QIconEnginePlugin : public QObject, public QIconEngineFactoryInterface
{
Q_OBJECT
Q_INTERFACES(QIconEngineFactoryInterface:QFactoryInterface)
diff --git a/src/widgets/kernel/qiconloader.cpp b/src/gui/image/qiconloader.cpp
index acbf7c1d07..71b286b2ff 100644
--- a/src/widgets/kernel/qiconloader.cpp
+++ b/src/gui/image/qiconloader.cpp
@@ -43,14 +43,12 @@
#include <private/qguiapplication_p.h>
#include <private/qicon_p.h>
-#include <private/qguiapplication_p.h>
-#include <QtWidgets/QApplication>
-#include <QtWidgets/QIconEnginePlugin>
+#include <QtGui/QIconEnginePlugin>
#include <QtGui/QPixmapCache>
#include <qpa/qplatformtheme.h>
-#include <QtWidgets/QIconEngine>
-#include <QtWidgets/QStyleOption>
+#include <QtGui/QIconEngine>
+#include <QtGui/QPalette>
#include <QtCore/QList>
#include <QtCore/QHash>
#include <QtCore/QDir>
@@ -510,16 +508,16 @@ QPixmap PixmapEntry::pixmap(const QSize &size, QIcon::Mode mode, QIcon::State st
QString key = QLatin1String("$qt_theme_")
% HexString<qint64>(basePixmap.cacheKey())
% HexString<int>(mode)
- % HexString<qint64>(qApp->palette().cacheKey())
+ % HexString<qint64>(QGuiApplication::palette().cacheKey())
% HexString<int>(actualSize);
QPixmap cachedPixmap;
if (QPixmapCache::find(key, &cachedPixmap)) {
return cachedPixmap;
} else {
- QStyleOption opt(0);
- opt.palette = qApp->palette();
- cachedPixmap = qApp->style()->generatedIconPixmap(mode, basePixmap, &opt);
+ cachedPixmap = basePixmap;
+ if (QGuiApplication *guiApp = qobject_cast<QGuiApplication *>(qApp))
+ cachedPixmap = static_cast<QGuiApplicationPrivate*>(QObjectPrivate::get(guiApp))->applyQIconStyleHelper(mode, basePixmap);
QPixmapCache::insert(key, cachedPixmap);
}
return cachedPixmap;
diff --git a/src/widgets/kernel/qiconloader_p.h b/src/gui/image/qiconloader_p.h
index 1b9043675b..bd990d0d53 100644
--- a/src/widgets/kernel/qiconloader_p.h
+++ b/src/gui/image/qiconloader_p.h
@@ -54,8 +54,8 @@
// We mean it.
//
-#include <QtWidgets/QIcon>
-#include <QtWidgets/QIconEngine>
+#include <QtGui/QIcon>
+#include <QtGui/QIconEngine>
#include <QtGui/QPixmapCache>
#include <private/qicon_p.h>
#include <private/qfactoryloader_p.h>
@@ -153,7 +153,7 @@ private:
bool m_valid;
};
-class QIconLoader : public QObject
+class Q_GUI_EXPORT QIconLoader : public QObject
{
public:
QIconLoader();
diff --git a/src/gui/kernel/qguiapplication_p.h b/src/gui/kernel/qguiapplication_p.h
index ff1a88051c..bab3ecc997 100644
--- a/src/gui/kernel/qguiapplication_p.h
+++ b/src/gui/kernel/qguiapplication_p.h
@@ -52,6 +52,7 @@
#include <QWindowSystemInterface>
#include "private/qwindowsysteminterface_qpa_p.h"
#include "private/qshortcutmap_p.h"
+#include <qicon.h>
QT_BEGIN_HEADER
@@ -213,6 +214,9 @@ public:
const QDrawHelperGammaTables *gammaTables();
+ // hook reimplemented in QApplication to apply the QStyle function on the QIcon
+ virtual QPixmap applyQIconStyleHelper(QIcon::Mode, const QPixmap &basePixmap) const { return basePixmap; }
+
protected:
virtual void notifyThemeChanged();
diff --git a/src/testlib/qtest_gui.h b/src/testlib/qtest_gui.h
index 24abd00e0f..684b876fcd 100644
--- a/src/testlib/qtest_gui.h
+++ b/src/testlib/qtest_gui.h
@@ -61,7 +61,7 @@
#include <QtGui/qimage.h>
#ifdef QT_WIDGETS_LIB
-#include <QtWidgets/qicon.h>
+#include <QtGui/qicon.h>
#endif
#if 0
diff --git a/src/widgets/dialogs/qfilesystemmodel.h b/src/widgets/dialogs/qfilesystemmodel.h
index 875044e785..8e1d8b973b 100644
--- a/src/widgets/dialogs/qfilesystemmodel.h
+++ b/src/widgets/dialogs/qfilesystemmodel.h
@@ -45,7 +45,7 @@
#include <QtCore/qabstractitemmodel.h>
#include <QtCore/qpair.h>
#include <QtCore/qdir.h>
-#include <QtWidgets/qicon.h>
+#include <QtGui/qicon.h>
#include <QtCore/qdiriterator.h>
QT_BEGIN_HEADER
diff --git a/src/widgets/dialogs/qmessagebox.cpp b/src/widgets/dialogs/qmessagebox.cpp
index cb32de4bca..2b1d516ab7 100644
--- a/src/widgets/dialogs/qmessagebox.cpp
+++ b/src/widgets/dialogs/qmessagebox.cpp
@@ -54,7 +54,7 @@
#include <QtWidgets/qdesktopwidget.h>
#include <QtWidgets/qpushbutton.h>
#include <QtGui/qaccessible.h>
-#include <QtWidgets/qicon.h>
+#include <QtGui/qicon.h>
#include <QtGui/qtextdocument.h>
#include <QtWidgets/qapplication.h>
#include <QtWidgets/qtextedit.h>
diff --git a/src/widgets/itemviews/qfileiconprovider.h b/src/widgets/itemviews/qfileiconprovider.h
index 85cbf32abc..a78ccbeda2 100644
--- a/src/widgets/itemviews/qfileiconprovider.h
+++ b/src/widgets/itemviews/qfileiconprovider.h
@@ -44,7 +44,7 @@
#include <QtCore/qfileinfo.h>
#include <QtCore/qscopedpointer.h>
-#include <QtWidgets/qicon.h>
+#include <QtGui/qicon.h>
QT_BEGIN_HEADER
diff --git a/src/widgets/itemviews/qstandarditemmodel.h b/src/widgets/itemviews/qstandarditemmodel.h
index 767665fd94..2f449ab97a 100644
--- a/src/widgets/itemviews/qstandarditemmodel.h
+++ b/src/widgets/itemviews/qstandarditemmodel.h
@@ -45,7 +45,7 @@
#include <QtCore/qabstractitemmodel.h>
#include <QtGui/qbrush.h>
#include <QtGui/qfont.h>
-#include <QtWidgets/qicon.h>
+#include <QtGui/qicon.h>
#ifndef QT_NO_DATASTREAM
#include <QtCore/qdatastream.h>
#endif
diff --git a/src/widgets/kernel/kernel.pri b/src/widgets/kernel/kernel.pri
index 9e3d82ea12..c4853bd369 100644
--- a/src/widgets/kernel/kernel.pri
+++ b/src/widgets/kernel/kernel.pri
@@ -15,11 +15,6 @@ HEADERS += \
kernel/qdesktopwidget.h \
kernel/qformlayout.h \
kernel/qgridlayout.h \
- kernel/qicon.h \
- kernel/qicon_p.h \
- kernel/qiconloader_p.h \
- kernel/qiconengine.h \
- kernel/qiconengineplugin.h \
kernel/qlayout.h \
kernel/qlayout_p.h \
kernel/qlayoutengine_p.h \
@@ -52,10 +47,6 @@ SOURCES += \
kernel/qboxlayout.cpp \
kernel/qformlayout.cpp \
kernel/qgridlayout.cpp \
- kernel/qicon.cpp \
- kernel/qiconloader.cpp \
- kernel/qiconengine.cpp \
- kernel/qiconengineplugin.cpp \
kernel/qlayout.cpp \
kernel/qlayoutengine.cpp \
kernel/qlayoutitem.cpp \
diff --git a/src/widgets/kernel/qaction.h b/src/widgets/kernel/qaction.h
index 485b5928b0..bb7de852c1 100644
--- a/src/widgets/kernel/qaction.h
+++ b/src/widgets/kernel/qaction.h
@@ -46,7 +46,7 @@
#include <QtCore/qstring.h>
#include <QtWidgets/qwidget.h>
#include <QtCore/qvariant.h>
-#include <QtWidgets/qicon.h>
+#include <QtGui/qicon.h>
QT_BEGIN_HEADER
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp
index fc6768efd0..cfad6fb5f9 100644
--- a/src/widgets/kernel/qapplication.cpp
+++ b/src/widgets/kernel/qapplication.cpp
@@ -4510,6 +4510,14 @@ QGestureManager* QGestureManager::instance()
}
#endif // QT_NO_GESTURES
+QPixmap QApplicationPrivate::applyQIconStyleHelper(QIcon::Mode mode, const QPixmap& base) const
+{
+ Q_Q(const QApplication);
+ QStyleOption opt(0);
+ opt.palette = q->palette();
+ return q->style()->generatedIconPixmap(mode, base, &opt);
+}
+
QT_END_NAMESPACE
#include "moc_qapplication.cpp"
diff --git a/src/widgets/kernel/qapplication_p.h b/src/widgets/kernel/qapplication_p.h
index 63862269d6..891d71a737 100644
--- a/src/widgets/kernel/qapplication_p.h
+++ b/src/widgets/kernel/qapplication_p.h
@@ -374,6 +374,7 @@ public:
ulong timestamp);
static void translateTouchCancel(QTouchDevice *device, ulong timestamp);
+ QPixmap applyQIconStyleHelper(QIcon::Mode mode, const QPixmap& base) const;
private:
#ifdef Q_WS_QWS
QHash<const QScreen*, QRect> maxWindowRects;
diff --git a/src/widgets/styles/qstyle.h b/src/widgets/styles/qstyle.h
index aebfea3620..f56919a37f 100644
--- a/src/widgets/styles/qstyle.h
+++ b/src/widgets/styles/qstyle.h
@@ -45,7 +45,7 @@
#include <QtCore/qobject.h>
#include <QtCore/qrect.h>
#include <QtCore/qsize.h>
-#include <QtWidgets/qicon.h>
+#include <QtGui/qicon.h>
#include <QtGui/qpixmap.h>
#include <QtGui/qpalette.h>
#include <QtWidgets/qsizepolicy.h>
diff --git a/src/widgets/styles/qstyleoption.h b/src/widgets/styles/qstyleoption.h
index 588898637f..ea039fff19 100644
--- a/src/widgets/styles/qstyleoption.h
+++ b/src/widgets/styles/qstyleoption.h
@@ -44,7 +44,7 @@
#include <QtCore/qvariant.h>
#include <QtWidgets/qabstractspinbox.h>
-#include <QtWidgets/qicon.h>
+#include <QtGui/qicon.h>
#include <QtGui/qmatrix.h>
#include <QtWidgets/qslider.h>
#include <QtWidgets/qstyle.h>
diff --git a/src/widgets/util/qsystemtrayicon.h b/src/widgets/util/qsystemtrayicon.h
index 96f9a1d2f4..b2ca5f0a34 100644
--- a/src/widgets/util/qsystemtrayicon.h
+++ b/src/widgets/util/qsystemtrayicon.h
@@ -46,7 +46,7 @@
#ifndef QT_NO_SYSTEMTRAYICON
-#include <QtWidgets/qicon.h>
+#include <QtGui/qicon.h>
QT_BEGIN_HEADER
diff --git a/src/widgets/util/qundoview.cpp b/src/widgets/util/qundoview.cpp
index 2a88b50917..e169437af3 100644
--- a/src/widgets/util/qundoview.cpp
+++ b/src/widgets/util/qundoview.cpp
@@ -47,7 +47,7 @@
#include "qundogroup.h"
#include <QtCore/qabstractitemmodel.h>
#include <QtCore/qpointer.h>
-#include <QtWidgets/qicon.h>
+#include <QtGui/qicon.h>
#include <private/qlistview_p.h>
QT_BEGIN_NAMESPACE
diff --git a/src/widgets/widgets/qabstractbutton.h b/src/widgets/widgets/qabstractbutton.h
index 37a37f6de4..5be27a2ecb 100644
--- a/src/widgets/widgets/qabstractbutton.h
+++ b/src/widgets/widgets/qabstractbutton.h
@@ -42,7 +42,7 @@
#ifndef QABSTRACTBUTTON_H
#define QABSTRACTBUTTON_H
-#include <QtWidgets/qicon.h>
+#include <QtGui/qicon.h>
#include <QtGui/qkeysequence.h>
#include <QtWidgets/qwidget.h>
diff --git a/src/widgets/widgets/qmenu.h b/src/widgets/widgets/qmenu.h
index e98df595d1..5f4b213822 100644
--- a/src/widgets/widgets/qmenu.h
+++ b/src/widgets/widgets/qmenu.h
@@ -44,7 +44,7 @@
#include <QtWidgets/qwidget.h>
#include <QtCore/qstring.h>
-#include <QtWidgets/qicon.h>
+#include <QtGui/qicon.h>
#include <QtWidgets/qaction.h>
#ifdef Q_OS_WINCE
diff --git a/src/widgets/widgets/qtabwidget.h b/src/widgets/widgets/qtabwidget.h
index 4e8d4d4583..8fc3bfa05d 100644
--- a/src/widgets/widgets/qtabwidget.h
+++ b/src/widgets/widgets/qtabwidget.h
@@ -43,7 +43,7 @@
#define QTABWIDGET_H
#include <QtWidgets/qwidget.h>
-#include <QtWidgets/qicon.h>
+#include <QtGui/qicon.h>
QT_BEGIN_HEADER
diff --git a/src/widgets/widgets/qtoolbox.h b/src/widgets/widgets/qtoolbox.h
index 5732668b8f..42f8b01f7b 100644
--- a/src/widgets/widgets/qtoolbox.h
+++ b/src/widgets/widgets/qtoolbox.h
@@ -43,7 +43,7 @@
#define QTOOLBOX_H
#include <QtWidgets/qframe.h>
-#include <QtWidgets/qicon.h>
+#include <QtGui/qicon.h>
QT_BEGIN_HEADER
diff --git a/tests/auto/gui/image/image.pro b/tests/auto/gui/image/image.pro
index 5a03063f47..1ef52df4ba 100644
--- a/tests/auto/gui/image/image.pro
+++ b/tests/auto/gui/image/image.pro
@@ -9,6 +9,7 @@ SUBDIRS=\
qimagewriter \
qmovie \
qpicture \
+ qicon \
!contains(QT_CONFIG, private_tests): SUBDIRS -= \
qpixmapcache \
diff --git a/tests/auto/widgets/kernel/qicon/.gitignore b/tests/auto/gui/image/qicon/.gitignore
index c101ef9d28..c101ef9d28 100644
--- a/tests/auto/widgets/kernel/qicon/.gitignore
+++ b/tests/auto/gui/image/qicon/.gitignore
diff --git a/tests/auto/widgets/kernel/qicon/icons/testtheme/16x16/actions/appointment-new.png b/tests/auto/gui/image/qicon/icons/testtheme/16x16/actions/appointment-new.png
index 18b7c6781e..18b7c6781e 100644
--- a/tests/auto/widgets/kernel/qicon/icons/testtheme/16x16/actions/appointment-new.png
+++ b/tests/auto/gui/image/qicon/icons/testtheme/16x16/actions/appointment-new.png
Binary files differ
diff --git a/tests/auto/widgets/kernel/qicon/icons/testtheme/22x22/actions/appointment-new.png b/tests/auto/gui/image/qicon/icons/testtheme/22x22/actions/appointment-new.png
index d676ffd463..d676ffd463 100644
--- a/tests/auto/widgets/kernel/qicon/icons/testtheme/22x22/actions/appointment-new.png
+++ b/tests/auto/gui/image/qicon/icons/testtheme/22x22/actions/appointment-new.png
Binary files differ
diff --git a/tests/auto/widgets/kernel/qicon/icons/testtheme/32x32/actions/appointment-new.png b/tests/auto/gui/image/qicon/icons/testtheme/32x32/actions/appointment-new.png
index 85daef3b0b..85daef3b0b 100644
--- a/tests/auto/widgets/kernel/qicon/icons/testtheme/32x32/actions/appointment-new.png
+++ b/tests/auto/gui/image/qicon/icons/testtheme/32x32/actions/appointment-new.png
Binary files differ
diff --git a/tests/auto/widgets/kernel/qicon/icons/testtheme/index.theme b/tests/auto/gui/image/qicon/icons/testtheme/index.theme
index e18736ab43..e18736ab43 100644
--- a/tests/auto/widgets/kernel/qicon/icons/testtheme/index.theme
+++ b/tests/auto/gui/image/qicon/icons/testtheme/index.theme
diff --git a/tests/auto/widgets/kernel/qicon/icons/testtheme/scalable/actions/svg-only.svg b/tests/auto/gui/image/qicon/icons/testtheme/scalable/actions/svg-only.svg
index 4cb14f82f0..4cb14f82f0 100644
--- a/tests/auto/widgets/kernel/qicon/icons/testtheme/scalable/actions/svg-only.svg
+++ b/tests/auto/gui/image/qicon/icons/testtheme/scalable/actions/svg-only.svg
diff --git a/tests/auto/widgets/kernel/qicon/icons/themeparent/16x16/actions/address-book-new.png b/tests/auto/gui/image/qicon/icons/themeparent/16x16/actions/address-book-new.png
index 2098cfdf36..2098cfdf36 100644
--- a/tests/auto/widgets/kernel/qicon/icons/themeparent/16x16/actions/address-book-new.png
+++ b/tests/auto/gui/image/qicon/icons/themeparent/16x16/actions/address-book-new.png
Binary files differ
diff --git a/tests/auto/widgets/kernel/qicon/icons/themeparent/16x16/actions/appointment-new.png b/tests/auto/gui/image/qicon/icons/themeparent/16x16/actions/appointment-new.png
index 18b7c6781e..18b7c6781e 100644
--- a/tests/auto/widgets/kernel/qicon/icons/themeparent/16x16/actions/appointment-new.png
+++ b/tests/auto/gui/image/qicon/icons/themeparent/16x16/actions/appointment-new.png
Binary files differ
diff --git a/tests/auto/widgets/kernel/qicon/icons/themeparent/22x22/actions/address-book-new.png b/tests/auto/gui/image/qicon/icons/themeparent/22x22/actions/address-book-new.png
index fad446cd92..fad446cd92 100644
--- a/tests/auto/widgets/kernel/qicon/icons/themeparent/22x22/actions/address-book-new.png
+++ b/tests/auto/gui/image/qicon/icons/themeparent/22x22/actions/address-book-new.png
Binary files differ
diff --git a/tests/auto/widgets/kernel/qicon/icons/themeparent/22x22/actions/appointment-new.png b/tests/auto/gui/image/qicon/icons/themeparent/22x22/actions/appointment-new.png
index d676ffd463..d676ffd463 100644
--- a/tests/auto/widgets/kernel/qicon/icons/themeparent/22x22/actions/appointment-new.png
+++ b/tests/auto/gui/image/qicon/icons/themeparent/22x22/actions/appointment-new.png
Binary files differ
diff --git a/tests/auto/widgets/kernel/qicon/icons/themeparent/32x32/actions/address-book-new.png b/tests/auto/gui/image/qicon/icons/themeparent/32x32/actions/address-book-new.png
index 420139d307..420139d307 100644
--- a/tests/auto/widgets/kernel/qicon/icons/themeparent/32x32/actions/address-book-new.png
+++ b/tests/auto/gui/image/qicon/icons/themeparent/32x32/actions/address-book-new.png
Binary files differ
diff --git a/tests/auto/widgets/kernel/qicon/icons/themeparent/32x32/actions/appointment-new.png b/tests/auto/gui/image/qicon/icons/themeparent/32x32/actions/appointment-new.png
index 85daef3b0b..85daef3b0b 100644
--- a/tests/auto/widgets/kernel/qicon/icons/themeparent/32x32/actions/appointment-new.png
+++ b/tests/auto/gui/image/qicon/icons/themeparent/32x32/actions/appointment-new.png
Binary files differ
diff --git a/tests/auto/widgets/kernel/qicon/icons/themeparent/index.theme b/tests/auto/gui/image/qicon/icons/themeparent/index.theme
index e536a0bf2f..e536a0bf2f 100644
--- a/tests/auto/widgets/kernel/qicon/icons/themeparent/index.theme
+++ b/tests/auto/gui/image/qicon/icons/themeparent/index.theme
diff --git a/tests/auto/widgets/kernel/qicon/icons/themeparent/scalable/actions/address-book-new.svg b/tests/auto/gui/image/qicon/icons/themeparent/scalable/actions/address-book-new.svg
index 600a82c1b0..600a82c1b0 100644
--- a/tests/auto/widgets/kernel/qicon/icons/themeparent/scalable/actions/address-book-new.svg
+++ b/tests/auto/gui/image/qicon/icons/themeparent/scalable/actions/address-book-new.svg
diff --git a/tests/auto/widgets/kernel/qicon/icons/themeparent/scalable/actions/appointment-new.svg b/tests/auto/gui/image/qicon/icons/themeparent/scalable/actions/appointment-new.svg
index 4cb14f82f0..4cb14f82f0 100644
--- a/tests/auto/widgets/kernel/qicon/icons/themeparent/scalable/actions/appointment-new.svg
+++ b/tests/auto/gui/image/qicon/icons/themeparent/scalable/actions/appointment-new.svg
diff --git a/tests/auto/widgets/kernel/qicon/image.png b/tests/auto/gui/image/qicon/image.png
index 8d703640c1..8d703640c1 100644
--- a/tests/auto/widgets/kernel/qicon/image.png
+++ b/tests/auto/gui/image/qicon/image.png
Binary files differ
diff --git a/tests/auto/widgets/kernel/qicon/qicon.pro b/tests/auto/gui/image/qicon/qicon.pro
index c44c080ced..c44c080ced 100644
--- a/tests/auto/widgets/kernel/qicon/qicon.pro
+++ b/tests/auto/gui/image/qicon/qicon.pro
diff --git a/tests/auto/widgets/kernel/qicon/rect.png b/tests/auto/gui/image/qicon/rect.png
index b5d3ecbddf..b5d3ecbddf 100644
--- a/tests/auto/widgets/kernel/qicon/rect.png
+++ b/tests/auto/gui/image/qicon/rect.png
Binary files differ
diff --git a/tests/auto/widgets/kernel/qicon/tst_qicon.cpp b/tests/auto/gui/image/qicon/tst_qicon.cpp
index cca0887a21..cca0887a21 100644
--- a/tests/auto/widgets/kernel/qicon/tst_qicon.cpp
+++ b/tests/auto/gui/image/qicon/tst_qicon.cpp
diff --git a/tests/auto/widgets/kernel/qicon/tst_qicon.qrc b/tests/auto/gui/image/qicon/tst_qicon.qrc
index 7925a33c84..7925a33c84 100644
--- a/tests/auto/widgets/kernel/qicon/tst_qicon.qrc
+++ b/tests/auto/gui/image/qicon/tst_qicon.qrc
diff --git a/tests/auto/widgets/kernel/kernel.pro b/tests/auto/widgets/kernel/kernel.pro
index e1c245d9d1..c2540ec229 100644
--- a/tests/auto/widgets/kernel/kernel.pro
+++ b/tests/auto/widgets/kernel/kernel.pro
@@ -13,7 +13,6 @@ SUBDIRS=\
qwidget \
qwidget_window \
qwidgetaction \
- qicon \
qshortcut \
SUBDIRS -= qsound