summaryrefslogtreecommitdiffstats
path: root/CenterConsole/plugins/screenManager
diff options
context:
space:
mode:
Diffstat (limited to 'CenterConsole/plugins/screenManager')
-rw-r--r--CenterConsole/plugins/screenManager/plugin.cpp57
-rw-r--r--CenterConsole/plugins/screenManager/qmldir2
-rw-r--r--CenterConsole/plugins/screenManager/screenManager.pro23
-rw-r--r--CenterConsole/plugins/screenManager/screenmanager.cpp61
-rw-r--r--CenterConsole/plugins/screenManager/screenmanager.h54
5 files changed, 197 insertions, 0 deletions
diff --git a/CenterConsole/plugins/screenManager/plugin.cpp b/CenterConsole/plugins/screenManager/plugin.cpp
new file mode 100644
index 0000000..f4639a2
--- /dev/null
+++ b/CenterConsole/plugins/screenManager/plugin.cpp
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 Pelagicore AG
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Neptune IVI UI.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+** SPDX-License-Identifier: GPL-3.0
+**
+****************************************************************************/
+
+#include <QtQml/qqmlextensionplugin.h>
+#include <qqml.h>
+#include "screenmanager.h"
+
+static QObject *screenManagerSingletonFactory(QQmlEngine *engine, QJSEngine *scriptEngine)
+{
+ Q_UNUSED(scriptEngine)
+ Q_UNUSED(engine)
+
+ return new ScreenManager();
+}
+
+class HoundPlugin : public QQmlExtensionPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0")
+public:
+ virtual void registerTypes(const char *uri)
+ {
+ Q_ASSERT(QLatin1String(uri) == QLatin1String("com.pelagicore.ScreenManager"));
+ Q_UNUSED(uri);
+
+ qmlRegisterSingletonType<ScreenManager>(uri, 1, 0, "ScreenManager", screenManagerSingletonFactory);
+ }
+};
+
+#include "plugin.moc"
diff --git a/CenterConsole/plugins/screenManager/qmldir b/CenterConsole/plugins/screenManager/qmldir
new file mode 100644
index 0000000..5472c91
--- /dev/null
+++ b/CenterConsole/plugins/screenManager/qmldir
@@ -0,0 +1,2 @@
+module com.pelagicore.ScreenManager
+plugin screenmanagerplugin
diff --git a/CenterConsole/plugins/screenManager/screenManager.pro b/CenterConsole/plugins/screenManager/screenManager.pro
new file mode 100644
index 0000000..44a0a0c
--- /dev/null
+++ b/CenterConsole/plugins/screenManager/screenManager.pro
@@ -0,0 +1,23 @@
+include (../../../deployment.pri)
+TEMPLATE = lib
+TARGET = screenmanagerplugin
+QT += qml quick
+CONFIG += qt plugin c++11
+
+TARGET = $$qtLibraryTarget($$TARGET)
+uri = com.pelagicore.ScreenManager
+
+SOURCES += \
+ plugin.cpp \
+ screenmanager.cpp \
+
+HEADERS += \
+ screenmanager.h \
+
+OTHER_FILES = qmldir
+
+qmldir.files = qmldir
+
+qmldir.path = $$TARGET_PATH/qml/$$replace(uri, \\., /)
+target.path = $$TARGET_PATH/qml/$$replace(uri, \\., /)
+INSTALLS += target qmldir
diff --git a/CenterConsole/plugins/screenManager/screenmanager.cpp b/CenterConsole/plugins/screenManager/screenmanager.cpp
new file mode 100644
index 0000000..06bc4dc
--- /dev/null
+++ b/CenterConsole/plugins/screenManager/screenmanager.cpp
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 Pelagicore AG
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Neptune IVI UI.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+** SPDX-License-Identifier: GPL-3.0
+**
+****************************************************************************/
+
+#include "screenmanager.h"
+#include <QGuiApplication>
+#include <QScreen>
+#include <QDebug>
+
+ScreenManager::ScreenManager(QObject *parent)
+ : QObject(parent)
+{
+ connect(qApp, &QGuiApplication::screenAdded, this, &ScreenManager::availableScreensChanged);
+ connect(qApp, &QGuiApplication::screenAdded, this, &ScreenManager::availableScreensChanged);
+}
+
+void ScreenManager::setScreen(QWindow *window, int screen)
+{
+ if (screen >= 0 && screen < QGuiApplication::screens().count()) {
+ window->setScreen(QGuiApplication::screens().at(screen));
+ } else {
+ qWarning() << "invalid Screen";
+ }
+}
+
+QList<QScreen *> ScreenManager::availableScreens() const
+{
+ return QGuiApplication::screens();
+}
+
+int ScreenManager::screenCount() const
+{
+ return QGuiApplication::screens().count();
+}
+
diff --git a/CenterConsole/plugins/screenManager/screenmanager.h b/CenterConsole/plugins/screenManager/screenmanager.h
new file mode 100644
index 0000000..b12f860
--- /dev/null
+++ b/CenterConsole/plugins/screenManager/screenmanager.h
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 Pelagicore AG
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Neptune IVI UI.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+** SPDX-License-Identifier: GPL-3.0
+**
+****************************************************************************/
+
+#ifndef SCREENMANAGER_H
+#define SCREENMANAGER_H
+
+#include <QtCore/QObject>
+#include <QWindow>
+
+class ScreenManager : public QObject
+{
+ Q_OBJECT
+
+ Q_PROPERTY(QList<QScreen*> availableScreens READ availableScreens NOTIFY availableScreensChanged)
+
+public:
+ explicit ScreenManager(QObject *parent = 0);
+
+ Q_INVOKABLE int screenCount() const;
+ Q_INVOKABLE void setScreen(QWindow * window, int screen);
+ QList<QScreen*> availableScreens() const;
+
+signals:
+ void availableScreensChanged();
+};
+
+#endif // SCREENMANAGER_H