on xenial help sign in
ScreenConfig
commit27430d5a6ccf8d2a3aeb6d7da1bfd42a79f98a71 authorNick Dedekind <nick.dedekind@canonical.com> dateMon 3 Apr 2017, 17:32 (10 years ago) parente2b3955
4 files changed+36−6
plugins/WindowManager/Screen.cpp+14−4 plugins/WindowManager/Screen.h+20−2 plugins/WindowManager/WindowManagerPlugin.cpp+1 tests/mocks/WindowManager/WindowManagerPlugin.cpp+1
plugins/WindowManager/Screen.cpp+14−4
@@ -141,16 +141,16 @@ QScreen *Screen::qscreen() const
141141 return m_wrapped->qscreen();
142142}
143143
144−qtmir::ScreenConfiguration *Screen::beginConfiguration() const
144+ScreenConfig *Screen::beginConfiguration() const
145145{
146146 if (!m_wrapped) return nullptr;
147− return m_wrapped->beginConfiguration();
147+ return new ScreenConfig(m_wrapped->beginConfiguration());
148148}
149149
150−bool Screen::applyConfiguration(qtmir::ScreenConfiguration *configuration)
150+bool Screen::applyConfiguration(ScreenConfig *configuration)
151151{
152152 if (!m_wrapped) return false;
153− return m_wrapped->applyConfiguration(configuration);
153+ return m_wrapped->applyConfiguration(configuration->m_config);
154154}
155155
156156QString Screen::outputTypeName() const
@@ -297,3 +297,13 @@ bool ProxyScreen::isSyncing() const
297297{
298298 return m_screens->isSyncing();
299299}
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−2
@@ -9,6 +9,7 @@
99
1010class ProxyScreen;
1111class ProxyScreens;
12+class ScreenConfig;
1213
1314class Screen: public QObject
1415{
@@ -47,8 +48,8 @@ public:
4748 QScreen* qscreen() const;
4849 QString outputTypeName() const;
4950
50− qtmir::ScreenConfiguration *beginConfiguration() const;
51− bool applyConfiguration(qtmir::ScreenConfiguration *configuration);
51+ Q_INVOKABLE ScreenConfig *beginConfiguration() const;
52+ Q_INVOKABLE bool applyConfiguration(ScreenConfig *configuration);
5253
5354 virtual WorkspaceModel* workspaces() const = 0;
5455 virtual Workspace *currentWorkspace() const = 0;
@@ -131,4 +132,21 @@ private:
131132 QPointer<Workspace> m_currentWorspace;
132133};
133134
135+class ScreenConfig: public QObject
136+{
137+ Q_OBJECT
138+ Q_PRIVATE_PROPERTY(m_config, bool valid MEMBER used CONSTANT)
139+ Q_PRIVATE_PROPERTY(m_config, bool used MEMBER used)
140+ Q_PRIVATE_PROPERTY(m_config, float scale MEMBER scale)
141+ Q_PRIVATE_PROPERTY(m_config, qtmir::FormFactor formFactor MEMBER formFactor)
142+ Q_PRIVATE_PROPERTY(m_config, uint currentModeIndex MEMBER currentModeIndex)
143+ Q_PRIVATE_PROPERTY(m_config, QPoint position MEMBER topLeft)
144+
145+public:
146+ ScreenConfig(qtmir::ScreenConfiguration*);
147+ ~ScreenConfig();
148+
149+ qtmir::ScreenConfiguration* m_config;
150+};
151+
134152#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/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*");