QPlatformFontDatabase: Add default fonts.

Add a default font accessor used to initalize QGuiApplication::font().
Add accessor for default font hash providing the defaults for
QApplication::font(const char *widgetClassName).

Change-Id: Ie4eb6edb251a81e81288ef480ae5550bd1125008
Reviewed-by: Samuel Rødal <sroedal@trolltech.com>
Reviewed-on: http://codereview.qt.nokia.com/2567
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
This commit is contained in:
Friedemann Kleint 2011-08-03 14:50:40 +02:00
parent 6c4dec7bff
commit 37edacb710
5 changed files with 35 additions and 3 deletions

View File

@ -45,6 +45,7 @@
#include "private/qplatformintegrationfactory_qpa_p.h"
#include "private/qevent_p.h"
#include "qfont.h"
#include "qplatformfontdatabase_qpa.h"
#include <QtCore/QAbstractEventDispatcher>
#include <QtCore/private/qcoreapplication_p.h>
@ -861,7 +862,8 @@ QFont QGuiApplication::font()
{
QMutexLocker locker(applicationFontMutex());
if (!QGuiApplicationPrivate::app_font)
QGuiApplicationPrivate::app_font = new QFont(QLatin1String("Helvetica"));
QGuiApplicationPrivate::app_font =
new QFont(QGuiApplicationPrivate::platformIntegration()->fontDatabase()->defaultFont());
return *QGuiApplicationPrivate::app_font;
}

View File

@ -195,6 +195,7 @@ QPlatformPixmap *QPlatformIntegration::createPlatformPixmap(QPlatformPixmap::Pix
QPlatformGLContext *QPlatformIntegration::createPlatformGLContext(QGuiGLContext *context) const
{
Q_UNUSED(context);
qWarning("This plugin does not support createPlatformGLContext!");
return 0;
}

View File

@ -343,6 +343,30 @@ QString QPlatformFontDatabase::fontDir() const
return fontpath;
}
/*!
Returns the default system font.
\sa QGuiApplication::font()
\since 5.0
*/
QFont QPlatformFontDatabase::defaultFont() const
{
return QFont(QLatin1String("Helvetica"));
}
/*!
Returns fonts for class names.
\sa QGuiApplication::font()
\since 5.0
*/
QHash<QByteArray, QFont> QPlatformFontDatabase::defaultFonts() const
{
return QHash<QByteArray, QFont>();
}
/*!
\class QPlatformFontDatabase
\brief The QPlatformFontDatabase class makes it possible to customize how fonts

View File

@ -46,6 +46,7 @@
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QList>
#include <QtCore/QHash>
#include <QtGui/QFontDatabase>
#include <QtGui/private/qfont_p.h>
@ -96,6 +97,9 @@ public:
virtual QString fontDir() const;
virtual QFont defaultFont() const;
virtual QHash<QByteArray, QFont> defaultFonts() const;
//callback
static void registerQPF2Font(const QByteArray &dataArray, void *handle);
static void registerFont(const QString &familyname, const QString &foundryname, QFont::Weight weight,

View File

@ -101,7 +101,8 @@
#include "qgesture.h"
#include "private/qgesturemanager_p.h"
#include "private/qguiapplication_p.h"
#include "qplatformfontdatabase_qpa.h"
#ifndef QT_NO_LIBRARY
#include "qlibrary.h"
#endif
@ -514,7 +515,7 @@ PaletteHash *qt_app_palettes_hash()
return app_palettes();
}
Q_GLOBAL_STATIC(FontHash, app_fonts)
Q_GLOBAL_STATIC_WITH_INITIALIZER(FontHash, app_fonts, { *x = QGuiApplicationPrivate::platformIntegration()->fontDatabase()->defaultFonts(); } )
FontHash *qt_app_fonts_hash()
{
return app_fonts();