diff options
author | Johan Klokkhammer Helsing <johan.helsing@qt.io> | 2018-09-14 10:44:36 +0200 |
---|---|---|
committer | Johan Helsing <johan.helsing@qt.io> | 2018-09-17 08:20:08 +0000 |
commit | e3cb1c4e82b1172c7775ea0c8780f4b4e8fb94da (patch) | |
tree | e8b6851686471521a9eb93ebf87de28baa8b671b | |
parent | 371d015798441166bb27e0ee9140037edfcd7c4e (diff) | |
download | qtwayland-e3cb1c4e82b1172c7775ea0c8780f4b4e8fb94da.tar.gz |
Compositor: Use Q_PRIVATE_SLOTs in QWaylandOutput
Change-Id: I25a8feb0919dcccc30d2f23d619e0ba5d4c214ff
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
-rw-r--r-- | src/compositor/compositor_api/qwaylandoutput.cpp | 60 | ||||
-rw-r--r-- | src/compositor/compositor_api/qwaylandoutput.h | 8 | ||||
-rw-r--r-- | 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 17c56cfd..1f34f4ea 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); @@ -953,35 +974,6 @@ void QWaylandOutput::surfaceLeave(QWaylandSurface *surface) /*! * \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 - */ bool QWaylandOutput::event(QEvent *event) { if (event->type() == QEvent::Polish) @@ -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 c7f2973b..31791a3c 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 d8b2c9df..4badd379 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; |