From e3cb1c4e82b1172c7775ea0c8780f4b4e8fb94da Mon Sep 17 00:00:00 2001 From: Johan Klokkhammer Helsing Date: Fri, 14 Sep 2018 10:44:36 +0200 Subject: Compositor: Use Q_PRIVATE_SLOTs in QWaylandOutput Change-Id: I25a8feb0919dcccc30d2f23d619e0ba5d4c214ff Reviewed-by: Simon Hausmann --- src/compositor/compositor_api/qwaylandoutput.cpp | 60 +++++++++++------------- src/compositor/compositor_api/qwaylandoutput.h | 8 ++-- src/compositor/compositor_api/qwaylandoutput_p.h | 3 ++ 3 files changed, 34 insertions(+), 37 deletions(-) diff --git a/src/compositor/compositor_api/qwaylandoutput.cpp b/src/compositor/compositor_api/qwaylandoutput.cpp index 17c56cfdc..1f34f4eac 100644 --- a/src/compositor/compositor_api/qwaylandoutput.cpp +++ b/src/compositor/compositor_api/qwaylandoutput.cpp @@ -124,6 +124,27 @@ void QWaylandOutputPrivate::output_bind_resource(Resource *resource) } } +void QWaylandOutputPrivate::_q_handleMaybeWindowPixelSizeChanged() +{ + if (!window) + return; + + const QSize pixelSize = window->size() * window->devicePixelRatio(); + + if (pixelSize != windowPixelSize) { + windowPixelSize = pixelSize; + handleWindowPixelSizeChanged(); + } +} + +void QWaylandOutputPrivate::_q_handleWindowDestroyed() +{ + Q_Q(QWaylandOutput); + window = nullptr; + emit q->windowChanged(); + emit q->windowDestroyed(); +} + void QWaylandOutputPrivate::sendGeometry(const Resource *resource) { send_geometry(resource->handle, @@ -313,10 +334,10 @@ void QWaylandOutput::initialize() QWaylandCompositorPrivate::get(d->compositor)->addOutput(this); if (d->window) { - QObject::connect(d->window, &QWindow::widthChanged, this, &QWaylandOutput::handleMaybeWindowPixelSizeChanged); - QObject::connect(d->window, &QWindow::heightChanged, this, &QWaylandOutput::handleMaybeWindowPixelSizeChanged); - QObject::connect(d->window, &QWindow::screenChanged, this, &QWaylandOutput::handleMaybeWindowPixelSizeChanged); - QObject::connect(d->window, &QObject::destroyed, this, &QWaylandOutput::handleWindowDestroyed); + QObjectPrivate::connect(d->window, &QWindow::widthChanged, d, &QWaylandOutputPrivate::_q_handleMaybeWindowPixelSizeChanged); + QObjectPrivate::connect(d->window, &QWindow::heightChanged, d, &QWaylandOutputPrivate::_q_handleMaybeWindowPixelSizeChanged); + QObjectPrivate::connect(d->window, &QWindow::screenChanged, d, &QWaylandOutputPrivate::_q_handleMaybeWindowPixelSizeChanged); + QObjectPrivate::connect(d->window, &QObject::destroyed, d, &QWaylandOutputPrivate::_q_handleWindowDestroyed); } d->init(d->compositor->display(), 2); @@ -950,35 +971,6 @@ void QWaylandOutput::surfaceLeave(QWaylandSurface *surface) QWaylandSurfacePrivate::get(surface)->send_leave(clientResource); } -/*! - * \internal - */ -void QWaylandOutput::handleMaybeWindowPixelSizeChanged() -{ - Q_D(QWaylandOutput); - - if (!d->window) - return; - - const QSize pixelSize = d->window->size() * d->window->devicePixelRatio(); - - if (pixelSize != d->windowPixelSize) { - d->windowPixelSize = pixelSize; - d->handleWindowPixelSizeChanged(); - } -} - -/*! - * \internal - */ -void QWaylandOutput::handleWindowDestroyed() -{ - Q_D(QWaylandOutput); - d->window = nullptr; - emit windowChanged(); - emit windowDestroyed(); -} - /*! * \internal */ @@ -990,3 +982,5 @@ bool QWaylandOutput::event(QEvent *event) } QT_END_NAMESPACE + +#include "moc_qwaylandoutput.cpp" diff --git a/src/compositor/compositor_api/qwaylandoutput.h b/src/compositor/compositor_api/qwaylandoutput.h index c7f2973b6..31791a3c1 100644 --- a/src/compositor/compositor_api/qwaylandoutput.h +++ b/src/compositor/compositor_api/qwaylandoutput.h @@ -180,14 +180,14 @@ Q_SIGNALS: void modelChanged(); void windowDestroyed(); -private Q_SLOTS: - void handleMaybeWindowPixelSizeChanged(); - void handleWindowDestroyed(); - protected: bool event(QEvent *event) override; virtual void initialize(); + +private: + Q_PRIVATE_SLOT(d_func(), void _q_handleMaybeWindowPixelSizeChanged()) + Q_PRIVATE_SLOT(d_func(), void _q_handleWindowDestroyed()) }; QT_END_NAMESPACE diff --git a/src/compositor/compositor_api/qwaylandoutput_p.h b/src/compositor/compositor_api/qwaylandoutput_p.h index d8b2c9dfa..4badd3797 100644 --- a/src/compositor/compositor_api/qwaylandoutput_p.h +++ b/src/compositor/compositor_api/qwaylandoutput_p.h @@ -114,6 +114,9 @@ protected: void output_bind_resource(Resource *resource) override; private: + void _q_handleMaybeWindowPixelSizeChanged(); + void _q_handleWindowDestroyed(); + QWaylandCompositor *compositor = nullptr; QWindow *window = nullptr; QString manufacturer; -- cgit v1.2.3