on xenial help sign in
merged prereq
commit9b92f183564202f4f804e7cd59dd82b938539f40 authorNick Dedekind <nick.dedekind@canonical.com> dateMon 3 Apr 2017, 18:42 (10 years ago) parentb5135e727430d5
5 files changed+40−18
plugins/WindowManager/Screen.cpp+14−10 plugins/WindowManager/Screen.h+20−4 plugins/WindowManager/WindowManagerPlugin.cpp+1 tests/mocks/WindowManager/MockScreens.cpp+4−4 tests/mocks/WindowManager/WindowManagerPlugin.cpp+1
plugins/WindowManager/Screen.cpp+14−10
@@ -52,12 +52,6 @@ void Screen::setCurrentWorkspace2(Workspace *workspace)
5252 workspace->setCurrentOn(this);
5353}
5454
55−qtmir::OutputId Screen::outputId() const
56−{
57− if (!m_wrapped) return qtmir::OutputId(-1);
58− return m_wrapped->outputId();
59−}
60−
6155bool Screen::used() const
6256{
6357 if (!m_wrapped) return false;
@@ -147,16 +141,16 @@ QScreen *Screen::qscreen() const
147141 return m_wrapped->qscreen();
148142}
149143
150−qtmir::ScreenConfiguration *Screen::beginConfiguration() const
144+ScreenConfig *Screen::beginConfiguration() const
151145{
152146 if (!m_wrapped) return nullptr;
153− return m_wrapped->beginConfiguration();
147+ return new ScreenConfig(m_wrapped->beginConfiguration());
154148}
155149
156−bool Screen::applyConfiguration(qtmir::ScreenConfiguration *configuration)
150+bool Screen::applyConfiguration(ScreenConfig *configuration)
157151{
158152 if (!m_wrapped) return false;
159− return m_wrapped->applyConfiguration(configuration);
153+ return m_wrapped->applyConfiguration(configuration->m_config);
160154}
161155
162156QString Screen::outputTypeName() const
@@ -303,3 +297,13 @@ bool ProxyScreen::isSyncing() const
303297{
304298 return m_screens->isSyncing();
305299}
300+
301+ScreenConfig::ScreenConfig(qtmir::ScreenConfiguration *config)
302+ : m_config(config)
303+{
304+}
305+
306+ScreenConfig::~ScreenConfig()
307+{
308+ delete m_config;
309+}
plugins/WindowManager/Screen.h+20−4
@@ -9,6 +9,7 @@
99
1010class ProxyScreen;
1111class ProxyScreens;
12+class ScreenConfig;
1213
1314class Screen: public QObject
1415{
@@ -30,8 +31,6 @@ class Screen: public QObject
3031 Q_PROPERTY(WorkspaceModel* workspaces READ workspaces CONSTANT)
3132 Q_PROPERTY(Workspace* currentWorkspace READ currentWorkspace WRITE setCurrentWorkspace2 NOTIFY currentWorkspaceChanged)
3233public:
33− // From qtmir::Screen
34− qtmir::OutputId outputId() const;
3534 bool used() const;
3635 QString name() const;
3736 float scale() const;
@@ -48,8 +47,8 @@ public:
4847 QScreen* qscreen() const;
4948 QString outputTypeName() const;
5049
51− qtmir::ScreenConfiguration *beginConfiguration() const;
52− bool applyConfiguration(qtmir::ScreenConfiguration *configuration);
50+ Q_INVOKABLE ScreenConfig *beginConfiguration() const;
51+ Q_INVOKABLE bool applyConfiguration(ScreenConfig *configuration);
5352
5453 virtual WorkspaceModel* workspaces() const = 0;
5554 virtual Workspace *currentWorkspace() const = 0;
@@ -132,4 +131,21 @@ private:
132131 QPointer<Workspace> m_currentWorspace;
133132};
134133
134+class ScreenConfig: public QObject
135+{
136+ Q_OBJECT
137+ Q_PRIVATE_PROPERTY(m_config, bool valid MEMBER used CONSTANT)
138+ Q_PRIVATE_PROPERTY(m_config, bool used MEMBER used)
139+ Q_PRIVATE_PROPERTY(m_config, float scale MEMBER scale)
140+ Q_PRIVATE_PROPERTY(m_config, qtmir::FormFactor formFactor MEMBER formFactor)
141+ Q_PRIVATE_PROPERTY(m_config, uint currentModeIndex MEMBER currentModeIndex)
142+ Q_PRIVATE_PROPERTY(m_config, QPoint position MEMBER topLeft)
143+
144+public:
145+ ScreenConfig(qtmir::ScreenConfiguration*);
146+ ~ScreenConfig();
147+
148+ qtmir::ScreenConfiguration* m_config;
149+};
150+
135151#endif // SCREEN_H
plugins/WindowManager/WindowManagerPlugin.cpp+1
@@ -64,6 +64,7 @@ void WindowManagerPlugin::registerTypes(const char *uri)
6464 qmlRegisterUncreatableType<WorkspaceModel>(uri, 1, 0, "WorkspaceModel", notInstantiatable);
6565 qmlRegisterSingletonType<ConcreteScreens>(uri, 1, 0, "Screens", screensSingleton);
6666 qmlRegisterUncreatableType<qtmir::ScreenMode>(uri, 1, 0, "ScreenMode", notInstantiatable);
67+ qmlRegisterUncreatableType<ScreenConfig>(uri, 1, 0, "ScreenConfig", notInstantiatable);
6768 qmlRegisterSingletonType<WindowManagerObjects>(uri, 1, 0, "WindowManagerObjects", objectsSingleton);
6869
6970 qRegisterMetaType<ConcreteScreen*>("ConcreteScreen*");
tests/mocks/WindowManager/MockScreens.cpp+4−4
@@ -77,7 +77,7 @@ public:
7777 }
7878 }
7979
80− qtmir::OutputId outputId() const override { return m_id; }
80+ miral::DisplayId displayId() const override { return m_id; }
8181 bool used() const override { return m_used; }
8282 QString name() const override { return m_name; }
8383 float scale() const override { return m_scale; }
@@ -112,7 +112,7 @@ public:
112112 qtmir::ScreenConfiguration *beginConfiguration() const override {
113113 auto config = new qtmir::ScreenConfiguration;
114114 config->valid = true;
115− config->id = m_id;
115+ config->id = m_id.output_id;
116116 config->used = m_used;
117117 config->topLeft = m_position;
118118 config->currentModeIndex = m_currentModeIndex;
@@ -136,7 +136,7 @@ Q_SIGNALS:
136136 void outputTypeNameChanged();
137137
138138public:
139− qtmir::OutputId m_id{0};
139+ miral::DisplayId m_id;
140140 bool m_active{false};
141141 bool m_used{true};
142142 QString m_name;
@@ -162,7 +162,7 @@ MockScreens::MockScreens()
162162 QPoint lastPoint(0,0);
163163 for (int i = 0; i < screenCount; ++i) {
164164 auto screen = new MockScreen();
165− screen->m_id = qtmir::OutputId{i};
165+ screen->m_id.output_id = miral::OutputId{i};
166166 screen->m_active = i == 0;
167167 screen->m_name = QString("Monitor %1").arg(i);
168168 screen->m_position = QPoint(lastPoint.x(), lastPoint.y());
tests/mocks/WindowManager/WindowManagerPlugin.cpp+1
@@ -61,6 +61,7 @@ void WindowManagerPlugin::registerTypes(const char *uri)
6161 qmlRegisterUncreatableType<WorkspaceModel>(uri, 1, 0, "WorkspaceModel", notInstantiatable);
6262 qmlRegisterSingletonType<ConcreteScreens>(uri, 1, 0, "Screens", screensSingleton);
6363 qmlRegisterUncreatableType<qtmir::ScreenMode>(uri, 1, 0, "ScreenMode", notInstantiatable);
64+ qmlRegisterUncreatableType<ScreenConfig>(uri, 1, 0, "ScreenConfig", notInstantiatable);
6465 qmlRegisterSingletonType<WindowManagerObjects>(uri, 1, 0, "WindowManagerObjects", objectsSingleton);
6566
6667 qRegisterMetaType<ConcreteScreen*>("ConcreteScreen*");