From 9ab5c329bfe17122441000f0c8cdd1f32f09072b Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Tue, 9 Aug 2016 09:16:38 +0200 Subject: eglfs: Add basic support for controlling how the virtual desktop is formed Choose between horizontal (default) and vertical. Task-number: QTBUG-55188 Change-Id: Ibc490b0ad8c60b66db785455c57987eb8afdad0d Reviewed-by: Dominik Holland Reviewed-by: Andy Nichols --- .../eglfs_kms_support/qeglfskmsintegration.cpp | 25 ++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.cpp') diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.cpp index 7389050efc..0f64d5b28e 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.cpp @@ -65,6 +65,7 @@ QEglFSKmsIntegration::QEglFSKmsIntegration() , m_hwCursor(false) , m_pbuffers(false) , m_separateScreens(false) + , m_virtualDesktopLayout(VirtualDesktopLayoutHorizontal) {} void QEglFSKmsIntegration::platformInit() @@ -149,6 +150,11 @@ bool QEglFSKmsIntegration::separateScreens() const return m_separateScreens; } +QEglFSKmsIntegration::VirtualDesktopLayout QEglFSKmsIntegration::virtualDesktopLayout() const +{ + return m_virtualDesktopLayout; +} + QMap QEglFSKmsIntegration::outputSettings() const { return m_outputSettings; @@ -169,15 +175,15 @@ void QEglFSKmsIntegration::loadConfig() QFile file(QString::fromUtf8(json)); if (!file.open(QFile::ReadOnly)) { - qCDebug(qLcEglfsKmsDebug) << "Could not open config file" - << json << "for reading"; + qCWarning(qLcEglfsKmsDebug) << "Could not open config file" + << json << "for reading"; return; } const QJsonDocument doc = QJsonDocument::fromJson(file.readAll()); if (!doc.isObject()) { - qCDebug(qLcEglfsKmsDebug) << "Invalid config file" << json - << "- no top-level JSON object"; + qCWarning(qLcEglfsKmsDebug) << "Invalid config file" << json + << "- no top-level JSON object"; return; } @@ -188,6 +194,16 @@ void QEglFSKmsIntegration::loadConfig() m_devicePath = object.value(QLatin1String("device")).toString(); m_separateScreens = object.value(QLatin1String("separateScreens")).toBool(m_separateScreens); + const QString vdOriString = object.value(QLatin1String("virtualDesktopLayout")).toString(); + if (!vdOriString.isEmpty()) { + if (vdOriString == QLatin1String("horizontal")) + m_virtualDesktopLayout = VirtualDesktopLayoutHorizontal; + else if (vdOriString == QLatin1String("vertical")) + m_virtualDesktopLayout = VirtualDesktopLayoutVertical; + else + qCWarning(qLcEglfsKmsDebug) << "Unknown virtualDesktop value" << vdOriString; + } + const QJsonArray outputs = object.value(QLatin1String("outputs")).toArray(); for (int i = 0; i < outputs.size(); i++) { const QVariantMap outputSettings = outputs.at(i).toObject().toVariantMap(); @@ -207,6 +223,7 @@ void QEglFSKmsIntegration::loadConfig() << "\thwcursor:" << m_hwCursor << "\n" << "\tpbuffers:" << m_pbuffers << "\n" << "\tseparateScreens:" << m_separateScreens << "\n" + << "\tvirtualDesktopLayout:" << m_virtualDesktopLayout << "\n" << "\toutputs:" << m_outputSettings; } -- cgit v1.2.3