Merge lp:~albaguirre/qtubuntu/migrate-to-papi3 into lp:qtubuntu

Proposed by Alberto Aguirre
Status: Merged
Approved by: Daniel d'Andrada
Approved revision: 266
Merged at revision: 268
Proposed branch: lp:~albaguirre/qtubuntu/migrate-to-papi3
Merge into: lp:qtubuntu
Diff against target: 197 lines (+47/-22)
6 files modified
debian/control (+2/-2)
src/ubuntumirclient/integration.cpp (+1/-1)
src/ubuntumirclient/integration.h (+0/-4)
src/ubuntumirclient/screen.cpp (+38/-12)
src/ubuntumirclient/screen.h (+3/-1)
src/ubuntumirclient/window.cpp (+3/-2)
To merge this branch: bzr merge lp:~albaguirre/qtubuntu/migrate-to-papi3
Reviewer Review Type Date Requested Status
Daniel d'Andrada (community) Approve
Andreas Pokorny (community) Approve
Kevin DuBois (community) Approve
PS Jenkins bot continuous-integration Approve
Review via email: mp+262746@code.launchpad.net

Commit message

Migrate to platform-api 3

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
264. By Alberto Aguirre

merge lp:qtubuntu

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
265. By Alberto Aguirre

Use mirclient api directly to obtain eglNativeDisplay and display mode resolution.

ua_ui_display_xxx apis no longer exist in platform-api 3

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
266. By Alberto Aguirre

Cleanup usage of non-existant platform-api headers and types.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Kevin DuBois (kdub) wrote :

lgtm

review: Approve
Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

looks reasonable

review: Approve
Revision history for this message
Daniel d'Andrada (dandrader) wrote :

looks ok. works fine.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/control'
2--- debian/control 2015-06-17 13:46:39 +0000
3+++ debian/control 2015-06-24 17:21:38 +0000
4@@ -41,7 +41,7 @@
5 ${shlibs:Depends},
6 libqt5sensors5,
7 qtubuntu-sensors,
8- ubuntu-application-api2-touch,
9+ ubuntu-application-api3-touch,
10 Description: Qt plugins for Ubuntu Platform API (mobile)
11 QtUbuntu is a set of Qt5 components for the Ubuntu Platform API. It contains a
12 QPA (Qt Platform Abstraction) plugin based on the Ubuntu Platform API and a
13@@ -64,7 +64,7 @@
14 ${shlibs:Depends},
15 libqt5sensors5,
16 qtubuntu-sensors,
17- ubuntu-application-api2-desktop,
18+ ubuntu-application-api3-desktop,
19 Description: Qt plugins for Ubuntu Platform API (desktop)
20 QtUbuntu is a set of Qt5 components for the Ubuntu Platform API. It contains a
21 QPA (Qt Platform Abstraction) plugin based on the Ubuntu Platform API and a
22
23=== modified file 'src/ubuntumirclient/integration.cpp'
24--- src/ubuntumirclient/integration.cpp 2015-02-04 16:14:43 +0000
25+++ src/ubuntumirclient/integration.cpp 2015-06-24 17:21:38 +0000
26@@ -80,7 +80,7 @@
27 "rejected the incoming connection, so check its log file");
28
29 // Create default screen.
30- mScreen = new UbuntuScreen;
31+ mScreen = new UbuntuScreen(u_application_instance_get_mir_connection(mInstance));
32 screenAdded(mScreen);
33
34 // Initialize input.
35
36=== modified file 'src/ubuntumirclient/integration.h'
37--- src/ubuntumirclient/integration.h 2014-09-22 17:29:40 +0000
38+++ src/ubuntumirclient/integration.h 2015-06-24 17:21:38 +0000
39@@ -25,8 +25,6 @@
40 // platform-api
41 #include <ubuntu/application/description.h>
42 #include <ubuntu/application/instance.h>
43-#include <ubuntu/application/ui/options.h>
44-#include <ubuntu/application/ui/session.h>
45
46 class UbuntuClipboard;
47 class UbuntuInput;
48@@ -75,8 +73,6 @@
49 UApplicationOptions* mOptions;
50 UApplicationDescription* mDesc;
51 UApplicationInstance* mInstance;
52- UAUiSessionProperties* mProps;
53- UAUiSession* mSession;
54 };
55
56 #endif // UBUNTU_CLIENT_INTEGRATION_H
57
58=== modified file 'src/ubuntumirclient/screen.cpp'
59--- src/ubuntumirclient/screen.cpp 2015-03-19 16:22:05 +0000
60+++ src/ubuntumirclient/screen.cpp 2015-06-24 17:21:38 +0000
61@@ -14,6 +14,8 @@
62 * along with this program. If not, see <http://www.gnu.org/licenses/>.
63 */
64
65+#include <mir_toolkit/mir_client_library.h>
66+
67 // Qt
68 #include <QCoreApplication>
69 #include <QtCore/qmath.h>
70@@ -27,9 +29,7 @@
71 #include "logging.h"
72 #include "orientationchangeevent_p.h"
73
74-// platform-api
75-#include <ubuntu/application/ui/display.h>
76-#include <ubuntu/application/ui/options.h>
77+#include "memory"
78
79 static const int kSwapInterval = 1;
80
81@@ -104,8 +104,28 @@
82 const QEvent::Type OrientationChangeEvent::mType =
83 static_cast<QEvent::Type>(QEvent::registerEventType());
84
85-
86-UbuntuScreen::UbuntuScreen()
87+static const MirDisplayOutput *find_active_output(
88+ const MirDisplayConfiguration *conf)
89+{
90+ const MirDisplayOutput *output = NULL;
91+ for (uint32_t d = 0; d < conf->num_outputs; d++)
92+ {
93+ const MirDisplayOutput *out = conf->outputs + d;
94+
95+ if (out->used &&
96+ out->connected &&
97+ out->num_modes &&
98+ out->current_mode < out->num_modes)
99+ {
100+ output = out;
101+ break;
102+ }
103+ }
104+
105+ return output;
106+}
107+
108+UbuntuScreen::UbuntuScreen(MirConnection *connection)
109 : mFormat(QImage::Format_RGB32)
110 , mDepth(32)
111 , mSurfaceFormat()
112@@ -115,10 +135,8 @@
113 // Initialize EGL.
114 ASSERT(eglBindAPI(EGL_OPENGL_ES_API) == EGL_TRUE);
115
116- UAUiDisplay* u_display = ua_ui_display_new_with_index(0);
117- mEglNativeDisplay = ua_ui_display_get_native_type(u_display);
118+ mEglNativeDisplay = mir_connection_get_egl_native_display(connection);
119 ASSERT((mEglDisplay = eglGetDisplay(mEglNativeDisplay)) != EGL_NO_DISPLAY);
120- ua_ui_display_destroy(u_display);
121 ASSERT(eglInitialize(mEglDisplay, nullptr, nullptr) == EGL_TRUE);
122
123 // Configure EGL buffers format.
124@@ -156,12 +174,20 @@
125 eglSwapInterval(mEglDisplay, swapInterval);
126
127 // Get screen resolution.
128- UAUiDisplay* display = ua_ui_display_new_with_index(0);
129- const int kScreenWidth = ua_ui_display_query_horizontal_res(display);
130- const int kScreenHeight = ua_ui_display_query_vertical_res(display);
131+ auto configDeleter = [](MirDisplayConfiguration *config) { mir_display_config_destroy(config); };
132+ using configUp = std::unique_ptr<MirDisplayConfiguration, decltype(configDeleter)>;
133+ configUp displayConfig(mir_connection_create_display_config(connection), configDeleter);
134+ ASSERT(displayConfig != nullptr);
135+
136+ auto const displayOutput = find_active_output(displayConfig.get());
137+ ASSERT(displayOutput != nullptr);
138+
139+ const MirDisplayMode *mode = &displayOutput->modes[displayOutput->current_mode];
140+ const int kScreenWidth = mode->horizontal_resolution;
141+ const int kScreenHeight = mode->vertical_resolution;
142 DASSERT(kScreenWidth > 0 && kScreenHeight > 0);
143+
144 DLOG("ubuntumirclient: screen resolution: %dx%d", kScreenWidth, kScreenHeight);
145- ua_ui_display_destroy(display);
146
147 mGeometry = QRect(0, 0, kScreenWidth, kScreenHeight);
148
149
150=== modified file 'src/ubuntumirclient/screen.h'
151--- src/ubuntumirclient/screen.h 2015-03-19 16:22:05 +0000
152+++ src/ubuntumirclient/screen.h 2015-06-24 17:21:38 +0000
153@@ -21,11 +21,13 @@
154 #include <QSurfaceFormat>
155 #include <EGL/egl.h>
156
157+struct MirConnection;
158+
159 class UbuntuScreen : public QObject, public QPlatformScreen
160 {
161 Q_OBJECT
162 public:
163- UbuntuScreen();
164+ UbuntuScreen(MirConnection *connection);
165 virtual ~UbuntuScreen();
166
167 // QPlatformScreen methods.
168
169=== modified file 'src/ubuntumirclient/window.cpp'
170--- src/ubuntumirclient/window.cpp 2015-06-02 19:31:40 +0000
171+++ src/ubuntumirclient/window.cpp 2015-06-24 17:21:38 +0000
172@@ -31,7 +31,6 @@
173
174 // Platform API
175 #include <ubuntu/application/instance.h>
176-#include <ubuntu/application/ui/window.h>
177
178 #include <EGL/egl.h>
179
180@@ -212,6 +211,8 @@
181 {
182 DLOG("UbuntuWindow::createWindow (this=%p)", this);
183
184+ // FIXME: remove this remnant of an old platform-api enum - needs ubuntu-keyboard update
185+ const int SCREEN_KEYBOARD_ROLE = 7;
186 // Get surface role and flags.
187 QVariant roleVariant = window()->property("role");
188 int role = roleVariant.isValid() ? roleVariant.toUInt() : 1; // 1 is the default role for apps.
189@@ -260,7 +261,7 @@
190 geometry.x(), geometry.y(), geometry.width(), geometry.height(), title.data());
191
192 MirSurfaceSpec *spec;
193- if (role == U_ON_SCREEN_KEYBOARD_ROLE)
194+ if (role == SCREEN_KEYBOARD_ROLE)
195 {
196 spec = mir_connection_create_spec_for_input_method(d->connection, geometry.width(),
197 geometry.height(), mir_choose_default_pixel_format(d->connection));

Subscribers

People subscribed via source and target branches