Merge lp:~mzanetti/unity8/onthefly-debugging into lp:unity8
- onthefly-debugging
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Gerry Boland |
Approved revision: | 2545 |
Merged at revision: | 2754 |
Proposed branch: | lp:~mzanetti/unity8/onthefly-debugging |
Merge into: | lp:unity8 |
Prerequisite: | lp:~unity-team/unity8/installed-qmltests |
Diff against target: |
319 lines (+198/-8) 7 files modified
CODING (+24/-0) src/CMakeLists.txt (+9/-2) src/DebuggingController.cpp (+92/-0) src/DebuggingController.h (+57/-0) src/ShellApplication.cpp (+2/-0) tests/uqmlscene/CMakeLists.txt (+10/-6) tests/uqmlscene/main.cpp (+4/-0) |
To merge this branch: | bzr merge lp:~mzanetti/unity8/onthefly-debugging |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Unity8 CI Bot | continuous-integration | Approve | |
Gerry Boland (community) | Approve | ||
Michał Sawicz | Pending | ||
Lukáš Tinkl | Pending | ||
Nick Dedekind | Pending | ||
Review via email: mp+314013@code.launchpad.net |
This proposal supersedes a proposal from 2016-06-30.
Commit message
Add a D-Bus interface to control some debug facilities on the fly
Description of the change
For testing:
To slow down animations
qdbus com.canonical.
To visualize overdraw (can also be clip, batches, changes)
qdbus com.canonical.
qdbus com.canonical.
Gerry Boland (gerboland) wrote : Posted in a previous version of this proposal | # |
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2527
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Lukáš Tinkl (lukas-kde) wrote : Posted in a previous version of this proposal | # |
Can we please put some short info how to use this in e.g. README.debugging in bzr; together with other useful tips/pointers? Wiki pages tend to get nuked/moved around.
Nick Dedekind (nick-dedekind) wrote : Posted in a previous version of this proposal | # |
Getting quite a few warnings compiling.
In file included from /usr/include/
/usr/include/
};
Michael Zanetti (mzanetti) wrote : Posted in a previous version of this proposal | # |
> Getting quite a few warnings compiling.
fixed
Nick Dedekind (nick-dedekind) wrote : Posted in a previous version of this proposal | # |
> > Getting quite a few warnings compiling.
>
> fixed
ta. all good now.
Michał Sawicz (saviq) wrote : Posted in a previous version of this proposal | # |
Filed bug #1608439 because this crashed on my desktop.
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2532
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Albert Astals Cid (aacid) wrote : Posted in a previous version of this proposal | # |
Text conflict in debian/rules
1 conflicts encountered.
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:2533
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2535
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2535
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:2536
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:2537
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:2539
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2540
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:2541
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Gerry Boland (gerboland) wrote : Posted in a previous version of this proposal | # |
I looked a bit more into the renderer failing to redraw after enabling the visualization. I found a solution, see lp:~gerboland/+junk/qml-visualizer-plugin/
Albert Astals Cid (aacid) wrote : Posted in a previous version of this proposal | # |
Text conflict in tests/uqmlscene
1 conflicts encountered.
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2542
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2543
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2544
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Gerry Boland (gerboland) wrote : Posted in a previous version of this proposal | # |
Yep that does the trick!
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2544
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:2544
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:2545
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Preview Diff
1 | === modified file 'CODING' |
2 | --- CODING 2016-08-01 15:10:53 +0000 |
3 | +++ CODING 2017-01-03 14:03:18 +0000 |
4 | @@ -162,3 +162,27 @@ |
5 | or run them all with |
6 | |
7 | $ PYTHONPATH=../tests/autopilot autopilot3 run unity8 |
8 | + |
9 | +Debugging techniques |
10 | +==================== |
11 | + |
12 | +Unity8 heavily uses Qt and with that Qt debugging techniques mostly apply in the |
13 | +same fashion. There are, however, some additional unity8-specific notes: |
14 | + |
15 | +* Enable/disable Qt scenegraph visualizer on the fly: |
16 | + |
17 | + $ qdbus com.canonical.Unity8.Debugging /com/canonical/Unity8/Debugging SetSceneGraphVisualizer <mode> |
18 | + |
19 | + This is equivalent to exporting QSG_VISUALIZE=<mode> before running unity8, except it does it on the |
20 | + fly. |
21 | + |
22 | +* Toggle slow animations on the fly: |
23 | + |
24 | + $ qdbus com.canonical.Unity8.Debugging /com/canonical/Unity8/Debugging SetSlowAnimations <true|false> |
25 | + |
26 | +* Change logging filter rules on the fly: |
27 | + |
28 | + $ qdbus com.canonical.Unity8.Debugging /com/canonical/Unity8/Debugging SetLoggingFilterRules <filter> |
29 | + |
30 | + This is equivalent to exporting QT_LOGGING_RULES or defining them in QT_LOGGING_CONF, except it does |
31 | + it on the fly. |
32 | |
33 | === modified file 'src/CMakeLists.txt' |
34 | --- src/CMakeLists.txt 2016-11-28 09:57:06 +0000 |
35 | +++ src/CMakeLists.txt 2017-01-03 14:03:18 +0000 |
36 | @@ -1,11 +1,18 @@ |
37 | +add_subdirectory(libunity8-private) |
38 | + |
39 | pkg_check_modules(CONNECTIVITY REQUIRED connectivity-qt1) |
40 | |
41 | include_directories( |
42 | SYSTEM |
43 | ${Qt5Gui_PRIVATE_INCLUDE_DIRS} |
44 | + ${Qt5Quick_PRIVATE_INCLUDE_DIRS} |
45 | ${CONNECTIVITY_INCLUDE_DIRS} |
46 | ) |
47 | |
48 | +include_directories( |
49 | + ${libunity8-private_SOURCE_DIR} |
50 | +) |
51 | + |
52 | file(GLOB_RECURSE QML_FILES |
53 | ${CMAKE_SOURCE_DIR}/qml/* |
54 | ${CMAKE_SOURCE_DIR}/tests/*.qml |
55 | @@ -25,6 +32,7 @@ |
56 | ShellView.cpp |
57 | UnityCommandLineParser.cpp |
58 | UnixSignalHandler.cpp |
59 | + DebuggingController.cpp |
60 | ${QML_FILES} # This is to make qml and image files appear in the IDE's project tree |
61 | ) |
62 | |
63 | @@ -39,7 +47,7 @@ |
64 | if (NOT "${ANDROID_PROPERTIES_INCLUDE_DIRS}" STREQUAL "") |
65 | set_target_properties(${SHELL_APP} PROPERTIES INCLUDE_DIRECTORIES ${ANDROID_PROPERTIES_INCLUDE_DIRS}) |
66 | endif() |
67 | -target_link_libraries(${SHELL_APP} ${ANDROID_PROPERTIES_LDFLAGS} UbuntuGestures connectivity-qt1) |
68 | +target_link_libraries(${SHELL_APP} ${ANDROID_PROPERTIES_LDFLAGS} UbuntuGestures connectivity-qt1 unity8-private) |
69 | |
70 | if (ENABLE_TOUCH_EMULATION) |
71 | target_link_libraries(${SHELL_APP} ${MOUSETOUCHADAPTOR_LIBS_LDFLAGS}) |
72 | @@ -52,4 +60,3 @@ |
73 | |
74 | add_subdirectory(Panel) |
75 | add_subdirectory(Dash) |
76 | -add_subdirectory(libunity8-private) |
77 | |
78 | === added file 'src/DebuggingController.cpp' |
79 | --- src/DebuggingController.cpp 1970-01-01 00:00:00 +0000 |
80 | +++ src/DebuggingController.cpp 2017-01-03 14:03:18 +0000 |
81 | @@ -0,0 +1,92 @@ |
82 | +/* |
83 | + * Copyright (C) 2016 - Canonical Ltd. |
84 | + * |
85 | + * This program is free software: you can redistribute it and/or modify it |
86 | + * under the terms of the GNU Lesser General Public License, as |
87 | + * published by the Free Software Foundation; either version 2.1 or 3.0 |
88 | + * of the License. |
89 | + * |
90 | + * This program is distributed in the hope that it will be useful, but |
91 | + * WITHOUT ANY WARRANTY; without even the implied warranties of |
92 | + * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR |
93 | + * PURPOSE. See the applicable version of the GNU Lesser General Public |
94 | + * License for more details. |
95 | + * |
96 | + * You should have received a copy of both the GNU Lesser General Public |
97 | + * License along with this program. If not, see <http://www.gnu.org/licenses/> |
98 | + */ |
99 | + |
100 | +#include "DebuggingController.h" |
101 | + |
102 | +#include <QGuiApplication> |
103 | +#include <QWindow> |
104 | +#include <private/qquickwindow_p.h> |
105 | +#include <private/qabstractanimationjob_p.h> |
106 | +#include <private/qquickitem_p.h> |
107 | +#include <private/qsgrenderer_p.h> |
108 | + |
109 | + |
110 | +class ApplySceneGraphVisualizationJob : public QRunnable |
111 | +{ |
112 | +public: |
113 | + ApplySceneGraphVisualizationJob(QQuickWindow *window, QByteArray renderMode) |
114 | + : m_window(window), m_renderMode(renderMode){} |
115 | + void run() override |
116 | + { |
117 | + qDebug() << "Setting custom render mode to:" << m_renderMode; |
118 | + |
119 | + QQuickWindowPrivate *winPriv = QQuickWindowPrivate::get(m_window); |
120 | + |
121 | + winPriv->customRenderMode = m_renderMode; |
122 | + delete winPriv->renderer; |
123 | + winPriv->renderer = nullptr; |
124 | + |
125 | + QTimer::singleShot(10, m_window, &QQuickWindow::update); // force another frame |
126 | + } |
127 | + |
128 | + QQuickWindow *m_window; |
129 | + QByteArray m_renderMode; |
130 | +}; |
131 | + |
132 | +DebuggingController::DebuggingController(QObject *parent): |
133 | + UnityDBusObject(QStringLiteral("/com/canonical/Unity8/Debugging"), QStringLiteral("com.canonical.Unity8"), true, parent) |
134 | +{ |
135 | +} |
136 | + |
137 | +void DebuggingController::SetSceneGraphVisualizer(const QString &visualizer) |
138 | +{ |
139 | + QByteArray pendingRenderMode; |
140 | + QStringList supportedRenderModes = {"clip", "overdraw", "changes", "batches"}; |
141 | + if (supportedRenderModes.contains(visualizer)) { |
142 | + pendingRenderMode = visualizer.toLatin1(); |
143 | + } |
144 | + |
145 | + Q_FOREACH (QWindow *window, QGuiApplication::allWindows()) { |
146 | + QQuickWindow* qquickWindow = qobject_cast<QQuickWindow*>(window); |
147 | + if (qquickWindow) { |
148 | + |
149 | +#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0) |
150 | + // Qt does some performance optimizations that break custom render modes. |
151 | + // Thus the optimizations are only applied if there is no custom render mode set. |
152 | + // So we need to make the scenegraph recheck whether a custom render mode is set. |
153 | + // We do this by simply recreating the renderer. |
154 | + qquickWindow->scheduleRenderJob(new ApplySceneGraphVisualizationJob(qquickWindow, pendingRenderMode), |
155 | + QQuickWindow::AfterSwapStage); |
156 | +#else |
157 | + QQuickWindowPrivate *winPriv = QQuickWindowPrivate::get(qquickWindow); |
158 | + winPriv->customRenderMode = visualizer.toLatin1(); |
159 | +#endif |
160 | + qquickWindow->update(); |
161 | + } |
162 | + } |
163 | +} |
164 | + |
165 | +void DebuggingController::SetSlowAnimations(bool slowAnimations) |
166 | +{ |
167 | + QUnifiedTimer::instance()->setSlowModeEnabled(slowAnimations); |
168 | +} |
169 | + |
170 | +void DebuggingController::SetLoggingFilterRules(const QString &filterRules) |
171 | +{ |
172 | + QLoggingCategory::setFilterRules(filterRules); |
173 | +} |
174 | |
175 | === added file 'src/DebuggingController.h' |
176 | --- src/DebuggingController.h 1970-01-01 00:00:00 +0000 |
177 | +++ src/DebuggingController.h 2017-01-03 14:03:18 +0000 |
178 | @@ -0,0 +1,57 @@ |
179 | +/* |
180 | + * Copyright (C) 2016 - Canonical Ltd. |
181 | + * |
182 | + * This program is free software: you can redistribute it and/or modify it |
183 | + * under the terms of the GNU Lesser General Public License, as |
184 | + * published by the Free Software Foundation; either version 2.1 or 3.0 |
185 | + * of the License. |
186 | + * |
187 | + * This program is distributed in the hope that it will be useful, but |
188 | + * WITHOUT ANY WARRANTY; without even the implied warranties of |
189 | + * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR |
190 | + * PURPOSE. See the applicable version of the GNU Lesser General Public |
191 | + * License for more details. |
192 | + * |
193 | + * You should have received a copy of both the GNU Lesser General Public |
194 | + * License along with this program. If not, see <http://www.gnu.org/licenses/> |
195 | + */ |
196 | + |
197 | + |
198 | +#ifndef DEBUGGINGCONTROLLER_H |
199 | +#define DEBUGGINGCONTROLLER_H |
200 | + |
201 | +#include <QQmlEngine> |
202 | +#include <QQmlExtensionPlugin> |
203 | +#include <QQuickWindow> |
204 | +#include <QMutex> |
205 | + |
206 | +#include "unitydbusobject.h" |
207 | + |
208 | +class DebuggingController: public UnityDBusObject |
209 | +{ |
210 | + Q_OBJECT |
211 | + Q_CLASSINFO("D-Bus Interface", "com.canonical.Unity8.Debugging") |
212 | + |
213 | +public: |
214 | + DebuggingController(QObject *parent = nullptr); |
215 | + ~DebuggingController() = default; |
216 | + |
217 | +public Q_SLOTS: |
218 | + /** |
219 | + * Set the QSG_VISUALIZE mode. This follows the vlues supported by Qt in |
220 | + * http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html |
221 | + */ |
222 | + Q_SCRIPTABLE void SetSceneGraphVisualizer(const QString &visualizer); |
223 | + |
224 | + /** |
225 | + * Slow down animations for better inspection. |
226 | + */ |
227 | + Q_SCRIPTABLE void SetSlowAnimations(bool slowAnimations); |
228 | + |
229 | + /** |
230 | + * Set the QLoggingCategory filter rules. |
231 | + */ |
232 | + Q_SCRIPTABLE void SetLoggingFilterRules(const QString &filterRules); |
233 | + |
234 | +}; |
235 | +#endif // DEBUGGINGCONTROLLER_H |
236 | |
237 | === modified file 'src/ShellApplication.cpp' |
238 | --- src/ShellApplication.cpp 2016-11-30 13:28:07 +0000 |
239 | +++ src/ShellApplication.cpp 2017-01-03 14:03:18 +0000 |
240 | @@ -30,6 +30,7 @@ |
241 | #include <paths.h> |
242 | #include "CachingNetworkManagerFactory.h" |
243 | #include "UnityCommandLineParser.h" |
244 | +#include "DebuggingController.h" |
245 | |
246 | ShellApplication::ShellApplication(int & argc, char ** argv, bool isMirServer) |
247 | : QGuiApplication(argc, argv) |
248 | @@ -95,6 +96,7 @@ |
249 | } |
250 | #endif |
251 | |
252 | + new DebuggingController(this); |
253 | |
254 | // Some hard-coded policy for now. |
255 | // NB: We don't support more than two screens at the moment |
256 | |
257 | === modified file 'tests/uqmlscene/CMakeLists.txt' |
258 | --- tests/uqmlscene/CMakeLists.txt 2017-01-03 14:03:18 +0000 |
259 | +++ tests/uqmlscene/CMakeLists.txt 2017-01-03 14:03:18 +0000 |
260 | @@ -1,20 +1,23 @@ |
261 | add_executable(uqmlscene |
262 | ${shellapplication_MOC_SRCS} |
263 | main.cpp |
264 | + ${CMAKE_SOURCE_DIR}/src/DebuggingController.cpp |
265 | ) |
266 | |
267 | -qt5_use_modules(uqmlscene Qml Quick Test) |
268 | +qt5_use_modules(uqmlscene Qml Quick Test DBus) |
269 | pkg_check_modules(XCB REQUIRED xcb) |
270 | |
271 | include_directories( |
272 | + SYSTEM |
273 | + ${Qt5Quick_PRIVATE_INCLUDE_DIRS} |
274 | + ${Qt5Gui_PRIVATE_INCLUDE_DIRS} |
275 | +) |
276 | + |
277 | +include_directories( |
278 | ${CMAKE_CURRENT_BINARY_DIR} |
279 | ${CMAKE_SOURCE_DIR}/src |
280 | ${CMAKE_SOURCE_DIR}/libs/UbuntuGestures |
281 | -) |
282 | - |
283 | -include_directories( |
284 | - SYSTEM |
285 | - ${Qt5Gui_PRIVATE_INCLUDE_DIRS} |
286 | + ${libunity8-private_SOURCE_DIR} |
287 | ) |
288 | |
289 | if (NOT "${XCB_INCLUDE_DIRS}" STREQUAL "") |
290 | @@ -26,6 +29,7 @@ |
291 | ${Qt5Quick_LIBRARIES} |
292 | ${XCB_LDFLAGS} |
293 | UbuntuGestures |
294 | + unity8-private |
295 | ) |
296 | |
297 | install(TARGETS uqmlscene |
298 | |
299 | === modified file 'tests/uqmlscene/main.cpp' |
300 | --- tests/uqmlscene/main.cpp 2016-05-26 13:15:35 +0000 |
301 | +++ tests/uqmlscene/main.cpp 2017-01-03 14:03:18 +0000 |
302 | @@ -63,6 +63,8 @@ |
303 | #include <QtCore/QTranslator> |
304 | #include <QtCore/QLibraryInfo> |
305 | |
306 | +#include "DebuggingController.h" |
307 | + |
308 | #ifdef QML_RUNTIME_TESTING |
309 | class RenderStatistics |
310 | { |
311 | @@ -466,6 +468,8 @@ |
312 | |
313 | int exitCode = 0; |
314 | |
315 | + new DebuggingController(&app); |
316 | + |
317 | if (!options.file.isEmpty()) { |
318 | if (!options.versionDetection || checkVersion(options.file)) { |
319 | #ifndef QT_NO_TRANSLATION |
Tested on Krillin, works great!
Code good too.