From 9c204e05ae7fefe9525b30238b469b1bb65d2537 Mon Sep 17 00:00:00 2001 From: Oliver Wolff Date: Thu, 7 Sep 2017 13:10:14 +0200 Subject: Move inputinfomanager into generic systeminfo sources The class does not have any OS specific code and should be seen as the OS independent base implementation of QInputInfoManagerPrivate. Change-Id: Icbfe9a1bc611dfeeeb86bc03db4c7b4d21d3183b Reviewed-by: Rainer Keller Reviewed-by: Alex Blasche Reviewed-by: Lorn Potter --- src/systeminfo/linux/qinputinfomanager.cpp | 40 ---------------- src/systeminfo/linux/qinputinfomanager_p.h | 74 ------------------------------ src/systeminfo/qinputinfo.cpp | 7 ++- src/systeminfo/qinputinfomanager.cpp | 40 ++++++++++++++++ src/systeminfo/qinputinfomanager_p.h | 74 ++++++++++++++++++++++++++++++ src/systeminfo/systeminfo.pro | 12 ++--- 6 files changed, 125 insertions(+), 122 deletions(-) delete mode 100644 src/systeminfo/linux/qinputinfomanager.cpp delete mode 100644 src/systeminfo/linux/qinputinfomanager_p.h create mode 100644 src/systeminfo/qinputinfomanager.cpp create mode 100644 src/systeminfo/qinputinfomanager_p.h diff --git a/src/systeminfo/linux/qinputinfomanager.cpp b/src/systeminfo/linux/qinputinfomanager.cpp deleted file mode 100644 index d2e1b5c3..00000000 --- a/src/systeminfo/linux/qinputinfomanager.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 Canonical, Ltd. and/or its subsidiary(-ies). -** Copyright (C) 2015 The Qt Company Ltd and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtSystems module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL21$ -** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** As a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qinputinfomanager_p.h" - -QInputInfoManagerPrivate::QInputInfoManagerPrivate(QObject *parent) : - QObject(parent) -{ -} diff --git a/src/systeminfo/linux/qinputinfomanager_p.h b/src/systeminfo/linux/qinputinfomanager_p.h deleted file mode 100644 index 099a8025..00000000 --- a/src/systeminfo/linux/qinputinfomanager_p.h +++ /dev/null @@ -1,74 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 Canonical, Ltd. and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtSystems module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL21$ -** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** As a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QINPUTDEVICEINFO_LINUX_P_H -#define QINPUTDEVICEINFO_LINUX_P_H - -#include -#include "qinputinfo.h" - -QT_BEGIN_NAMESPACE - -class QInputDevicePrivate : public QObject -{ - Q_OBJECT -public: - explicit QInputDevicePrivate(QObject *parent = 0); - - QString name; - QString identifier; - QList buttons; //keys - QList switches; - QList relativeAxes; - QList absoluteAxes; - QInputDevice::InputTypeFlags type; -}; - -class QInputInfoManagerPrivate : public QObject -{ - Q_OBJECT -public: - explicit QInputInfoManagerPrivate(QObject *parent = 0); - QVector deviceList; - QMap deviceMap; - static QInputInfoManagerPrivate * instance(); - -signals: - void deviceAdded( QInputDevice *inputDevice); - void deviceRemoved(const QString &deviceId); - void ready(); -}; - -QT_END_NAMESPACE - -#endif // QINPUTDEVICEINFO_LINUX_P_H diff --git a/src/systeminfo/qinputinfo.cpp b/src/systeminfo/qinputinfo.cpp index a62ffba3..c4539cdc 100644 --- a/src/systeminfo/qinputinfo.cpp +++ b/src/systeminfo/qinputinfo.cpp @@ -34,9 +34,11 @@ #include "qinputinfo.h" -#if defined(Q_OS_LINUX) -#include "linux/qinputinfomanager_p.h" +#include "qinputinfomanager_p.h" + +Q_GLOBAL_STATIC(QInputInfoManagerPrivate, inputDeviceManagerPrivate) +#if defined(Q_OS_LINUX) #if !defined(QT_NO_UDEV) #include "linux/qinputinfomanagerudev_p.h" #endif @@ -93,6 +95,7 @@ QInputInfoManagerPrivate * QInputInfoManagerPrivate::instance() #ifndef QT_NO_UDEV return inputDeviceManagerUdev(); #endif + return inputDeviceManagerPrivate(); } /*! diff --git a/src/systeminfo/qinputinfomanager.cpp b/src/systeminfo/qinputinfomanager.cpp new file mode 100644 index 00000000..d2e1b5c3 --- /dev/null +++ b/src/systeminfo/qinputinfomanager.cpp @@ -0,0 +1,40 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Canonical, Ltd. and/or its subsidiary(-ies). +** Copyright (C) 2015 The Qt Company Ltd and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtSystems module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL21$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** As a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qinputinfomanager_p.h" + +QInputInfoManagerPrivate::QInputInfoManagerPrivate(QObject *parent) : + QObject(parent) +{ +} diff --git a/src/systeminfo/qinputinfomanager_p.h b/src/systeminfo/qinputinfomanager_p.h new file mode 100644 index 00000000..099a8025 --- /dev/null +++ b/src/systeminfo/qinputinfomanager_p.h @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Canonical, Ltd. and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtSystems module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL21$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** As a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QINPUTDEVICEINFO_LINUX_P_H +#define QINPUTDEVICEINFO_LINUX_P_H + +#include +#include "qinputinfo.h" + +QT_BEGIN_NAMESPACE + +class QInputDevicePrivate : public QObject +{ + Q_OBJECT +public: + explicit QInputDevicePrivate(QObject *parent = 0); + + QString name; + QString identifier; + QList buttons; //keys + QList switches; + QList relativeAxes; + QList absoluteAxes; + QInputDevice::InputTypeFlags type; +}; + +class QInputInfoManagerPrivate : public QObject +{ + Q_OBJECT +public: + explicit QInputInfoManagerPrivate(QObject *parent = 0); + QVector deviceList; + QMap deviceMap; + static QInputInfoManagerPrivate * instance(); + +signals: + void deviceAdded( QInputDevice *inputDevice); + void deviceRemoved(const QString &deviceId); + void ready(); +}; + +QT_END_NAMESPACE + +#endif // QINPUTDEVICEINFO_LINUX_P_H diff --git a/src/systeminfo/systeminfo.pro b/src/systeminfo/systeminfo.pro index 1620b6fd..cc9b861c 100644 --- a/src/systeminfo/systeminfo.pro +++ b/src/systeminfo/systeminfo.pro @@ -63,10 +63,10 @@ linux-*: !simulator: { qinputinfo.cpp \ linux/qdeviceinfo_linux.cpp \ linux/qnetworkinfo_linux.cpp \ - linux/qinputinfomanager.cpp + qinputinfomanager.cpp HEADERS += \ qinputinfo.h \ - linux/qinputinfomanager_p.h + qinputinfomanager_p.h config_mir { DEFINES += QT_UNITY8 @@ -193,6 +193,7 @@ simulator { HEADERS += simulator/qsysteminfodata_simulator_p.h PRIVATE_HEADERS += \ + qinputinfomanager_p.h \ linux/qdeviceinfo_linux_p.h \ linux/qnetworkinfo_linux_p.h \ simulator/qsysteminfobackend_simulator_p.h \ @@ -204,14 +205,13 @@ simulator { qinputinfo.cpp \ linux/qdeviceinfo_linux.cpp \ linux/qnetworkinfo_linux.cpp \ - linux/qinputinfomanager.cpp \ + qinputinfomanager.cpp \ simulator/qsysteminfobackend_simulator.cpp \ simulator/qsysteminfoconnection_simulator.cpp \ simulator/qsysteminfo_simulator.cpp - HEADERS += \ - qinputinfo.h \ - linux/qinputinfomanager_p.h + HEADERS += \ + qinputinfo.h linux-*: { PRIVATE_HEADERS += \ -- cgit v1.2.3