Move Windows font DB and engines to QtFontDatabaseSupport
This allows creating or extending QPA plugins to provide access to QFont and related types. It concerns both GDI and DirectWrite engines, as well as the regular and the freetype based font databases. The qt.qpa.fonts logging category has been moved together into the QWindowsFontDatabase related files to avoid depending on the qwindowscontext.h header file. Finally, QwindowsNativeImage is following pending a future refactor with similar code in qpixmap_win.cpp and the Windows XP style. Change-Id: Iddff2f3d715e3ab7695e6c2052b7596a01fd6fa8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
This commit is contained in:
parent
5700644a42
commit
f9a80e06ac
@ -20,6 +20,10 @@ darwin:!if(watchos:CONFIG(simulator, simulator|device)) {
|
||||
include($$PWD/fontconfig/fontconfig.pri)
|
||||
}
|
||||
}
|
||||
|
||||
win32:!winrt {
|
||||
include($$PWD/windows/windows.pri)
|
||||
}
|
||||
}
|
||||
|
||||
load(qt_module)
|
||||
|
@ -37,12 +37,10 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "qwindowsfontdatabase.h"
|
||||
#include "qwindowsfontdatabase_ft.h" // for default font
|
||||
#include "qwindowscontext.h"
|
||||
#include "qwindowsintegration.h"
|
||||
#include "qwindowsfontengine.h"
|
||||
#include "qwindowsfontenginedirectwrite.h"
|
||||
#include "qwindowsfontdatabase_p.h"
|
||||
#include "qwindowsfontdatabase_ft_p.h" // for default font
|
||||
#include "qwindowsfontengine_p.h"
|
||||
#include "qwindowsfontenginedirectwrite_p.h"
|
||||
#include <QtCore/qt_windows.h>
|
||||
|
||||
#include <QtGui/QFont>
|
||||
@ -69,6 +67,8 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
Q_LOGGING_CATEGORY(lcQpaFonts, "qt.qpa.fonts")
|
||||
|
||||
#ifndef QT_NO_DIRECTWRITE
|
||||
// ### fixme: Consider direct linking of dwrite.dll once Windows Vista pre SP2 is dropped (QTBUG-49711)
|
||||
|
||||
@ -114,17 +114,18 @@ static inline bool useDirectWrite(QFont::HintingPreference hintingPreference,
|
||||
const QString &familyName = QString(),
|
||||
bool isColorFont = false)
|
||||
{
|
||||
const unsigned options = QWindowsIntegration::instance()->options();
|
||||
if (Q_UNLIKELY(options & QWindowsIntegration::DontUseDirectWriteFonts))
|
||||
const unsigned options = QWindowsFontDatabase::fontOptions();
|
||||
if (Q_UNLIKELY(options & QWindowsFontDatabase::DontUseDirectWriteFonts))
|
||||
return false;
|
||||
if (isColorFont)
|
||||
return (options & QWindowsIntegration::DontUseColorFonts) == 0;
|
||||
|
||||
// At some scales, GDI will misrender the MingLiU font, so we force use of
|
||||
// DirectWrite to work around the issue.
|
||||
if (Q_UNLIKELY(familyName.startsWith(QLatin1String("MingLiU"))))
|
||||
return true;
|
||||
|
||||
if (isColorFont)
|
||||
return (options & QWindowsFontDatabase::DontUseColorFonts) == 0;
|
||||
|
||||
return hintingPreference == QFont::PreferNoHinting
|
||||
|| hintingPreference == QFont::PreferVerticalHinting
|
||||
|| (QHighDpiScaling::isActive() && hintingPreference == QFont::PreferDefaultHinting);
|
||||
@ -610,6 +611,19 @@ QWindowsFontEngineData::QWindowsFontEngineData()
|
||||
ReleaseDC(0, displayDC);
|
||||
}
|
||||
|
||||
unsigned QWindowsFontDatabase::m_fontOptions = 0;
|
||||
|
||||
void QWindowsFontDatabase::setFontOptions(unsigned options)
|
||||
{
|
||||
m_fontOptions = options & (QWindowsFontDatabase::DontUseDirectWriteFonts |
|
||||
QWindowsFontDatabase::DontUseColorFonts);
|
||||
}
|
||||
|
||||
unsigned QWindowsFontDatabase::fontOptions()
|
||||
{
|
||||
return m_fontOptions;
|
||||
}
|
||||
|
||||
QWindowsFontEngineData::~QWindowsFontEngineData()
|
||||
{
|
||||
if (hdc)
|
||||
@ -992,7 +1006,7 @@ static bool addFontToDatabase(const QString &familyName, const QString &styleNam
|
||||
const QFont::Stretch stretch = QFont::Unstretched;
|
||||
|
||||
#ifndef QT_NO_DEBUG_OUTPUT
|
||||
if (QWindowsContext::verbose > 2) {
|
||||
if (lcQpaFonts().isDebugEnabled()) {
|
||||
QString message;
|
||||
QTextStream str(&message);
|
||||
str << __FUNCTION__ << ' ' << familyName << ' ' << charSet << " TTF=" << ttf;
|
||||
@ -1214,7 +1228,7 @@ QFontEngineMulti *QWindowsFontDatabase::fontEngineMulti(QFontEngine *fontEngine,
|
||||
QFontEngine * QWindowsFontDatabase::fontEngine(const QFontDef &fontDef, void *handle)
|
||||
{
|
||||
QFontEngine *fe = QWindowsFontDatabase::createEngine(fontDef,
|
||||
QWindowsContext::instance()->defaultDPI(),
|
||||
defaultVerticalDPI(),
|
||||
sharedFontData());
|
||||
qCDebug(lcQpaFonts) << __FUNCTION__ << "FONTDEF" << fontDef << fe << handle;
|
||||
return fe;
|
||||
@ -1268,7 +1282,7 @@ QT_WARNING_POP
|
||||
request.stretch = QFont::Unstretched;
|
||||
|
||||
fontEngine = QWindowsFontDatabase::createEngine(request,
|
||||
QWindowsContext::instance()->defaultDPI(),
|
||||
defaultVerticalDPI(),
|
||||
sharedFontData());
|
||||
|
||||
if (fontEngine) {
|
||||
@ -1924,11 +1938,6 @@ QFontEngine *QWindowsFontDatabase::createEngine(const QFontDef &request,
|
||||
return fe;
|
||||
}
|
||||
|
||||
static inline int verticalDPI()
|
||||
{
|
||||
return GetDeviceCaps(QWindowsContext::instance()->displayContext(), LOGPIXELSY);
|
||||
}
|
||||
|
||||
QFont QWindowsFontDatabase::systemDefaultFont()
|
||||
{
|
||||
LOGFONT lf;
|
||||
@ -1944,7 +1953,7 @@ QFont QWindowsFontDatabase::systemDefaultFont()
|
||||
QFont QWindowsFontDatabase::LOGFONT_to_QFont(const LOGFONT& logFont, int verticalDPI_In)
|
||||
{
|
||||
if (verticalDPI_In <= 0)
|
||||
verticalDPI_In = verticalDPI();
|
||||
verticalDPI_In = defaultVerticalDPI();
|
||||
QFont qFont(QString::fromWCharArray(logFont.lfFaceName));
|
||||
qFont.setItalic(logFont.lfItalic);
|
||||
if (logFont.lfWeight != FW_DONTCARE)
|
||||
@ -1957,4 +1966,19 @@ QFont QWindowsFontDatabase::LOGFONT_to_QFont(const LOGFONT& logFont, int vertica
|
||||
return qFont;
|
||||
}
|
||||
|
||||
int QWindowsFontDatabase::defaultVerticalDPI()
|
||||
{
|
||||
static int vDPI = -1;
|
||||
if (vDPI == -1) {
|
||||
if (HDC defaultDC = GetDC(0)) {
|
||||
vDPI = GetDeviceCaps(defaultDC, LOGPIXELSY);
|
||||
ReleaseDC(0, defaultDC);
|
||||
} else {
|
||||
// FIXME: Resolve now or return 96 and keep unresolved?
|
||||
vDPI = 96;
|
||||
}
|
||||
}
|
||||
return vDPI;
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
@ -37,9 +37,8 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "qwindowsfontdatabase_ft.h"
|
||||
#include "qwindowsfontdatabase.h"
|
||||
#include "qwindowscontext.h"
|
||||
#include "qwindowsfontdatabase_ft_p.h"
|
||||
#include "qwindowsfontdatabase_p.h"
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_TRUETYPE_TABLES_H
|
||||
@ -188,7 +187,7 @@ static bool addFontToDatabase(const QString &faceName,
|
||||
const QFont::Stretch stretch = QFont::Unstretched;
|
||||
|
||||
#ifndef QT_NO_DEBUG_STREAM
|
||||
if (QWindowsContext::verbose > 2) {
|
||||
if (lcQpaFonts().isDebugEnabled()) {
|
||||
QString message;
|
||||
QTextStream str(&message);
|
||||
str << __FUNCTION__ << ' ' << faceName << "::" << fullName << ' ' << charSet << " TTF=" << ttf;
|
@ -40,6 +40,17 @@
|
||||
#ifndef QWINDOWSFONTDATABASEFT_H
|
||||
#define QWINDOWSFONTDATABASEFT_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 <QtFontDatabaseSupport/private/qbasicfontdatabase_p.h>
|
||||
#include <QtCore/QSharedPointer>
|
||||
#include <QtCore/qt_windows.h>
|
@ -40,8 +40,20 @@
|
||||
#ifndef QWINDOWSFONTDATABASE_H
|
||||
#define QWINDOWSFONTDATABASE_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 <qpa/qplatformfontdatabase.h>
|
||||
#include <QtCore/QSharedPointer>
|
||||
#include <QtCore/QLoggingCategory>
|
||||
#include <QtCore/qt_windows.h>
|
||||
|
||||
#if !defined(QT_NO_DIRECTWRITE)
|
||||
@ -51,6 +63,8 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
Q_DECLARE_LOGGING_CATEGORY(lcQpaFonts)
|
||||
|
||||
class QWindowsFontEngineData
|
||||
{
|
||||
Q_DISABLE_COPY(QWindowsFontEngineData)
|
||||
@ -72,6 +86,12 @@ public:
|
||||
class QWindowsFontDatabase : public QPlatformFontDatabase
|
||||
{
|
||||
public:
|
||||
enum FontOptions {
|
||||
// Relevant bits from QWindowsIntegration::Options
|
||||
DontUseDirectWriteFonts = 0x40,
|
||||
DontUseColorFonts = 0x80
|
||||
};
|
||||
|
||||
QWindowsFontDatabase();
|
||||
~QWindowsFontDatabase();
|
||||
|
||||
@ -105,6 +125,11 @@ public:
|
||||
static QStringList extraTryFontsForFamily(const QString &family);
|
||||
static QString familyForStyleHint(QFont::StyleHint styleHint);
|
||||
|
||||
static int defaultVerticalDPI();
|
||||
|
||||
static void setFontOptions(unsigned options);
|
||||
static unsigned fontOptions();
|
||||
|
||||
private:
|
||||
void populateFamily(const QString &familyName, bool registerAlias);
|
||||
void removeApplicationFonts();
|
||||
@ -122,6 +147,8 @@ private:
|
||||
};
|
||||
|
||||
QMap<QString, UniqueFontData> m_uniqueFontData;
|
||||
|
||||
static unsigned m_fontOptions;
|
||||
};
|
||||
|
||||
#ifndef QT_NO_DEBUG_STREAM
|
@ -37,14 +37,13 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "qwindowsintegration.h"
|
||||
#include "qwindowsfontengine.h"
|
||||
#include "qwindowsnativeimage.h"
|
||||
#include "qwindowscontext.h"
|
||||
#include "qwindowsfontdatabase.h"
|
||||
#include "qwindowsfontengine_p.h"
|
||||
#include "qwindowsnativeimage_p.h"
|
||||
#include "qwindowsfontdatabase_p.h"
|
||||
#include <QtCore/qt_windows.h>
|
||||
#include "qwindowsfontenginedirectwrite.h"
|
||||
#include "qwindowsfontenginedirectwrite_p.h"
|
||||
|
||||
#include <QtGui/qpa/qplatformintegration.h>
|
||||
#include <QtGui/private/qtextengine_p.h> // glyph_metrics_t
|
||||
#include <QtGui/private/qguiapplication_p.h>
|
||||
#include <QtGui/QPaintDevice>
|
||||
@ -315,8 +314,10 @@ QWindowsFontEngine::~QWindowsFontEngine()
|
||||
qCDebug(lcQpaFonts) << __FUNCTION__ << _name;
|
||||
|
||||
if (!uniqueFamilyName.isEmpty()) {
|
||||
QPlatformFontDatabase *pfdb = QWindowsIntegration::instance()->fontDatabase();
|
||||
static_cast<QWindowsFontDatabase *>(pfdb)->derefUniqueFont(uniqueFamilyName);
|
||||
if (QPlatformIntegration *pi = QGuiApplicationPrivate::platformIntegration()) {
|
||||
QPlatformFontDatabase *pfdb = pi->fontDatabase();
|
||||
static_cast<QWindowsFontDatabase *>(pfdb)->derefUniqueFont(uniqueFamilyName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1194,14 +1195,16 @@ QFontEngine *QWindowsFontEngine::cloneWithSize(qreal pixelSize) const
|
||||
|
||||
QFontEngine *fontEngine =
|
||||
QWindowsFontDatabase::createEngine(request,
|
||||
QWindowsContext::instance()->defaultDPI(),
|
||||
QWindowsFontDatabase::defaultVerticalDPI(),
|
||||
m_fontEngineData);
|
||||
if (fontEngine) {
|
||||
fontEngine->fontDef.family = actualFontName;
|
||||
if (!uniqueFamilyName.isEmpty()) {
|
||||
static_cast<QWindowsFontEngine *>(fontEngine)->setUniqueFamilyName(uniqueFamilyName);
|
||||
QPlatformFontDatabase *pfdb = QWindowsIntegration::instance()->fontDatabase();
|
||||
static_cast<QWindowsFontDatabase *>(pfdb)->refUniqueFont(uniqueFamilyName);
|
||||
if (QPlatformIntegration *pi = QGuiApplicationPrivate::platformIntegration()) {
|
||||
QPlatformFontDatabase *pfdb = pi->fontDatabase();
|
||||
static_cast<QWindowsFontDatabase *>(pfdb)->refUniqueFont(uniqueFamilyName);
|
||||
}
|
||||
}
|
||||
}
|
||||
return fontEngine;
|
||||
@ -1325,4 +1328,3 @@ bool QWindowsFontEngine::supportsTransformation(const QTransform &transform) con
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -44,8 +44,8 @@
|
||||
// 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
|
||||
// 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.
|
||||
@ -184,4 +184,3 @@ Q_DECLARE_METATYPE(HFONT)
|
||||
Q_DECLARE_METATYPE(LOGFONT)
|
||||
|
||||
#endif // QWINDOWSFONTENGINE_H
|
||||
|
@ -39,9 +39,8 @@
|
||||
|
||||
#ifndef QT_NO_DIRECTWRITE
|
||||
|
||||
#include "qwindowsfontenginedirectwrite.h"
|
||||
#include "qwindowsfontdatabase.h"
|
||||
#include "qwindowscontext.h"
|
||||
#include "qwindowsfontenginedirectwrite_p.h"
|
||||
#include "qwindowsfontdatabase_p.h"
|
||||
|
||||
#include <QtCore/QSettings>
|
||||
#include <QtCore/QtEndian>
|
@ -40,6 +40,17 @@
|
||||
#ifndef QWINDOWSFONTENGINEDIRECTWRITE_H
|
||||
#define QWINDOWSFONTENGINEDIRECTWRITE_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 <QtCore/qglobal.h>
|
||||
|
||||
#ifndef QT_NO_DIRECTWRITE
|
@ -37,8 +37,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "qwindowsnativeimage.h"
|
||||
#include "qwindowscontext.h"
|
||||
#include "qwindowsnativeimage_p.h"
|
||||
|
||||
#include <QtGui/private/qpaintengine_p.h>
|
||||
#include <QtGui/private/qpaintengine_raster_p.h>
|
||||
@ -143,7 +142,17 @@ QWindowsNativeImage::~QWindowsNativeImage()
|
||||
|
||||
QImage::Format QWindowsNativeImage::systemFormat()
|
||||
{
|
||||
static const int depth = QWindowsContext::instance()->screenDepth();
|
||||
static int depth = -1;
|
||||
if (depth == -1) {
|
||||
if (HDC defaultDC = GetDC(0)) {
|
||||
depth = GetDeviceCaps(defaultDC, BITSPIXEL);
|
||||
ReleaseDC(0, defaultDC);
|
||||
} else {
|
||||
// FIXME Same remark as in QWindowsFontDatabase::defaultVerticalDPI()
|
||||
// BONUS FIXME: Is 32 too generous/optimistic?
|
||||
depth = 32;
|
||||
}
|
||||
}
|
||||
return depth == 16 ? QImage::Format_RGB16 : QImage::Format_RGB32;
|
||||
}
|
||||
|
@ -40,8 +40,19 @@
|
||||
#ifndef QWINDOWSNATIVEIMAGE_H
|
||||
#define QWINDOWSNATIVEIMAGE_H
|
||||
|
||||
#include <QtCore/qt_windows.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 <QtCore/QtGlobal>
|
||||
#include <QtCore/qt_windows.h>
|
||||
#include <QtGui/QImage>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
33
src/platformsupport/fontdatabases/windows/windows.pri
Normal file
33
src/platformsupport/fontdatabases/windows/windows.pri
Normal file
@ -0,0 +1,33 @@
|
||||
QT *= gui-private
|
||||
|
||||
SOURCES += \
|
||||
$$PWD/qwindowsfontdatabase.cpp \
|
||||
$$PWD/qwindowsfontengine.cpp \
|
||||
$$PWD/qwindowsnativeimage.cpp
|
||||
|
||||
HEADERS += \
|
||||
$$PWD/qwindowsfontdatabase_p.h \
|
||||
$$PWD/qwindowsfontengine_p.h \
|
||||
$$PWD/qwindowsnativeimage_p.h
|
||||
|
||||
qtConfig(freetype) {
|
||||
SOURCES += $$PWD/qwindowsfontdatabase_ft.cpp
|
||||
HEADERS += $$PWD/qwindowsfontdatabase_ft_p.h
|
||||
qtConfig(system-freetype) {
|
||||
include($$QT_SOURCE_TREE/src/platformsupport/fontdatabases/basic/basic.pri)
|
||||
} else {
|
||||
include($$QT_SOURCE_TREE/src/3rdparty/freetype_dependency.pri)
|
||||
}
|
||||
}
|
||||
|
||||
qtConfig(directwrite) {
|
||||
qtConfig(directwrite2): \
|
||||
DEFINES *= QT_USE_DIRECTWRITE2
|
||||
|
||||
SOURCES += $$PWD/qwindowsfontenginedirectwrite.cpp
|
||||
HEADERS += $$PWD/qwindowsfontenginedirectwrite_p.h
|
||||
} else {
|
||||
DEFINES *= QT_NO_DIRECTWRITE
|
||||
}
|
||||
|
||||
LIBS += -lole32 -lgdi32 -luser32
|
@ -7,7 +7,7 @@ SUBDIRS = \
|
||||
fbconvenience \
|
||||
themes
|
||||
|
||||
qtConfig(freetype)|if(darwin:!if(watchos:CONFIG(simulator, simulator|device))): \
|
||||
qtConfig(freetype)|if(darwin:!if(watchos:CONFIG(simulator, simulator|device)))|win32: \
|
||||
SUBDIRS += fontdatabases
|
||||
|
||||
qtConfig(evdev)|qtConfig(tslib)|qtConfig(libinput) {
|
||||
|
@ -2,7 +2,8 @@ TARGET = qdirect2d
|
||||
|
||||
QT += \
|
||||
core-private gui-private \
|
||||
eventdispatcher_support-private
|
||||
eventdispatcher_support-private \
|
||||
fontdatabase_support-private theme_support-private
|
||||
|
||||
LIBS += -ldwmapi -ld2d1 -ld3d11 -ldwrite -lVersion -lgdi32
|
||||
|
||||
|
@ -45,8 +45,8 @@
|
||||
#include "qwindowsdirect2dbitmap.h"
|
||||
#include "qwindowsdirect2ddevicecontext.h"
|
||||
|
||||
#include "qwindowsfontengine.h"
|
||||
#include "qwindowsfontdatabase.h"
|
||||
#include <QtFontDatabaseSupport/private/qwindowsfontdatabase_p.h>
|
||||
#include <QtFontDatabaseSupport/private/qwindowsfontengine_p.h>
|
||||
#include "qwindowsintegration.h"
|
||||
|
||||
#include <QtCore/QtMath>
|
||||
|
@ -39,11 +39,11 @@
|
||||
|
||||
#include "qwindowsbackingstore.h"
|
||||
#include "qwindowswindow.h"
|
||||
#include "qwindowsnativeimage.h"
|
||||
#include "qwindowscontext.h"
|
||||
|
||||
#include <QtGui/QWindow>
|
||||
#include <QtGui/QPainter>
|
||||
#include <QtFontDatabaseSupport/private/qwindowsnativeimage_p.h>
|
||||
#include <private/qhighdpiscaling_p.h>
|
||||
#include <private/qimage_p.h>
|
||||
|
||||
|
@ -84,7 +84,6 @@ QT_BEGIN_NAMESPACE
|
||||
Q_LOGGING_CATEGORY(lcQpaWindows, "qt.qpa.windows")
|
||||
Q_LOGGING_CATEGORY(lcQpaBackingStore, "qt.qpa.backingstore")
|
||||
Q_LOGGING_CATEGORY(lcQpaEvents, "qt.qpa.events")
|
||||
Q_LOGGING_CATEGORY(lcQpaFonts, "qt.qpa.fonts")
|
||||
Q_LOGGING_CATEGORY(lcQpaGl, "qt.qpa.gl")
|
||||
Q_LOGGING_CATEGORY(lcQpaMime, "qt.qpa.mime")
|
||||
Q_LOGGING_CATEGORY(lcQpaInputMethods, "qt.qpa.input.methods")
|
||||
|
@ -59,7 +59,6 @@ QT_BEGIN_NAMESPACE
|
||||
Q_DECLARE_LOGGING_CATEGORY(lcQpaWindows)
|
||||
Q_DECLARE_LOGGING_CATEGORY(lcQpaBackingStore)
|
||||
Q_DECLARE_LOGGING_CATEGORY(lcQpaEvents)
|
||||
Q_DECLARE_LOGGING_CATEGORY(lcQpaFonts)
|
||||
Q_DECLARE_LOGGING_CATEGORY(lcQpaGl)
|
||||
Q_DECLARE_LOGGING_CATEGORY(lcQpaMime)
|
||||
Q_DECLARE_LOGGING_CATEGORY(lcQpaInputMethods)
|
||||
|
@ -47,9 +47,8 @@
|
||||
#include "qwindowstheme.h"
|
||||
#include "qwindowsservices.h"
|
||||
#ifndef QT_NO_FREETYPE
|
||||
# include "qwindowsfontdatabase_ft.h"
|
||||
# include <QtFontDatabaseSupport/private/qwindowsfontdatabase_ft_p.h>
|
||||
#endif
|
||||
#include "qwindowsfontdatabase.h"
|
||||
#ifndef QT_NO_CLIPBOARD
|
||||
# include "qwindowsclipboard.h"
|
||||
# ifndef QT_NO_DRAGANDDROP
|
||||
@ -220,6 +219,7 @@ QWindowsIntegrationPrivate::QWindowsIntegrationPrivate(const QStringList ¶mL
|
||||
// are connected to Windows 8.1
|
||||
QtWindows::ProcessDpiAwareness dpiAwareness = QtWindows::ProcessPerMonitorDpiAware;
|
||||
m_options = parseOptions(paramList, &tabletAbsoluteRange, &dpiAwareness);
|
||||
QWindowsFontDatabase::setFontOptions(m_options);
|
||||
if (tabletAbsoluteRange >= 0)
|
||||
m_context.setTabletAbsoluteRange(tabletAbsoluteRange);
|
||||
if (!dpiAwarenessSet) { // Set only once in case of repeated instantiations of QGuiApplication.
|
||||
|
@ -43,6 +43,7 @@
|
||||
|
||||
#include <qpa/qplatformintegration.h>
|
||||
#include <QtCore/QScopedPointer>
|
||||
#include <QtFontDatabaseSupport/private/qwindowsfontdatabase_p.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
@ -61,8 +62,9 @@ public:
|
||||
NoNativeDialogs = 0x8,
|
||||
XpNativeDialogs = 0x10,
|
||||
DontPassOsMouseEventsSynthesizedFromTouch = 0x20, // Do not pass OS-generated mouse events from touch.
|
||||
DontUseDirectWriteFonts = 0x40,
|
||||
DontUseColorFonts = 0x80
|
||||
// Keep in sync with QWindowsFontDatabase::FontOptions
|
||||
DontUseDirectWriteFonts = QWindowsFontDatabase::DontUseDirectWriteFonts,
|
||||
DontUseColorFonts = QWindowsFontDatabase::DontUseColorFonts
|
||||
};
|
||||
|
||||
explicit QWindowsIntegration(const QStringList ¶mList);
|
||||
|
@ -41,7 +41,6 @@
|
||||
#include "qwindowswindow.h"
|
||||
#include "qwindowscontext.h"
|
||||
#include "qwindowscursor.h"
|
||||
#include "qwindowsfontdatabase.h"
|
||||
#include "qwindowsopenglcontext.h"
|
||||
#include "qwindowsopengltester.h"
|
||||
#include "qwindowsintegration.h"
|
||||
@ -51,6 +50,7 @@
|
||||
#include <QtGui/QOpenGLContext>
|
||||
#include <QtGui/QScreen>
|
||||
#include <qpa/qplatformscreen.h>
|
||||
#include <QtFontDatabaseSupport/private/qwindowsfontdatabase_p.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
|
@ -48,7 +48,6 @@
|
||||
#include "qwindowscontext.h"
|
||||
#include "qwindowsintegration.h"
|
||||
#include "qt_windows.h"
|
||||
#include "qwindowsfontdatabase.h"
|
||||
#include <commctrl.h>
|
||||
#include <objbase.h>
|
||||
#ifndef Q_CC_MINGW
|
||||
@ -69,6 +68,7 @@
|
||||
#include <QtGui/QPixmapCache>
|
||||
#include <qpa/qwindowsysteminterface.h>
|
||||
#include <QtThemeSupport/private/qabstractfileiconengine_p.h>
|
||||
#include <QtFontDatabaseSupport/private/qwindowsfontdatabase_p.h>
|
||||
#include <private/qhighdpiscaling_p.h>
|
||||
#include <private/qsystemlibrary_p.h>
|
||||
|
||||
|
@ -38,7 +38,6 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include "qwindowswindow.h"
|
||||
#include "qwindowsnativeimage.h"
|
||||
#include "qwindowscontext.h"
|
||||
#include "qwindowsdrag.h"
|
||||
#include "qwindowsscreen.h"
|
||||
|
@ -9,24 +9,12 @@ LIBS += -lshlwapi -lshell32 -ladvapi32
|
||||
|
||||
DEFINES *= QT_NO_CAST_FROM_ASCII
|
||||
|
||||
qtConfig(directwrite) {
|
||||
qtConfig(directwrite2): \
|
||||
DEFINES *= QT_USE_DIRECTWRITE2
|
||||
|
||||
SOURCES += $$PWD/qwindowsfontenginedirectwrite.cpp
|
||||
HEADERS += $$PWD/qwindowsfontenginedirectwrite.h
|
||||
} else {
|
||||
DEFINES *= QT_NO_DIRECTWRITE
|
||||
}
|
||||
|
||||
SOURCES += \
|
||||
$$PWD/qwindowswindow.cpp \
|
||||
$$PWD/qwindowsintegration.cpp \
|
||||
$$PWD/qwindowscontext.cpp \
|
||||
$$PWD/qwindowsscreen.cpp \
|
||||
$$PWD/qwindowskeymapper.cpp \
|
||||
$$PWD/qwindowsfontengine.cpp \
|
||||
$$PWD/qwindowsfontdatabase.cpp \
|
||||
$$PWD/qwindowsmousehandler.cpp \
|
||||
$$PWD/qwindowsole.cpp \
|
||||
$$PWD/qwindowsmime.cpp \
|
||||
@ -36,7 +24,6 @@ SOURCES += \
|
||||
$$PWD/qwindowstheme.cpp \
|
||||
$$PWD/qwindowsdialoghelpers.cpp \
|
||||
$$PWD/qwindowsservices.cpp \
|
||||
$$PWD/qwindowsnativeimage.cpp \
|
||||
$$PWD/qwindowsnativeinterface.cpp \
|
||||
$$PWD/qwindowsopengltester.cpp
|
||||
|
||||
@ -46,8 +33,6 @@ HEADERS += \
|
||||
$$PWD/qwindowscontext.h \
|
||||
$$PWD/qwindowsscreen.h \
|
||||
$$PWD/qwindowskeymapper.h \
|
||||
$$PWD/qwindowsfontengine.h \
|
||||
$$PWD/qwindowsfontdatabase.h \
|
||||
$$PWD/qwindowsmousehandler.h \
|
||||
$$PWD/qtwindowsglobal.h \
|
||||
$$PWD/qwindowsole.h \
|
||||
@ -58,7 +43,6 @@ HEADERS += \
|
||||
$$PWD/qwindowstheme.h \
|
||||
$$PWD/qwindowsdialoghelpers.h \
|
||||
$$PWD/qwindowsservices.h \
|
||||
$$PWD/qwindowsnativeimage.h \
|
||||
$$PWD/qwindowsnativeinterface.h \
|
||||
$$PWD/qwindowsopengltester.h \
|
||||
$$PWD/qwindowsthreadpoolrunner.h
|
||||
@ -111,11 +95,6 @@ qtConfig(dynamicgl) {
|
||||
|
||||
RESOURCES += $$PWD/openglblacklists.qrc
|
||||
|
||||
qtConfig(freetype) {
|
||||
HEADERS += $$PWD/qwindowsfontdatabase_ft.h
|
||||
SOURCES += $$PWD/qwindowsfontdatabase_ft.cpp
|
||||
}
|
||||
|
||||
qtConfig(accessibility): include($$PWD/accessible/accessible.pri)
|
||||
|
||||
DEFINES *= LIBEGL_NAME=$${LIBEGL_NAME}
|
||||
|
Loading…
Reference in New Issue
Block a user