From 6c06e14a49773ce5572935864ed6b9be219c6103 Mon Sep 17 00:00:00 2001 From: Olivier Goffart <ogoffart@woboq.com> Date: Mon, 14 May 2012 18:02:16 +0200 Subject: [PATCH] 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> --- src/gui/image/image.pri | 12 ++++- src/{widgets/kernel => gui/image}/qicon.cpp | 41 ++++++++++++------ src/{widgets/kernel => gui/image}/qicon.h | 12 ++--- src/{widgets/kernel => gui/image}/qicon_p.h | 4 +- .../kernel => gui/image}/qiconengine.cpp | 4 +- .../kernel => gui/image}/qiconengine.h | 4 +- .../image}/qiconengineplugin.cpp | 2 +- .../kernel => gui/image}/qiconengineplugin.h | 4 +- .../kernel => gui/image}/qiconloader.cpp | 16 +++---- .../kernel => gui/image}/qiconloader_p.h | 6 +-- src/gui/kernel/qguiapplication_p.h | 4 ++ src/testlib/qtest_gui.h | 2 +- src/widgets/dialogs/qfilesystemmodel.h | 2 +- src/widgets/dialogs/qmessagebox.cpp | 2 +- src/widgets/itemviews/qfileiconprovider.h | 2 +- src/widgets/itemviews/qstandarditemmodel.h | 2 +- src/widgets/kernel/kernel.pri | 9 ---- src/widgets/kernel/qaction.h | 2 +- src/widgets/kernel/qapplication.cpp | 8 ++++ src/widgets/kernel/qapplication_p.h | 1 + src/widgets/styles/qstyle.h | 2 +- src/widgets/styles/qstyleoption.h | 2 +- src/widgets/util/qsystemtrayicon.h | 2 +- src/widgets/util/qundoview.cpp | 2 +- src/widgets/widgets/qabstractbutton.h | 2 +- src/widgets/widgets/qmenu.h | 2 +- src/widgets/widgets/qtabwidget.h | 2 +- src/widgets/widgets/qtoolbox.h | 2 +- tests/auto/gui/image/image.pro | 1 + .../kernel => gui/image}/qicon/.gitignore | 0 .../16x16/actions/appointment-new.png | Bin .../22x22/actions/appointment-new.png | Bin .../32x32/actions/appointment-new.png | Bin .../image}/qicon/icons/testtheme/index.theme | 0 .../testtheme/scalable/actions/svg-only.svg | 0 .../16x16/actions/address-book-new.png | Bin .../16x16/actions/appointment-new.png | Bin .../22x22/actions/address-book-new.png | Bin .../22x22/actions/appointment-new.png | Bin .../32x32/actions/address-book-new.png | Bin .../32x32/actions/appointment-new.png | Bin .../qicon/icons/themeparent/index.theme | 0 .../scalable/actions/address-book-new.svg | 0 .../scalable/actions/appointment-new.svg | 0 .../kernel => gui/image}/qicon/image.png | Bin .../kernel => gui/image}/qicon/qicon.pro | 0 .../kernel => gui/image}/qicon/rect.png | Bin .../kernel => gui/image}/qicon/tst_qicon.cpp | 0 .../kernel => gui/image}/qicon/tst_qicon.qrc | 0 tests/auto/widgets/kernel/kernel.pro | 1 - 50 files changed, 92 insertions(+), 65 deletions(-) rename src/{widgets/kernel => gui/image}/qicon.cpp (95%) rename src/{widgets/kernel => gui/image}/qicon.h (92%) rename src/{widgets/kernel => gui/image}/qicon_p.h (98%) rename src/{widgets/kernel => gui/image}/qiconengine.cpp (99%) rename src/{widgets/kernel => gui/image}/qiconengine.h (97%) rename src/{widgets/kernel => gui/image}/qiconengineplugin.cpp (99%) rename src/{widgets/kernel => gui/image}/qiconengineplugin.h (93%) rename src/{widgets/kernel => gui/image}/qiconloader.cpp (97%) rename src/{widgets/kernel => gui/image}/qiconloader_p.h (98%) rename tests/auto/{widgets/kernel => gui/image}/qicon/.gitignore (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/icons/testtheme/16x16/actions/appointment-new.png (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/icons/testtheme/22x22/actions/appointment-new.png (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/icons/testtheme/32x32/actions/appointment-new.png (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/icons/testtheme/index.theme (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/icons/testtheme/scalable/actions/svg-only.svg (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/icons/themeparent/16x16/actions/address-book-new.png (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/icons/themeparent/16x16/actions/appointment-new.png (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/icons/themeparent/22x22/actions/address-book-new.png (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/icons/themeparent/22x22/actions/appointment-new.png (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/icons/themeparent/32x32/actions/address-book-new.png (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/icons/themeparent/32x32/actions/appointment-new.png (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/icons/themeparent/index.theme (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/icons/themeparent/scalable/actions/address-book-new.svg (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/icons/themeparent/scalable/actions/appointment-new.svg (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/image.png (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/qicon.pro (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/rect.png (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/tst_qicon.cpp (100%) rename tests/auto/{widgets/kernel => gui/image}/qicon/tst_qicon.qrc (100%) diff --git a/src/gui/image/image.pri b/src/gui/image/image.pri index 737b7fcbd46..6b306ddaad4 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 similarity index 95% rename from src/widgets/kernel/qicon.cpp rename to src/gui/image/qicon.cpp index 448b6a8cfd2..c2139c33369 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 similarity index 92% rename from src/widgets/kernel/qicon.h rename to src/gui/image/qicon.h index c6e07ba3e25..264b672c8c0 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 similarity index 98% rename from src/widgets/kernel/qicon_p.h rename to src/gui/image/qicon_p.h index 37c4b7cb1f4..b8b1f001fe8 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 similarity index 99% rename from src/widgets/kernel/qiconengine.cpp rename to src/gui/image/qiconengine.cpp index 0a2d92ed699..2b7fdb9bdc7 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 similarity index 97% rename from src/widgets/kernel/qiconengine.h rename to src/gui/image/qiconengine.h index acadef97c33..e47f86713a1 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 similarity index 99% rename from src/widgets/kernel/qiconengineplugin.cpp rename to src/gui/image/qiconengineplugin.cpp index 26c9e7890a4..29953a468e8 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 similarity index 93% rename from src/widgets/kernel/qiconengineplugin.h rename to src/gui/image/qiconengineplugin.h index a30c5475ba6..93334006094 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 similarity index 97% rename from src/widgets/kernel/qiconloader.cpp rename to src/gui/image/qiconloader.cpp index acbf7c1d074..71b286b2ff6 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 similarity index 98% rename from src/widgets/kernel/qiconloader_p.h rename to src/gui/image/qiconloader_p.h index 1b9043675bb..bd990d0d53b 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 ff1a88051c8..bab3ecc997c 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 24abd00e0fc..684b876fcda 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 875044e7857..8e1d8b973b7 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 cb32de4bca3..2b1d516ab7c 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 85cbf32abc7..a78ccbeda23 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 767665fd945..2f449ab97a2 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 9e3d82ea122..c4853bd369c 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 485b5928b0b..bb7de852c11 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 fc6768efd06..cfad6fb5f9b 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 63862269d6e..891d71a7378 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 aebfea3620a..f56919a37fa 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 588898637f0..ea039fff198 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 96f9a1d2f4f..b2ca5f0a34e 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 2a88b509170..e169437af3a 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 37a37f6de4a..5be27a2ecbb 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 e98df595d11..5f4b2138221 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 4e8d4d4583a..8fc3bfa05d4 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 5732668b8f1..42f8b01f7b3 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 5a03063f47c..1ef52df4ba0 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 similarity index 100% rename from tests/auto/widgets/kernel/qicon/.gitignore rename to 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 similarity index 100% rename from tests/auto/widgets/kernel/qicon/icons/testtheme/16x16/actions/appointment-new.png rename to tests/auto/gui/image/qicon/icons/testtheme/16x16/actions/appointment-new.png 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 similarity index 100% rename from tests/auto/widgets/kernel/qicon/icons/testtheme/22x22/actions/appointment-new.png rename to tests/auto/gui/image/qicon/icons/testtheme/22x22/actions/appointment-new.png 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 similarity index 100% rename from tests/auto/widgets/kernel/qicon/icons/testtheme/32x32/actions/appointment-new.png rename to tests/auto/gui/image/qicon/icons/testtheme/32x32/actions/appointment-new.png diff --git a/tests/auto/widgets/kernel/qicon/icons/testtheme/index.theme b/tests/auto/gui/image/qicon/icons/testtheme/index.theme similarity index 100% rename from tests/auto/widgets/kernel/qicon/icons/testtheme/index.theme rename to 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 similarity index 100% rename from tests/auto/widgets/kernel/qicon/icons/testtheme/scalable/actions/svg-only.svg rename to 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 similarity index 100% rename from tests/auto/widgets/kernel/qicon/icons/themeparent/16x16/actions/address-book-new.png rename to tests/auto/gui/image/qicon/icons/themeparent/16x16/actions/address-book-new.png 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 similarity index 100% rename from tests/auto/widgets/kernel/qicon/icons/themeparent/16x16/actions/appointment-new.png rename to tests/auto/gui/image/qicon/icons/themeparent/16x16/actions/appointment-new.png 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 similarity index 100% rename from tests/auto/widgets/kernel/qicon/icons/themeparent/22x22/actions/address-book-new.png rename to tests/auto/gui/image/qicon/icons/themeparent/22x22/actions/address-book-new.png 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 similarity index 100% rename from tests/auto/widgets/kernel/qicon/icons/themeparent/22x22/actions/appointment-new.png rename to tests/auto/gui/image/qicon/icons/themeparent/22x22/actions/appointment-new.png 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 similarity index 100% rename from tests/auto/widgets/kernel/qicon/icons/themeparent/32x32/actions/address-book-new.png rename to tests/auto/gui/image/qicon/icons/themeparent/32x32/actions/address-book-new.png 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 similarity index 100% rename from tests/auto/widgets/kernel/qicon/icons/themeparent/32x32/actions/appointment-new.png rename to tests/auto/gui/image/qicon/icons/themeparent/32x32/actions/appointment-new.png diff --git a/tests/auto/widgets/kernel/qicon/icons/themeparent/index.theme b/tests/auto/gui/image/qicon/icons/themeparent/index.theme similarity index 100% rename from tests/auto/widgets/kernel/qicon/icons/themeparent/index.theme rename to 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 similarity index 100% rename from tests/auto/widgets/kernel/qicon/icons/themeparent/scalable/actions/address-book-new.svg rename to 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 similarity index 100% rename from tests/auto/widgets/kernel/qicon/icons/themeparent/scalable/actions/appointment-new.svg rename to 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 similarity index 100% rename from tests/auto/widgets/kernel/qicon/image.png rename to tests/auto/gui/image/qicon/image.png diff --git a/tests/auto/widgets/kernel/qicon/qicon.pro b/tests/auto/gui/image/qicon/qicon.pro similarity index 100% rename from tests/auto/widgets/kernel/qicon/qicon.pro rename to 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 similarity index 100% rename from tests/auto/widgets/kernel/qicon/rect.png rename to tests/auto/gui/image/qicon/rect.png diff --git a/tests/auto/widgets/kernel/qicon/tst_qicon.cpp b/tests/auto/gui/image/qicon/tst_qicon.cpp similarity index 100% rename from tests/auto/widgets/kernel/qicon/tst_qicon.cpp rename to 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 similarity index 100% rename from tests/auto/widgets/kernel/qicon/tst_qicon.qrc rename to 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 e1c245d9d10..c2540ec2294 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 -- GitLab