Merge lp:~nick-dedekind/qtmir/desktop_menus.gmenumodel into lp:qtmir

Proposed by Nick Dedekind
Status: Work in progress
Proposed branch: lp:~nick-dedekind/qtmir/desktop_menus.gmenumodel
Merge into: lp:qtmir
Diff against target: 224 lines (+77/-1)
11 files modified
debian/changelog (+7/-0)
debian/control (+1/-1)
src/modules/Unity/Application/mirsurface.cpp (+19/-0)
src/modules/Unity/Application/mirsurface.h (+4/-0)
src/platforms/mirserver/mirwindowmanager.cpp (+15/-0)
src/platforms/mirserver/surfaceobserver.cpp (+5/-0)
src/platforms/mirserver/surfaceobserver.h (+2/-0)
tests/mirserver/WindowManager/stub_surface.cpp (+14/-0)
tests/mirserver/WindowManager/stub_surface.h (+3/-0)
tests/modules/common/fake_mirsurface.h (+3/-0)
tests/modules/common/mock_surface.h (+4/-0)
To merge this branch: bzr merge lp:~nick-dedekind/qtmir/desktop_menus.gmenumodel
Reviewer Review Type Date Requested Status
PS Jenkins bot (community) continuous-integration Needs Fixing
Unity8 CI Bot (community) continuous-integration Needs Fixing
Mir development team Pending
Review via email: mp+282729@code.launchpad.net

Commit message

Desktop Menus

Description of the change

Desktop Menus

To post a comment you must log in.
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

PASSED: Continuous integration, rev:435
https://unity8-jenkins.ubuntu.com/job/lp-qtmir-1-ci/14/
Executed test runs:

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-qtmir-1-ci/14/rebuild

review: Approve (continuous-integration)
436. By Nick Dedekind

updated control

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:436
https://unity8-jenkins.ubuntu.com/job/lp-qtmir-1-ci/15/
Executed test runs:

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-qtmir-1-ci/15/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)

Unmerged revisions

436. By Nick Dedekind

updated control

435. By Nick Dedekind

dbusMenuInfo

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2016-01-04 09:38:12 +0000
3+++ debian/changelog 2016-01-15 12:27:41 +0000
4@@ -1,3 +1,10 @@
5+qtmir (0.4.8-0ubuntu1) UNRELEASED; urgency=medium
6+
7+ [ Nick Dedekind ]
8+ * Implement dbus menu info interface
9+
10+ -- Nick Dedekind <nick.dedekind@canonical.com> Thu, 17 Dec 2015 09:09:07 +0000
11+
12 qtmir (0.4.7+16.04.20160104-0ubuntu1) xenial; urgency=medium
13
14 [ Daniel d'Andrada ]
15
16=== modified file 'debian/control'
17--- debian/control 2015-12-11 13:17:57 +0000
18+++ debian/control 2016-01-15 12:27:41 +0000
19@@ -22,7 +22,7 @@
20 libubuntu-app-launch2-dev,
21 libubuntu-application-api-dev (>= 2.1.0),
22 libudev-dev,
23- libunity-api-dev (>= 7.104),
24+ libunity-api-dev (>= 7.106),
25 liburl-dispatcher1-dev,
26 libxkbcommon-dev,
27 libxrender-dev,
28
29=== modified file 'src/modules/Unity/Application/mirsurface.cpp'
30--- src/modules/Unity/Application/mirsurface.cpp 2015-12-10 13:08:43 +0000
31+++ src/modules/Unity/Application/mirsurface.cpp 2016-01-15 12:27:41 +0000
32@@ -188,6 +188,7 @@
33 connect(observer.get(), &SurfaceObserver::attributeChanged, this, &MirSurface::onAttributeChanged);
34 connect(observer.get(), &SurfaceObserver::nameChanged, this, &MirSurface::nameChanged);
35 connect(observer.get(), &SurfaceObserver::cursorChanged, this, &MirSurface::setCursor);
36+ connect(observer.get(), &SurfaceObserver::dbusMenuInfoChanged, this, &MirSurface::setDbusMenuInfo);
37 observer->setListener(this);
38 }
39
40@@ -747,6 +748,16 @@
41 return m_cursor;
42 }
43
44+QString MirSurface::dbusMenuName() const
45+{
46+ return QString::fromStdString(m_surface->dbus_menu_name());
47+}
48+
49+QString MirSurface::dbusMenuObjectPath() const
50+{
51+ return QString::fromStdString(m_surface->dbus_menu_object_path());
52+}
53+
54 void MirSurface::setCursor(const QCursor &cursor)
55 {
56 DEBUG_MSG << "(" << qtCursorShapeToStr(cursor.shape()) << ")";
57@@ -754,3 +765,11 @@
58 m_cursor = cursor;
59 Q_EMIT cursorChanged(m_cursor);
60 }
61+
62+void MirSurface::setDbusMenuInfo(const QString &dbusName, const QString &objectPath)
63+{
64+ DEBUG_MSG << "(" << dbusName << objectPath << ")";
65+
66+ Q_EMIT dbusMenuNameChanged(dbusName);
67+ Q_EMIT dbusMenuObjectPathChanged(objectPath);
68+}
69
70=== modified file 'src/modules/Unity/Application/mirsurface.h'
71--- src/modules/Unity/Application/mirsurface.h 2015-12-10 13:08:43 +0000
72+++ src/modules/Unity/Application/mirsurface.h 2016-01-15 12:27:41 +0000
73@@ -121,6 +121,9 @@
74
75 QCursor cursor() const override;
76
77+ QString dbusMenuName() const override;
78+ QString dbusMenuObjectPath() const override;
79+
80 public Q_SLOTS:
81 void onCompositorSwappedBuffers() override;
82
83@@ -131,6 +134,7 @@
84 void onSessionDestroyed();
85 void emitSizeChanged();
86 void setCursor(const QCursor &cursor);
87+ void setDbusMenuInfo(const QString& dbusName, const QString& objectPath);
88
89 private:
90 void syncSurfaceSizeWithItemSize();
91
92=== modified file 'src/platforms/mirserver/mirwindowmanager.cpp'
93--- src/platforms/mirserver/mirwindowmanager.cpp 2015-12-02 12:27:45 +0000
94+++ src/platforms/mirserver/mirwindowmanager.cpp 2016-01-15 12:27:41 +0000
95@@ -73,6 +73,12 @@
96 const std::shared_ptr<mir::scene::Surface>& surface,
97 const mir::shell::SurfaceSpecification& modifications) override;
98
99+ void set_surface_dbus_menu_info(
100+ std::shared_ptr<mir::scene::Session> const& /*session*/,
101+ std::shared_ptr<mir::scene::Surface> const& surface,
102+ std::string const& dbus_name,
103+ std::string const& object_path) override;
104+
105 private:
106 std::shared_ptr<mir::shell::DisplayLayout> const m_displayLayout;
107 };
108@@ -174,6 +180,15 @@
109 }
110 }
111
112+void MirWindowManagerImpl::set_surface_dbus_menu_info(std::shared_ptr<mir::scene::Session> const& /*session*/,
113+ std::shared_ptr<mir::scene::Surface> const& surface,
114+ std::string const& dbus_name,
115+ std::string const& object_path)
116+{
117+ qDebug() << "DBUS SET DBUS MENU INFO" << dbus_name << object_path;
118+ surface->set_dbus_menu_info(dbus_name, object_path);
119+}
120+
121 std::unique_ptr<MirWindowManager> MirWindowManager::create(
122 mir::shell::FocusController* /*focus_controller*/,
123 const std::shared_ptr<mir::shell::DisplayLayout> &displayLayout)
124
125=== modified file 'src/platforms/mirserver/surfaceobserver.cpp'
126--- src/platforms/mirserver/surfaceobserver.cpp 2015-12-04 14:02:54 +0000
127+++ src/platforms/mirserver/surfaceobserver.cpp 2016-01-15 12:27:41 +0000
128@@ -78,6 +78,11 @@
129 Q_EMIT cursorChanged(QCursor());
130 }
131
132+void SurfaceObserver::dbus_menu_info_changed(const std::string &dbus_name, const std::string &object_path)
133+{
134+ Q_EMIT dbusMenuInfoChanged(QString::fromStdString(dbus_name), QString::fromStdString(object_path));
135+}
136+
137 void SurfaceObserver::attrib_changed(MirSurfaceAttrib attribute, int value)
138 {
139 if (m_listener) {
140
141=== modified file 'src/platforms/mirserver/surfaceobserver.h'
142--- src/platforms/mirserver/surfaceobserver.h 2015-12-04 14:02:54 +0000
143+++ src/platforms/mirserver/surfaceobserver.h 2016-01-15 12:27:41 +0000
144@@ -50,6 +50,7 @@
145 void keymap_changed(xkb_rule_names const &) override {}
146 void renamed(char const * name) override;
147 void cursor_image_removed() override;
148+ void dbus_menu_info_changed(std::string const& dbus_name, std::string const& object_path) override;
149
150 Q_SIGNALS:
151 void attributeChanged(const MirSurfaceAttrib attribute, const int value);
152@@ -57,6 +58,7 @@
153 void resized(const QSize &size);
154 void nameChanged(const QString &name);
155 void cursorChanged(const QCursor &cursor);
156+ void dbusMenuInfoChanged(const QString& dbusName, const QString& objectPath);
157
158 private:
159 QCursor createQCursorFromMirCursorImage(const mir::graphics::CursorImage &cursorImage);
160
161=== modified file 'tests/mirserver/WindowManager/stub_surface.cpp'
162--- tests/mirserver/WindowManager/stub_surface.cpp 2015-10-12 16:05:16 +0000
163+++ tests/mirserver/WindowManager/stub_surface.cpp 2016-01-15 12:27:41 +0000
164@@ -196,3 +196,17 @@
165 void StubSurface::rename(std::string const& /*title*/)
166 {
167 }
168+
169+void StubSurface::set_dbus_menu_info(std::string const& /*dbus_name*/, std::string const& /*object_path*/)
170+{
171+}
172+
173+std::string StubSurface::dbus_menu_name() const
174+{
175+ return {};
176+}
177+
178+std::string StubSurface::dbus_menu_object_path() const
179+{
180+ return {};
181+}
182
183=== modified file 'tests/mirserver/WindowManager/stub_surface.h'
184--- tests/mirserver/WindowManager/stub_surface.h 2015-10-12 16:05:16 +0000
185+++ tests/mirserver/WindowManager/stub_surface.h 2016-01-15 12:27:41 +0000
186@@ -62,6 +62,9 @@
187 void remove_observer(std::weak_ptr<mir::scene::SurfaceObserver> const& observer) override;
188 void set_keymap(xkb_rule_names const& rules) override;
189 void rename(std::string const& title) override;
190+ void set_dbus_menu_info(std::string const& dbus_name, std::string const& object_path) override;
191+ std::string dbus_menu_name() const override;
192+ std::string dbus_menu_object_path() const override;
193 };
194
195 #endif //QPAMIRSERVER_STUB_SURFACE_H
196
197=== modified file 'tests/modules/common/fake_mirsurface.h'
198--- tests/modules/common/fake_mirsurface.h 2015-12-10 13:08:43 +0000
199+++ tests/modules/common/fake_mirsurface.h 2016-01-15 12:27:41 +0000
200@@ -178,6 +178,9 @@
201 Q_EMIT closeRequested();
202 }
203
204+ virtual QString dbusMenuName() const { return QString(); }
205+ virtual QString dbusMenuObjectPath() const { return QString(); }
206+
207 Q_SIGNALS:
208 void closeRequested();
209
210
211=== modified file 'tests/modules/common/mock_surface.h'
212--- tests/modules/common/mock_surface.h 2015-08-11 12:08:32 +0000
213+++ tests/modules/common/mock_surface.h 2016-01-15 12:27:41 +0000
214@@ -65,6 +65,10 @@
215 void set_keymap(xkb_rule_names const &) override {}
216 void rename(std::string const&) override {}
217 MOCK_METHOD1(set_streams, void(std::list<StreamInfo> const&));
218+
219+ MOCK_METHOD2(set_dbus_menu_info, void(std::string const& dbus_name, std::string const& object_path));
220+ MOCK_CONST_METHOD0(dbus_menu_name, std::string());
221+ MOCK_CONST_METHOD0(dbus_menu_object_path, std::string());
222
223 // from mir::input::surface
224 MOCK_CONST_METHOD1(input_area_contains, bool(geometry::Point const& point));

Subscribers

People subscribed via source and target branches