on xenial help sign in
ScreenConfig
27430d5Nick Dedekind
plugins/WindowManager/Screen.cpp+14−4
@@ -141,16 +141,16 @@ QScreen *Screen::qscreen() const
141 return m_wrapped->qscreen();
141 return m_wrapped->qscreen();
142}
142}
143
143
144−qtmir::ScreenConfiguration *Screen::beginConfiguration() const
144+ScreenConfig *Screen::beginConfiguration() const
145{
145{
146 if (!m_wrapped) return nullptr;
146 if (!m_wrapped) return nullptr;
147− return m_wrapped->beginConfiguration();
147+ return new ScreenConfig(m_wrapped->beginConfiguration());
148}
148}
149
149
150−bool Screen::applyConfiguration(qtmir::ScreenConfiguration *configuration)
150+bool Screen::applyConfiguration(ScreenConfig *configuration)
151{
151{
152 if (!m_wrapped) return false;
152 if (!m_wrapped) return false;
153− return m_wrapped->applyConfiguration(configuration);
153+ return m_wrapped->applyConfiguration(configuration->m_config);
154}
154}
155
155
156QString Screen::outputTypeName() const
156QString Screen::outputTypeName() const
@@ -297,3 +297,13 @@ bool ProxyScreen::isSyncing() const
297{
297{
298 return m_screens->isSyncing();
298 return m_screens->isSyncing();
299}
299}
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 @@
9
9
10class ProxyScreen;
10class ProxyScreen;
11class ProxyScreens;
11class ProxyScreens;
12+class ScreenConfig;
12
13
13class Screen: public QObject
14class Screen: public QObject
14{
15{
@@ -47,8 +48,8 @@ public:
47 QScreen* qscreen() const;
48 QScreen* qscreen() const;
48 QString outputTypeName() const;
49 QString outputTypeName() const;
49
50
50− qtmir::ScreenConfiguration *beginConfiguration() const;
51+ Q_INVOKABLE ScreenConfig *beginConfiguration() const;
51− bool applyConfiguration(qtmir::ScreenConfiguration *configuration);
52+ Q_INVOKABLE bool applyConfiguration(ScreenConfig *configuration);
52
53
53 virtual WorkspaceModel* workspaces() const = 0;
54 virtual WorkspaceModel* workspaces() const = 0;
54 virtual Workspace *currentWorkspace() const = 0;
55 virtual Workspace *currentWorkspace() const = 0;
@@ -131,4 +132,21 @@ private:
131 QPointer<Workspace> m_currentWorspace;
132 QPointer<Workspace> m_currentWorspace;
132};
133};
133
134
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+
134#endif // SCREEN_H
152#endif // SCREEN_H
plugins/WindowManager/WindowManagerPlugin.cpp+1
@@ -64,6 +64,7 @@ void WindowManagerPlugin::registerTypes(const char *uri)
64 qmlRegisterUncreatableType<WorkspaceModel>(uri, 1, 0, "WorkspaceModel", notInstantiatable);
64 qmlRegisterUncreatableType<WorkspaceModel>(uri, 1, 0, "WorkspaceModel", notInstantiatable);
65 qmlRegisterSingletonType<ConcreteScreens>(uri, 1, 0, "Screens", screensSingleton);
65 qmlRegisterSingletonType<ConcreteScreens>(uri, 1, 0, "Screens", screensSingleton);
66 qmlRegisterUncreatableType<qtmir::ScreenMode>(uri, 1, 0, "ScreenMode", notInstantiatable);
66 qmlRegisterUncreatableType<qtmir::ScreenMode>(uri, 1, 0, "ScreenMode", notInstantiatable);
67+ qmlRegisterUncreatableType<ScreenConfig>(uri, 1, 0, "ScreenConfig", notInstantiatable);
67 qmlRegisterSingletonType<WindowManagerObjects>(uri, 1, 0, "WindowManagerObjects", objectsSingleton);
68 qmlRegisterSingletonType<WindowManagerObjects>(uri, 1, 0, "WindowManagerObjects", objectsSingleton);
68
69
69 qRegisterMetaType<ConcreteScreen*>("ConcreteScreen*");
70 qRegisterMetaType<ConcreteScreen*>("ConcreteScreen*");
tests/mocks/WindowManager/WindowManagerPlugin.cpp+1
@@ -61,6 +61,7 @@ void WindowManagerPlugin::registerTypes(const char *uri)
61 qmlRegisterUncreatableType<WorkspaceModel>(uri, 1, 0, "WorkspaceModel", notInstantiatable);
61 qmlRegisterUncreatableType<WorkspaceModel>(uri, 1, 0, "WorkspaceModel", notInstantiatable);
62 qmlRegisterSingletonType<ConcreteScreens>(uri, 1, 0, "Screens", screensSingleton);
62 qmlRegisterSingletonType<ConcreteScreens>(uri, 1, 0, "Screens", screensSingleton);
63 qmlRegisterUncreatableType<qtmir::ScreenMode>(uri, 1, 0, "ScreenMode", notInstantiatable);
63 qmlRegisterUncreatableType<qtmir::ScreenMode>(uri, 1, 0, "ScreenMode", notInstantiatable);
64+ qmlRegisterUncreatableType<ScreenConfig>(uri, 1, 0, "ScreenConfig", notInstantiatable);
64 qmlRegisterSingletonType<WindowManagerObjects>(uri, 1, 0, "WindowManagerObjects", objectsSingleton);
65 qmlRegisterSingletonType<WindowManagerObjects>(uri, 1, 0, "WindowManagerObjects", objectsSingleton);
65
66
66 qRegisterMetaType<ConcreteScreen*>("ConcreteScreen*");
67 qRegisterMetaType<ConcreteScreen*>("ConcreteScreen*");