Merge lp:~alan-griffiths/miral/rewire-SurfaceObserver-notifySurfaceModifications into lp:miral

Proposed by Alan Griffiths on 2016-10-31
Status: Merged
Approved by: Gerry Boland on 2016-11-01
Approved revision: 427
Merged at revision: 427
Proposed branch: lp:~alan-griffiths/miral/rewire-SurfaceObserver-notifySurfaceModifications
Merge into: lp:miral
Diff against target: 157 lines (+43/-32)
4 files modified
miral-qt/src/modules/Unity/Application/mirsurface.cpp (+6/-0)
miral-qt/src/platforms/mirserver/surfaceobserver.cpp (+28/-27)
miral-qt/src/platforms/mirserver/surfaceobserver.h (+3/-5)
miral-qt/src/platforms/mirserver/windowmanagementpolicy.cpp (+6/-0)
To merge this branch: bzr merge lp:~alan-griffiths/miral/rewire-SurfaceObserver-notifySurfaceModifications
Reviewer Review Type Date Requested Status
Gerry Boland Approve on 2016-11-01
Daniel d'Andrada (community) 2016-10-31 Approve on 2016-10-31
Review via email: mp+309668@code.launchpad.net

Commit Message

[miral-qt] SurfaceObserver::notifySurfaceModifications() got disconnected, reconnect it.

To post a comment you must log in.
Daniel d'Andrada (dandrader) wrote :

It will remain unused until we bring back the code that used those SurfaceObserver signals in qtmir::MirSurface (see lp:qtmir).

In any case, that's still one step in the right direction.

Could you at least add a TODO in qtmir::MirSurface constructor so we don't forget about it?

review: Approve
427. By Alan Griffiths on 2016-10-31

A bit more missing "wire"

Alan Griffiths (alan-griffiths) wrote :

> It will remain unused until we bring back the code that used those
> SurfaceObserver signals in qtmir::MirSurface (see lp:qtmir).
>
> In any case, that's still one step in the right direction.
>
> Could you at least add a TODO in qtmir::MirSurface constructor so we don't
> forget about it?

How's that?

Gerry Boland (gerboland) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'miral-qt/src/modules/Unity/Application/mirsurface.cpp'
2--- miral-qt/src/modules/Unity/Application/mirsurface.cpp 2016-10-12 15:49:08 +0000
3+++ miral-qt/src/modules/Unity/Application/mirsurface.cpp 2016-10-31 13:54:51 +0000
4@@ -98,6 +98,12 @@
5 connect(m_surfaceObserver.get(), &SurfaceObserver::attributeChanged, this, &MirSurface::onAttributeChanged);
6 connect(m_surfaceObserver.get(), &SurfaceObserver::nameChanged, this, &MirSurface::nameChanged);
7 connect(m_surfaceObserver.get(), &SurfaceObserver::cursorChanged, this, &MirSurface::setCursor);
8+ connect(m_surfaceObserver.get(), &SurfaceObserver::minimumWidthChanged, this, &MirSurface::minimumWidth);
9+ connect(m_surfaceObserver.get(), &SurfaceObserver::minimumHeightChanged, this, &MirSurface::minimumHeight);
10+ connect(m_surfaceObserver.get(), &SurfaceObserver::maximumWidthChanged, this, &MirSurface::maximumWidth);
11+ connect(m_surfaceObserver.get(), &SurfaceObserver::maximumHeightChanged, this, &MirSurface::maximumHeight);
12+ connect(m_surfaceObserver.get(), &SurfaceObserver::widthIncrementChanged, this, &MirSurface::widthIncrement);
13+ connect(m_surfaceObserver.get(), &SurfaceObserver::heightIncrementChanged, this, &MirSurface::heightIncrement);
14 connect(m_surfaceObserver.get(), &SurfaceObserver::shellChromeChanged, this, [&](MirShellChrome shell_chrome) {
15 setShellChrome(static_cast<Mir::ShellChrome>(shell_chrome));
16 });
17
18=== modified file 'miral-qt/src/platforms/mirserver/surfaceobserver.cpp'
19--- miral-qt/src/platforms/mirserver/surfaceobserver.cpp 2016-09-23 15:56:53 +0000
20+++ miral-qt/src/platforms/mirserver/surfaceobserver.cpp 2016-10-31 13:54:51 +0000
21@@ -20,13 +20,14 @@
22 #include "logging.h"
23
24 #include <QImage>
25+#include <QCursor>
26 #include <QMetaObject>
27 #include <QMutableMapIterator>
28 #include <QMutexLocker>
29 #include <QPixmap>
30
31+#include <miral/window_specification.h>
32 #include <mir/geometry/size.h>
33-#include <mir/shell/surface_specification.h>
34
35
36 namespace {
37@@ -154,35 +155,35 @@
38 Q_EMIT resized(QSize(size.width.as_int(), size.height.as_int()));
39 }
40
41-void SurfaceObserver::notifySurfaceModifications(const mir::shell::SurfaceSpecification &modifications)
42+void SurfaceObserver::notifySurfaceModifications(const miral::WindowSpecification &modifications)
43 {
44- if (modifications.min_width.is_set()) {
45- Q_EMIT minimumWidthChanged(modifications.min_width.value().as_int());
46- }
47- if (modifications.min_height.is_set()) {
48- Q_EMIT minimumHeightChanged(modifications.min_height.value().as_int());
49- }
50- if (modifications.max_width.is_set()) {
51- Q_EMIT maximumWidthChanged(modifications.max_width.value().as_int());
52- }
53- if (modifications.max_height.is_set()) {
54- Q_EMIT maximumHeightChanged(modifications.max_height.value().as_int());
55- }
56- if (modifications.width_inc.is_set()) {
57- Q_EMIT widthIncrementChanged(modifications.width_inc.value().as_int());
58- }
59- if (modifications.height_inc.is_set()) {
60- Q_EMIT heightIncrementChanged(modifications.height_inc.value().as_int());
61- }
62- if (modifications.shell_chrome.is_set()) {
63- Q_EMIT shellChromeChanged(modifications.shell_chrome.value());
64- }
65- if (modifications.input_shape.is_set()) {
66- QRect qRect = calculateBoundingRect(modifications.input_shape.value());
67+ if (modifications.min_width().is_set()) {
68+ Q_EMIT minimumWidthChanged(modifications.min_width().value().as_int());
69+ }
70+ if (modifications.min_height().is_set()) {
71+ Q_EMIT minimumHeightChanged(modifications.min_height().value().as_int());
72+ }
73+ if (modifications.max_width().is_set()) {
74+ Q_EMIT maximumWidthChanged(modifications.max_width().value().as_int());
75+ }
76+ if (modifications.max_height().is_set()) {
77+ Q_EMIT maximumHeightChanged(modifications.max_height().value().as_int());
78+ }
79+ if (modifications.width_inc().is_set()) {
80+ Q_EMIT widthIncrementChanged(modifications.width_inc().value().as_int());
81+ }
82+ if (modifications.height_inc().is_set()) {
83+ Q_EMIT heightIncrementChanged(modifications.height_inc().value().as_int());
84+ }
85+ if (modifications.shell_chrome().is_set()) {
86+ Q_EMIT shellChromeChanged(modifications.shell_chrome().value());
87+ }
88+ if (modifications.input_shape().is_set()) {
89+ QRect qRect = calculateBoundingRect(modifications.input_shape().value());
90 Q_EMIT inputBoundsChanged(qRect);
91 }
92- if (modifications.confine_pointer.is_set()) {
93- Q_EMIT confinesMousePointerChanged(modifications.confine_pointer.value() == mir_pointer_confined_to_surface);
94+ if (modifications.confine_pointer().is_set()) {
95+ Q_EMIT confinesMousePointerChanged(modifications.confine_pointer().value() == mir_pointer_confined_to_surface);
96 }
97 }
98
99
100=== modified file 'miral-qt/src/platforms/mirserver/surfaceobserver.h'
101--- miral-qt/src/platforms/mirserver/surfaceobserver.h 2016-09-23 15:56:53 +0000
102+++ miral-qt/src/platforms/mirserver/surfaceobserver.h 2016-10-31 13:54:51 +0000
103@@ -18,7 +18,6 @@
104 #define SESSIONOBSERVER_H
105
106 #include <QByteArray>
107-#include <QCursor>
108 #include <QObject>
109 #include <QMap>
110 #include <QMutex>
111@@ -31,11 +30,10 @@
112 namespace scene {
113 class Surface;
114 }
115- namespace shell {
116- struct SurfaceSpecification;
117- }
118 }
119
120+namespace miral { class WindowSpecification; }
121+
122 class SurfaceObserver : public QObject, public mir::scene::SurfaceObserver
123 {
124 Q_OBJECT
125@@ -69,7 +67,7 @@
126 void placed_relative(mir::geometry::Rectangle const& placement) override;
127 #endif
128
129- void notifySurfaceModifications(const mir::shell::SurfaceSpecification&);
130+ void notifySurfaceModifications(const miral::WindowSpecification&);
131
132 static SurfaceObserver *observerForSurface(const mir::scene::Surface *surface);
133 static void registerObserverForSurface(SurfaceObserver *observer, const mir::scene::Surface *surface);
134
135=== modified file 'miral-qt/src/platforms/mirserver/windowmanagementpolicy.cpp'
136--- miral-qt/src/platforms/mirserver/windowmanagementpolicy.cpp 2016-10-06 20:56:04 +0000
137+++ miral-qt/src/platforms/mirserver/windowmanagementpolicy.cpp 2016-10-31 13:54:51 +0000
138@@ -17,6 +17,7 @@
139 #include "windowmanagementpolicy.h"
140
141 #include "screensmodel.h"
142+#include "surfaceobserver.h"
143
144 #include "miral/window_manager_tools.h"
145 #include "miral/window_specification.h"
146@@ -81,6 +82,11 @@
147 {
148 qDebug("Window Modified!");
149 CanonicalWindowManagerPolicy::handle_modify_window(windowInfo, modifications);
150+
151+ std::shared_ptr<mir::scene::Surface> surface{windowInfo.window()};
152+ if (SurfaceObserver *observer = SurfaceObserver::observerForSurface(surface.get())) {
153+ observer->notifySurfaceModifications(modifications);
154+ }
155 }
156
157 void WindowManagementPolicy::handle_raise_window(miral::WindowInfo &windowInfo)

Subscribers

People subscribed via source and target branches