summaryrefslogtreecommitdiffstats
path: root/src/platformsupport
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2014-11-27 18:28:12 +0100
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2014-11-27 18:28:12 +0100
commitce6990c3e742e0833df0561246554cf07a888efb (patch)
tree412380582040f5bb314eb90ae029b41a883aa439 /src/platformsupport
parent09e674849a40f5eb7e9f95fd2a952c621aec86d1 (diff)
parentfa9bde7d3a12ede956339c570f7b32f95d231e57 (diff)
Merge remote-tracking branch 'origin/5.4' into dev
Diffstat (limited to 'src/platformsupport')
-rw-r--r--src/platformsupport/devicediscovery/devicediscovery.pri5
-rw-r--r--src/platformsupport/devicediscovery/qdevicediscovery_dummy.cpp21
-rw-r--r--src/platformsupport/devicediscovery/qdevicediscovery_dummy_p.h63
-rw-r--r--src/platformsupport/devicediscovery/qdevicediscovery_p.h33
-rw-r--r--src/platformsupport/devicediscovery/qdevicediscovery_static.cpp17
-rw-r--r--src/platformsupport/devicediscovery/qdevicediscovery_static_p.h66
-rw-r--r--src/platformsupport/devicediscovery/qdevicediscovery_udev.cpp18
-rw-r--r--src/platformsupport/devicediscovery/qdevicediscovery_udev_p.h79
-rw-r--r--src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp36
9 files changed, 256 insertions, 82 deletions
diff --git a/src/platformsupport/devicediscovery/devicediscovery.pri b/src/platformsupport/devicediscovery/devicediscovery.pri
index 9748129225..1ac25da901 100644
--- a/src/platformsupport/devicediscovery/devicediscovery.pri
+++ b/src/platformsupport/devicediscovery/devicediscovery.pri
@@ -3,14 +3,15 @@ HEADERS += $$PWD/qdevicediscovery_p.h
linux {
contains(QT_CONFIG, libudev) {
SOURCES += $$PWD/qdevicediscovery_udev.cpp
+ HEADERS += $$PWD/qdevicediscovery_udev_p.h
INCLUDEPATH += $$QMAKE_INCDIR_LIBUDEV
LIBS_PRIVATE += $$QMAKE_LIBS_LIBUDEV
- # Use our own define. QT_NO_LIBUDEV may not be set on non-Linux systems.
- DEFINES += QDEVICEDISCOVERY_UDEV
} else: contains(QT_CONFIG, evdev) {
SOURCES += $$PWD/qdevicediscovery_static.cpp
+ HEADERS += $$PWD/qdevicediscovery_static_p.h
} else {
SOURCES += $$PWD/qdevicediscovery_dummy.cpp
+ HEADERS += $$PWD/qdevicediscovery_dummy_p.h
}
} else {
SOURCES += $$PWD/qdevicediscovery_dummy.cpp
diff --git a/src/platformsupport/devicediscovery/qdevicediscovery_dummy.cpp b/src/platformsupport/devicediscovery/qdevicediscovery_dummy.cpp
index c6b8610bab..44c5f845dc 100644
--- a/src/platformsupport/devicediscovery/qdevicediscovery_dummy.cpp
+++ b/src/platformsupport/devicediscovery/qdevicediscovery_dummy.cpp
@@ -31,34 +31,23 @@
**
****************************************************************************/
-#include "qdevicediscovery_p.h"
+#include "qdevicediscovery_dummy_p.h"
QT_BEGIN_NAMESPACE
QDeviceDiscovery *QDeviceDiscovery::create(QDeviceTypes types, QObject *parent)
{
- return new QDeviceDiscovery(types, parent);
+ return new QDeviceDiscoveryDummy(types, parent);
}
-QDeviceDiscovery::QDeviceDiscovery(QDeviceTypes types, QObject *parent)
- : QObject(parent),
- m_types(types)
+QDeviceDiscoveryDummy::QDeviceDiscoveryDummy(QDeviceTypes types, QObject *parent)
+ : QDeviceDiscovery(types, parent)
{
}
-QDeviceDiscovery::~QDeviceDiscovery()
-{
-}
-
-QStringList QDeviceDiscovery::scanConnectedDevices()
+QStringList QDeviceDiscoveryDummy::scanConnectedDevices()
{
return QStringList();
}
-bool QDeviceDiscovery::checkDeviceType(const QString &device)
-{
- Q_UNUSED(device);
- return false;
-}
-
QT_END_NAMESPACE
diff --git a/src/platformsupport/devicediscovery/qdevicediscovery_dummy_p.h b/src/platformsupport/devicediscovery/qdevicediscovery_dummy_p.h
new file mode 100644
index 0000000000..93a676858d
--- /dev/null
+++ b/src/platformsupport/devicediscovery/qdevicediscovery_dummy_p.h
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins 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 Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/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.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QDEVICEDISCOVERY_DUMMY_H
+#define QDEVICEDISCOVERY_DUMMY_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "qdevicediscovery_p.h"
+
+QT_BEGIN_NAMESPACE
+
+class QDeviceDiscoveryDummy : public QDeviceDiscovery
+{
+ Q_OBJECT
+
+public:
+ QDeviceDiscoveryDummy(QDeviceTypes types, QObject *parent = 0);
+ QStringList scanConnectedDevices() Q_DECL_OVERRIDE;
+};
+
+QT_END_NAMESPACE
+
+#endif // QDEVICEDISCOVERY_DUMMY_H
diff --git a/src/platformsupport/devicediscovery/qdevicediscovery_p.h b/src/platformsupport/devicediscovery/qdevicediscovery_p.h
index 07e7996a60..f3b0d19a7c 100644
--- a/src/platformsupport/devicediscovery/qdevicediscovery_p.h
+++ b/src/platformsupport/devicediscovery/qdevicediscovery_p.h
@@ -49,10 +49,6 @@
#include <QSocketNotifier>
#include <QStringList>
-#ifdef QDEVICEDISCOVERY_UDEV
-#include <libudev.h>
-#endif
-
#define QT_EVDEV_DEVICE_PATH "/dev/input/"
#define QT_EVDEV_DEVICE_PREFIX "event"
#define QT_EVDEV_DEVICE QT_EVDEV_DEVICE_PATH QT_EVDEV_DEVICE_PREFIX
@@ -84,39 +80,18 @@ public:
Q_DECLARE_FLAGS(QDeviceTypes, QDeviceType)
static QDeviceDiscovery *create(QDeviceTypes type, QObject *parent = 0);
- ~QDeviceDiscovery();
- QStringList scanConnectedDevices();
+ virtual QStringList scanConnectedDevices() = 0;
signals:
void deviceDetected(const QString &deviceNode);
void deviceRemoved(const QString &deviceNode);
-#ifdef QDEVICEDISCOVERY_UDEV
-private slots:
- void handleUDevNotification();
-#endif
-
-private:
-#ifdef QDEVICEDISCOVERY_UDEV
- QDeviceDiscovery(QDeviceTypes types, struct udev *udev, QObject *parent = 0);
- bool checkDeviceType(struct udev_device *dev);
-#else
- QDeviceDiscovery(QDeviceTypes types, QObject *parent = 0);
- bool checkDeviceType(const QString &device);
-#endif
+protected:
+ QDeviceDiscovery(QDeviceTypes types, QObject *parent) : QObject(parent), m_types(types) { }
+ Q_DISABLE_COPY(QDeviceDiscovery)
QDeviceTypes m_types;
-
-#ifdef QDEVICEDISCOVERY_UDEV
- void startWatching();
- void stopWatching();
-
- struct udev *m_udev;
- struct udev_monitor *m_udevMonitor;
- int m_udevMonitorFileDescriptor;
- QSocketNotifier *m_udevSocketNotifier;
-#endif
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QDeviceDiscovery::QDeviceTypes)
diff --git a/src/platformsupport/devicediscovery/qdevicediscovery_static.cpp b/src/platformsupport/devicediscovery/qdevicediscovery_static.cpp
index eb7c17d59e..660d3760fb 100644
--- a/src/platformsupport/devicediscovery/qdevicediscovery_static.cpp
+++ b/src/platformsupport/devicediscovery/qdevicediscovery_static.cpp
@@ -31,7 +31,7 @@
**
****************************************************************************/
-#include "qdevicediscovery_p.h"
+#include "qdevicediscovery_static_p.h"
#include <QStringList>
#include <QCoreApplication>
@@ -75,23 +75,18 @@ QT_BEGIN_NAMESPACE
QDeviceDiscovery *QDeviceDiscovery::create(QDeviceTypes types, QObject *parent)
{
- return new QDeviceDiscovery(types, parent);
+ return new QDeviceDiscoveryStatic(types, parent);
}
-QDeviceDiscovery::QDeviceDiscovery(QDeviceTypes types, QObject *parent) :
- QObject(parent),
- m_types(types)
+QDeviceDiscoveryStatic::QDeviceDiscoveryStatic(QDeviceTypes types, QObject *parent)
+ : QDeviceDiscovery(types, parent)
{
#ifdef QT_QPA_DEVICE_DISCOVERY_DEBUG
qWarning() << "New DeviceDiscovery created for type" << types;
#endif
}
-QDeviceDiscovery::~QDeviceDiscovery()
-{
-}
-
-QStringList QDeviceDiscovery::scanConnectedDevices()
+QStringList QDeviceDiscoveryStatic::scanConnectedDevices()
{
QStringList devices;
QDir dir;
@@ -124,7 +119,7 @@ QStringList QDeviceDiscovery::scanConnectedDevices()
return devices;
}
-bool QDeviceDiscovery::checkDeviceType(const QString &device)
+bool QDeviceDiscoveryStatic::checkDeviceType(const QString &device)
{
bool ret = false;
int fd = QT_OPEN(device.toLocal8Bit().constData(), O_RDONLY | O_NDELAY, 0);
diff --git a/src/platformsupport/devicediscovery/qdevicediscovery_static_p.h b/src/platformsupport/devicediscovery/qdevicediscovery_static_p.h
new file mode 100644
index 0000000000..6629a9a26c
--- /dev/null
+++ b/src/platformsupport/devicediscovery/qdevicediscovery_static_p.h
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins 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 Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/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.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QDEVICEDISCOVERY_STATIC_H
+#define QDEVICEDISCOVERY_STATIC_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "qdevicediscovery_p.h"
+
+QT_BEGIN_NAMESPACE
+
+class QDeviceDiscoveryStatic : public QDeviceDiscovery
+{
+ Q_OBJECT
+
+public:
+ QDeviceDiscoveryStatic(QDeviceTypes types, QObject *parent = 0);
+ QStringList scanConnectedDevices() Q_DECL_OVERRIDE;
+
+private:
+ bool checkDeviceType(const QString &device);
+};
+
+QT_END_NAMESPACE
+
+#endif // QDEVICEDISCOVERY_STATIC_H
diff --git a/src/platformsupport/devicediscovery/qdevicediscovery_udev.cpp b/src/platformsupport/devicediscovery/qdevicediscovery_udev.cpp
index 006b18552e..7645dc4544 100644
--- a/src/platformsupport/devicediscovery/qdevicediscovery_udev.cpp
+++ b/src/platformsupport/devicediscovery/qdevicediscovery_udev.cpp
@@ -31,7 +31,7 @@
**
****************************************************************************/
-#include "qdevicediscovery_p.h"
+#include "qdevicediscovery_udev_p.h"
#include <QStringList>
#include <QCoreApplication>
@@ -60,7 +60,7 @@ QDeviceDiscovery *QDeviceDiscovery::create(QDeviceTypes types, QObject *parent)
udev = udev_new();
if (udev) {
- helper = new QDeviceDiscovery(types, udev, parent);
+ helper = new QDeviceDiscoveryUDev(types, udev, parent);
} else {
qWarning("Failed to get udev library context.");
}
@@ -68,9 +68,9 @@ QDeviceDiscovery *QDeviceDiscovery::create(QDeviceTypes types, QObject *parent)
return helper;
}
-QDeviceDiscovery::QDeviceDiscovery(QDeviceTypes types, struct udev *udev, QObject *parent) :
- QObject(parent),
- m_types(types), m_udev(udev), m_udevMonitor(0), m_udevMonitorFileDescriptor(-1), m_udevSocketNotifier(0)
+QDeviceDiscoveryUDev::QDeviceDiscoveryUDev(QDeviceTypes types, struct udev *udev, QObject *parent) :
+ QDeviceDiscovery(types, parent),
+ m_udev(udev), m_udevMonitor(0), m_udevMonitorFileDescriptor(-1), m_udevSocketNotifier(0)
{
#ifdef QT_QPA_DEVICE_DISCOVERY_DEBUG
qWarning() << "New UDeviceHelper created for type" << types;
@@ -96,7 +96,7 @@ QDeviceDiscovery::QDeviceDiscovery(QDeviceTypes types, struct udev *udev, QObjec
connect(m_udevSocketNotifier, SIGNAL(activated(int)), this, SLOT(handleUDevNotification()));
}
-QDeviceDiscovery::~QDeviceDiscovery()
+QDeviceDiscoveryUDev::~QDeviceDiscoveryUDev()
{
if (m_udevMonitor)
udev_monitor_unref(m_udevMonitor);
@@ -105,7 +105,7 @@ QDeviceDiscovery::~QDeviceDiscovery()
udev_unref(m_udev);
}
-QStringList QDeviceDiscovery::scanConnectedDevices()
+QStringList QDeviceDiscoveryUDev::scanConnectedDevices()
{
QStringList devices;
@@ -165,7 +165,7 @@ QStringList QDeviceDiscovery::scanConnectedDevices()
return devices;
}
-void QDeviceDiscovery::handleUDevNotification()
+void QDeviceDiscoveryUDev::handleUDevNotification()
{
if (!m_udevMonitor)
return;
@@ -216,7 +216,7 @@ cleanup:
udev_device_unref(dev);
}
-bool QDeviceDiscovery::checkDeviceType(udev_device *dev)
+bool QDeviceDiscoveryUDev::checkDeviceType(udev_device *dev)
{
if (!dev)
return false;
diff --git a/src/platformsupport/devicediscovery/qdevicediscovery_udev_p.h b/src/platformsupport/devicediscovery/qdevicediscovery_udev_p.h
new file mode 100644
index 0000000000..d31ba72c96
--- /dev/null
+++ b/src/platformsupport/devicediscovery/qdevicediscovery_udev_p.h
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins 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 Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/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.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QDEVICEDISCOVERY_UDEV_H
+#define QDEVICEDISCOVERY_UDEV_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "qdevicediscovery_p.h"
+#include <libudev.h>
+
+QT_BEGIN_NAMESPACE
+
+class QDeviceDiscoveryUDev : public QDeviceDiscovery
+{
+ Q_OBJECT
+
+public:
+ QDeviceDiscoveryUDev(QDeviceTypes types, struct udev *udev, QObject *parent = 0);
+ ~QDeviceDiscoveryUDev();
+ QStringList scanConnectedDevices() Q_DECL_OVERRIDE;
+
+private slots:
+ void handleUDevNotification();
+
+private:
+ bool checkDeviceType(struct udev_device *dev);
+
+ void startWatching();
+ void stopWatching();
+
+ struct udev *m_udev;
+ struct udev_monitor *m_udevMonitor;
+ int m_udevMonitorFileDescriptor;
+ QSocketNotifier *m_udevSocketNotifier;
+};
+
+QT_END_NAMESPACE
+
+#endif // QDEVICEDISCOVERY_UDEV_H
diff --git a/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp b/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
index 43903acfe1..52505c570b 100644
--- a/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
+++ b/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
@@ -106,6 +106,24 @@ void QBasicFontDatabase::populateFontDatabase()
}
}
+inline static void setHintingPreference(QFontEngine *engine, QFont::HintingPreference hintingPreference)
+{
+ switch (hintingPreference) {
+ case QFont::PreferNoHinting:
+ engine->setDefaultHintStyle(QFontEngineFT::HintNone);
+ break;
+ case QFont::PreferFullHinting:
+ engine->setDefaultHintStyle(QFontEngineFT::HintFull);
+ break;
+ case QFont::PreferVerticalHinting:
+ engine->setDefaultHintStyle(QFontEngineFT::HintLight);
+ break;
+ case QFont::PreferDefaultHinting:
+ // Leave it as it is
+ break;
+ }
+}
+
QFontEngine *QBasicFontDatabase::fontEngine(const QFontDef &fontDef, void *usrPtr)
{
FontFile *fontfile = static_cast<FontFile *> (usrPtr);
@@ -120,6 +138,8 @@ QFontEngine *QBasicFontDatabase::fontEngine(const QFontDef &fontDef, void *usrPt
if (!engine->init(fid, antialias, format) || engine->invalid()) {
delete engine;
engine = 0;
+ } else {
+ setHintingPreference(engine, static_cast<QFont::HintingPreference>(fontDef.hintingPreference));
}
return engine;
@@ -172,21 +192,7 @@ QFontEngine *QBasicFontDatabase::fontEngine(const QByteArray &fontData, qreal pi
}
fe->updateFamilyNameAndStyle();
-
- switch (hintingPreference) {
- case QFont::PreferNoHinting:
- fe->setDefaultHintStyle(QFontEngineFT::HintNone);
- break;
- case QFont::PreferFullHinting:
- fe->setDefaultHintStyle(QFontEngineFT::HintFull);
- break;
- case QFont::PreferVerticalHinting:
- fe->setDefaultHintStyle(QFontEngineFT::HintLight);
- break;
- default:
- // Leave it as it is
- break;
- }
+ setHintingPreference(fe, hintingPreference);
return fe;
}