From d86ab16a86ec4d6fb92855a3c9913b6b74b6bb0f Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Tue, 30 Aug 2022 14:54:01 +0200 Subject: [PATCH] directfb: Fix compilation The DirectFB QPA plugin has not built since Qt 6, because it used deprecated API which has been removed and private API which has changed. This change updates the handleMouseEvent() and handleWheelEvent() calls with the contents of the deprecated overloads the way they were in Qt 5.15. In addition, it updates usage of GlyphAndSubPixelPosition to default to vertical subpixel position of 0, and adds override qualifiers where necessary. Fixes: QTBUG-105061 Change-Id: Id7516f8e3c0a466d15b754f8e5f6df15a5f9526a Reviewed-by: Volker Hilsheimer --- src/plugins/platforms/directfb/main.cpp | 2 +- .../directfb/qdirectfbbackingstore.h | 8 ++--- .../platforms/directfb/qdirectfbblitter.cpp | 2 +- .../platforms/directfb/qdirectfbblitter.h | 31 ++++++++++++------- .../platforms/directfb/qdirectfbcursor.h | 2 +- .../platforms/directfb/qdirectfbinput.cpp | 11 ++++--- .../platforms/directfb/qdirectfbinput.h | 2 +- .../platforms/directfb/qdirectfbintegration.h | 18 +++++------ .../platforms/directfb/qdirectfbscreen.h | 10 +++--- .../platforms/directfb/qdirectfbwindow.h | 20 ++++++------ 10 files changed, 59 insertions(+), 47 deletions(-) diff --git a/src/plugins/platforms/directfb/main.cpp b/src/plugins/platforms/directfb/main.cpp index 02cceeb4874..46186961545 100644 --- a/src/plugins/platforms/directfb/main.cpp +++ b/src/plugins/platforms/directfb/main.cpp @@ -24,7 +24,7 @@ class QDirectFbIntegrationPlugin : public QPlatformIntegrationPlugin Q_OBJECT Q_PLUGIN_METADATA(IID QPlatformIntegrationFactoryInterface_iid FILE "directfb.json") public: - QPlatformIntegration *create(const QString&, const QStringList&); + QPlatformIntegration *create(const QString&, const QStringList&) override; }; QPlatformIntegration * QDirectFbIntegrationPlugin::create(const QString& system, const QStringList& paramList) diff --git a/src/plugins/platforms/directfb/qdirectfbbackingstore.h b/src/plugins/platforms/directfb/qdirectfbbackingstore.h index c51f29271d1..625b672a401 100644 --- a/src/plugins/platforms/directfb/qdirectfbbackingstore.h +++ b/src/plugins/platforms/directfb/qdirectfbbackingstore.h @@ -18,10 +18,10 @@ class QDirectFbBackingStore : public QPlatformBackingStore public: QDirectFbBackingStore(QWindow *window); - QPaintDevice *paintDevice(); - void flush(QWindow *window, const QRegion ®ion, const QPoint &offset); - void resize (const QSize &size, const QRegion &staticContents); - bool scroll(const QRegion &area, int dx, int dy); + QPaintDevice *paintDevice() override; + void flush(QWindow *window, const QRegion ®ion, const QPoint &offset) override; + void resize (const QSize &size, const QRegion &staticContents) override; + bool scroll(const QRegion &area, int dx, int dy) override; QImage toImage() const override; diff --git a/src/plugins/platforms/directfb/qdirectfbblitter.cpp b/src/plugins/platforms/directfb/qdirectfbblitter.cpp index 0a110da7984..aac0e3d800c 100644 --- a/src/plugins/platforms/directfb/qdirectfbblitter.cpp +++ b/src/plugins/platforms/directfb/qdirectfbblitter.cpp @@ -216,7 +216,7 @@ bool QDirectFbBlitter::drawCachedGlyphs(const QPaintEngineState *state, QFontEng for (int i=0; isubPixelPositionForX(positions[i].x); - QTextureGlyphCache::GlyphAndSubPixelPosition glyph(glyphs[i], subPixelPosition); + QTextureGlyphCache::GlyphAndSubPixelPosition glyph(glyphs[i], QFixedPoint(subPixelPosition, 0)); const QTextureGlyphCache::Coord &c = cache->coords[glyph]; if (c.isNull()) continue; diff --git a/src/plugins/platforms/directfb/qdirectfbblitter.h b/src/plugins/platforms/directfb/qdirectfbblitter.h index 591021061cc..6183859613a 100644 --- a/src/plugins/platforms/directfb/qdirectfbblitter.h +++ b/src/plugins/platforms/directfb/qdirectfbblitter.h @@ -19,11 +19,20 @@ public: QDirectFbBlitter(const QSize &size, bool alpha); virtual ~QDirectFbBlitter(); - virtual void fillRect(const QRectF &rect, const QColor &color); - virtual void drawPixmap(const QRectF &rect, const QPixmap &pixmap, const QRectF &subrect); - void alphaFillRect(const QRectF &rect, const QColor &color, QPainter::CompositionMode cmode); - void drawPixmapOpacity(const QRectF &rect, const QPixmap &pixmap, const QRectF &subrect, QPainter::CompositionMode cmode, qreal opacity); - virtual bool drawCachedGlyphs(const QPaintEngineState *state, QFontEngine::GlyphFormat glyphFormat, int numGlyphs, const glyph_t *glyphs, const QFixedPoint *positions, QFontEngine *fontEngine); + void fillRect(const QRectF &rect, const QColor &color) override; + void drawPixmap(const QRectF &rect, const QPixmap &pixmap, const QRectF &subrect) override; + void alphaFillRect(const QRectF &rect, const QColor &color, QPainter::CompositionMode cmode) override; + void drawPixmapOpacity(const QRectF &rect, + const QPixmap &pixmap, + const QRectF &subrect, + QPainter::CompositionMode cmode, + qreal opacity) override; + bool drawCachedGlyphs(const QPaintEngineState *state, + QFontEngine::GlyphFormat glyphFormat, + int numGlyphs, + const glyph_t *glyphs, + const QFixedPoint *positions, + QFontEngine *fontEngine) override; IDirectFBSurface *dfbSurface() const; @@ -32,8 +41,8 @@ public: static DFBSurfacePixelFormat selectPixmapFormat(bool withAlpha); protected: - virtual QImage *doLock(); - virtual void doUnlock(); + QImage *doLock() override; + void doUnlock() override; QDirectFBPointer m_surface; QImage m_image; @@ -50,12 +59,12 @@ private: class QDirectFbBlitterPlatformPixmap : public QBlittablePlatformPixmap { public: - QBlittable *createBlittable(const QSize &size, bool alpha) const; + QBlittable *createBlittable(const QSize &size, bool alpha) const override; QDirectFbBlitter *dfbBlitter() const; - virtual bool fromFile(const QString &filename, const char *format, - Qt::ImageConversionFlags flags); + bool fromFile(const QString &filename, const char *format, + Qt::ImageConversionFlags flags) override; private: bool fromDataBufferDescription(const DFBDataBufferDescription &); @@ -83,7 +92,7 @@ public: : QImageTextureGlyphCache(format, matrix) {} - virtual void resizeTextureData(int width, int height); + void resizeTextureData(int width, int height) override; IDirectFBSurface *sourceSurface(); diff --git a/src/plugins/platforms/directfb/qdirectfbcursor.h b/src/plugins/platforms/directfb/qdirectfbcursor.h index 9a480fc8f86..21a8f4353d9 100644 --- a/src/plugins/platforms/directfb/qdirectfbcursor.h +++ b/src/plugins/platforms/directfb/qdirectfbcursor.h @@ -19,7 +19,7 @@ class QDirectFBCursor : public QPlatformCursor public: QDirectFBCursor(QPlatformScreen *screen); #ifndef QT_NO_CURSOR - void changeCursor(QCursor *cursor, QWindow *window); + void changeCursor(QCursor *cursor, QWindow *window) override; #endif private: diff --git a/src/plugins/platforms/directfb/qdirectfbinput.cpp b/src/plugins/platforms/directfb/qdirectfbinput.cpp index a62ff9882c5..516dc1e9d8a 100644 --- a/src/plugins/platforms/directfb/qdirectfbinput.cpp +++ b/src/plugins/platforms/directfb/qdirectfbinput.cpp @@ -126,7 +126,7 @@ void QDirectFbInput::handleMouseEvents(const DFBEvent &event) long timestamp = (event.window.timestamp.tv_sec*1000) + (event.window.timestamp.tv_usec/1000); QWindow *tlw = m_tlwMap.value(event.window.window_id); - QWindowSystemInterface::handleMouseEvent(tlw, timestamp, p, globalPos, buttons); + QWindowSystemInterface::handleMouseEvent(tlw, timestamp, p, globalPos, buttons, Qt::NoButton, QEvent::None); } void QDirectFbInput::handleWheelEvent(const DFBEvent &event) @@ -135,9 +135,12 @@ void QDirectFbInput::handleWheelEvent(const DFBEvent &event) QPoint globalPos(event.window.cx, event.window.cy); long timestamp = (event.window.timestamp.tv_sec*1000) + (event.window.timestamp.tv_usec/1000); QWindow *tlw = m_tlwMap.value(event.window.window_id); - QWindowSystemInterface::handleWheelEvent(tlw, timestamp, p, globalPos, - event.window.step*120, - Qt::Vertical); + QWindowSystemInterface::handleWheelEvent(tlw, + timestamp, + p, + globalPos, + QPoint(), + QPoint(0, event.window.step*120)); } void QDirectFbInput::handleKeyEvents(const DFBEvent &event) diff --git a/src/plugins/platforms/directfb/qdirectfbinput.h b/src/plugins/platforms/directfb/qdirectfbinput.h index 5496f537a2d..02175abc7bb 100644 --- a/src/plugins/platforms/directfb/qdirectfbinput.h +++ b/src/plugins/platforms/directfb/qdirectfbinput.h @@ -26,7 +26,7 @@ public: void stopInputEventLoop(); protected: - void run(); + void run() override; private: void handleEvents(); diff --git a/src/plugins/platforms/directfb/qdirectfbintegration.h b/src/plugins/platforms/directfb/qdirectfbintegration.h index aa369d7c05b..8dd2a4516aa 100644 --- a/src/plugins/platforms/directfb/qdirectfbintegration.h +++ b/src/plugins/platforms/directfb/qdirectfbintegration.h @@ -25,16 +25,16 @@ public: void connectToDirectFb(); - bool hasCapability(Capability cap) const; - QPlatformPixmap *createPlatformPixmap(QPlatformPixmap::PixelType type) const; - QPlatformWindow *createPlatformWindow(QWindow *window) const; - QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const; - QAbstractEventDispatcher *createEventDispatcher() const; + bool hasCapability(Capability cap) const override; + QPlatformPixmap *createPlatformPixmap(QPlatformPixmap::PixelType type) const override; + QPlatformWindow *createPlatformWindow(QWindow *window) const override; + QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const override; + QAbstractEventDispatcher *createEventDispatcher() const override; - QPlatformFontDatabase *fontDatabase() const; - QPlatformServices *services() const; - QPlatformInputContext *inputContext() const { return m_inputContext; } - QPlatformNativeInterface *nativeInterface() const; + QPlatformFontDatabase *fontDatabase() const override; + QPlatformServices *services() const override; + QPlatformInputContext *inputContext() const override { return m_inputContext; } + QPlatformNativeInterface *nativeInterface() const override; protected: virtual void initializeDirectFB(); diff --git a/src/plugins/platforms/directfb/qdirectfbscreen.h b/src/plugins/platforms/directfb/qdirectfbscreen.h index a4f2e9adb16..cbcb6a55da6 100644 --- a/src/plugins/platforms/directfb/qdirectfbscreen.h +++ b/src/plugins/platforms/directfb/qdirectfbscreen.h @@ -19,11 +19,11 @@ class QDirectFbScreen : public QPlatformScreen public: QDirectFbScreen(int display); - QRect geometry() const { return m_geometry; } - int depth() const { return m_depth; } - QImage::Format format() const { return m_format; } - QSizeF physicalSize() const { return m_physicalSize; } - QPlatformCursor *cursor() const { return m_cursor.data(); } + QRect geometry() const override { return m_geometry; } + int depth() const override { return m_depth; } + QImage::Format format() const override { return m_format; } + QSizeF physicalSize() const override { return m_physicalSize; } + QPlatformCursor *cursor() const override { return m_cursor.data(); } // DirectFb helpers IDirectFBDisplayLayer *dfbLayer() const; diff --git a/src/plugins/platforms/directfb/qdirectfbwindow.h b/src/plugins/platforms/directfb/qdirectfbwindow.h index 6413d918609..f05038d8cab 100644 --- a/src/plugins/platforms/directfb/qdirectfbwindow.h +++ b/src/plugins/platforms/directfb/qdirectfbwindow.h @@ -15,19 +15,19 @@ class QDirectFbWindow : public QPlatformWindow { public: QDirectFbWindow(QWindow *tlw, QDirectFbInput *inputhandler); - ~QDirectFbWindow(); + ~QDirectFbWindow() override; - void setGeometry(const QRect &rect); - void setOpacity(qreal level); + void setGeometry(const QRect &rect) override; + void setOpacity(qreal level) override; - void setVisible(bool visible); + void setVisible(bool visible) override; - void setWindowFlags(Qt::WindowFlags flags); - bool setKeyboardGrabEnabled(bool grab); - bool setMouseGrabEnabled(bool grab); - void raise(); - void lower(); - WId winId() const; + void setWindowFlags(Qt::WindowFlags flags) override; + bool setKeyboardGrabEnabled(bool grab) override; + bool setMouseGrabEnabled(bool grab) override; + void raise() override; + void lower() override; + WId winId() const override; virtual void createDirectFBWindow(); IDirectFBWindow *dfbWindow() const;