diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/image/qicon.cpp | 7 | ||||
-rw-r--r-- | src/gui/image/qiconengine.cpp | 12 | ||||
-rw-r--r-- | src/gui/image/qiconengine.h | 9 |
3 files changed, 13 insertions, 15 deletions
diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp index e7e13860d8..27206b2cbc 100644 --- a/src/gui/image/qicon.cpp +++ b/src/gui/image/qicon.cpp @@ -876,10 +876,9 @@ QPixmap QIcon::pixmap(const QSize &size, qreal devicePixelRatio, Mode mode, Stat } // Try get a pixmap that is big enough to be displayed at device pixel resolution. - QIconEngine::ScaledPixmapArgument scalePixmapArg = { size * devicePixelRatio, mode, state, devicePixelRatio, QPixmap() }; - d->engine->virtual_hook(QIconEngine::ScaledPixmapHook, reinterpret_cast<void*>(&scalePixmapArg)); - scalePixmapArg.pixmap.setDevicePixelRatio(d->pixmapDevicePixelRatio(devicePixelRatio, size, scalePixmapArg.pixmap.size())); - return scalePixmapArg.pixmap; + QPixmap pixmap = d->engine->scaledPixmap(size * devicePixelRatio, mode, state, devicePixelRatio); + pixmap.setDevicePixelRatio(d->pixmapDevicePixelRatio(devicePixelRatio, size, pixmap.size())); + return pixmap; } /*! diff --git a/src/gui/image/qiconengine.cpp b/src/gui/image/qiconengine.cpp index 3033112df0..8bcb6e4705 100644 --- a/src/gui/image/qiconengine.cpp +++ b/src/gui/image/qiconengine.cpp @@ -342,12 +342,12 @@ void QIconEngine::virtual_hook(int id, void *data) \include qiconengine-virtualhookhelper.qdocinc */ -QList<QSize> QIconEngine::availableSizes(QIcon::Mode mode, QIcon::State state) const +QList<QSize> QIconEngine::availableSizes(QIcon::Mode mode, QIcon::State state) { AvailableSizesArgument arg; arg.mode = mode; arg.state = state; - const_cast<QIconEngine *>(this)->virtual_hook(QIconEngine::AvailableSizesHook, reinterpret_cast<void*>(&arg)); + this->virtual_hook(QIconEngine::AvailableSizesHook, reinterpret_cast<void*>(&arg)); return arg.sizes; } @@ -358,10 +358,10 @@ QList<QSize> QIconEngine::availableSizes(QIcon::Mode mode, QIcon::State state) c \include qiconengine-virtualhookhelper.qdocinc */ -QString QIconEngine::iconName() const +QString QIconEngine::iconName() { QString name; - const_cast<QIconEngine *>(this)->virtual_hook(QIconEngine::IconNameHook, reinterpret_cast<void*>(&name)); + virtual_hook(QIconEngine::IconNameHook, reinterpret_cast<void*>(&name)); return name; } @@ -372,10 +372,10 @@ QString QIconEngine::iconName() const \include qiconengine-virtualhookhelper.qdocinc */ -bool QIconEngine::isNull() const +bool QIconEngine::isNull() { bool isNull = false; - const_cast<QIconEngine *>(this)->virtual_hook(QIconEngine::IsNullHook, &isNull); + virtual_hook(QIconEngine::IsNullHook, &isNull); return isNull; } diff --git a/src/gui/image/qiconengine.h b/src/gui/image/qiconengine.h index 401c8034eb..00b4e3a19c 100644 --- a/src/gui/image/qiconengine.h +++ b/src/gui/image/qiconengine.h @@ -74,11 +74,11 @@ public: }; virtual QList<QSize> availableSizes(QIcon::Mode mode = QIcon::Normal, - QIcon::State state = QIcon::Off) const; + QIcon::State state = QIcon::Off); - virtual QString iconName() const; - bool isNull() const; // ### Qt6 make virtual - QPixmap scaledPixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale); // ### Qt6 make virtual + virtual QString iconName(); + virtual bool isNull(); + virtual QPixmap scaledPixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale); struct ScaledPixmapArgument { @@ -89,7 +89,6 @@ public: QPixmap pixmap; }; - // ### Qt6: move content to proper virtual functions virtual void virtual_hook(int id, void *data); protected: |