diff options
author | Olivier Goffart <ogoffart@woboq.com> | 2012-05-14 18:02:16 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-18 21:42:38 +0200 |
commit | 6c06e14a49773ce5572935864ed6b9be219c6103 (patch) | |
tree | 14bb88db68657527cabe6590b6cf5044aed65307 | |
parent | 83645377e98fb1312b6f80a1c996a013b62f0b46 (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.pri | 12 | ||||
-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.h | 4 | ||||
-rw-r--r-- | src/testlib/qtest_gui.h | 2 | ||||
-rw-r--r-- | src/widgets/dialogs/qfilesystemmodel.h | 2 | ||||
-rw-r--r-- | src/widgets/dialogs/qmessagebox.cpp | 2 | ||||
-rw-r--r-- | src/widgets/itemviews/qfileiconprovider.h | 2 | ||||
-rw-r--r-- | src/widgets/itemviews/qstandarditemmodel.h | 2 | ||||
-rw-r--r-- | src/widgets/kernel/kernel.pri | 9 | ||||
-rw-r--r-- | src/widgets/kernel/qaction.h | 2 | ||||
-rw-r--r-- | src/widgets/kernel/qapplication.cpp | 8 | ||||
-rw-r--r-- | src/widgets/kernel/qapplication_p.h | 1 | ||||
-rw-r--r-- | src/widgets/styles/qstyle.h | 2 | ||||
-rw-r--r-- | src/widgets/styles/qstyleoption.h | 2 | ||||
-rw-r--r-- | src/widgets/util/qsystemtrayicon.h | 2 | ||||
-rw-r--r-- | src/widgets/util/qundoview.cpp | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qabstractbutton.h | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qmenu.h | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qtabwidget.h | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qtoolbox.h | 2 | ||||
-rw-r--r-- | tests/auto/gui/image/image.pro | 1 | ||||
-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) | bin | 897 -> 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) | bin | 1411 -> 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) | bin | 2399 -> 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) | bin | 796 -> 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) | bin | 897 -> 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) | bin | 924 -> 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) | bin | 1411 -> 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) | bin | 1897 -> 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) | bin | 2399 -> 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) | bin | 14743 -> 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) | bin | 175 -> 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.pro | 1 |
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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 8d703640c1..8d703640c1 100644 --- a/tests/auto/widgets/kernel/qicon/image.png +++ b/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 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 Binary files differindex b5d3ecbddf..b5d3ecbddf 100644 --- a/tests/auto/widgets/kernel/qicon/rect.png +++ b/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 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 |