diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 3 | ||||
-rw-r--r-- | src/gui/kernel/qplatformintegration.cpp | 14 | ||||
-rw-r--r-- | src/gui/kernel/qplatformintegration.h | 5 |
3 files changed, 20 insertions, 2 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 47c20a71fc..3e2b692cd0 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -2840,6 +2840,9 @@ void QGuiApplication::setWindowIcon(const QIcon &icon) if (!QGuiApplicationPrivate::app_icon) QGuiApplicationPrivate::app_icon = new QIcon(); *QGuiApplicationPrivate::app_icon = icon; + if (QGuiApplicationPrivate::platform_integration + && QGuiApplicationPrivate::platform_integration->hasCapability(QPlatformIntegration::ApplicationIcon)) + QGuiApplicationPrivate::platform_integration->setApplicationIcon(icon); if (QGuiApplicationPrivate::is_app_running && !QGuiApplicationPrivate::is_app_closing) QGuiApplicationPrivate::self->notifyWindowIconChanged(); } diff --git a/src/gui/kernel/qplatformintegration.cpp b/src/gui/kernel/qplatformintegration.cpp index f2a92e10df..f917c09f6d 100644 --- a/src/gui/kernel/qplatformintegration.cpp +++ b/src/gui/kernel/qplatformintegration.cpp @@ -231,6 +231,8 @@ QPlatformServices *QPlatformIntegration::services() const implementation for QOpenGLContext::getProcAddress() and support returning a function pointer also for the standard, non-extension functions. This capability is a prerequisite for dynamic OpenGL loading. + + \value ApplicationIcon The platform supports setting the application icon. (since 5.5) */ /*! @@ -544,4 +546,16 @@ QOpenGLContext::OpenGLModuleType QPlatformIntegration::openGLModuleType() } #endif +/*! + \since 5.5 + + Platform integration function for setting the application icon. + + \sa QGuiApplication::setWindowIcon() +*/ +void QPlatformIntegration::setApplicationIcon(const QIcon &icon) const +{ + Q_UNUSED(icon); +} + QT_END_NAMESPACE diff --git a/src/gui/kernel/qplatformintegration.h b/src/gui/kernel/qplatformintegration.h index 34639e6929..473c75a9e0 100644 --- a/src/gui/kernel/qplatformintegration.h +++ b/src/gui/kernel/qplatformintegration.h @@ -90,7 +90,8 @@ public: WindowManagement, SyncState, RasterGLSurface, - AllGLFunctionsQueryable + AllGLFunctionsQueryable, + ApplicationIcon }; virtual ~QPlatformIntegration() { } @@ -169,7 +170,7 @@ public: #ifndef QT_NO_OPENGL virtual QOpenGLContext::OpenGLModuleType openGLModuleType(); #endif - + virtual void setApplicationIcon(const QIcon &icon) const; protected: void screenAdded(QPlatformScreen *screen, bool isPrimary = false); void destroyScreen(QPlatformScreen *screen); |