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

View File

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

View File

@ -343,6 +343,30 @@ QString QPlatformFontDatabase::fontDir() const
return fontpath; 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 \class QPlatformFontDatabase
\brief The QPlatformFontDatabase class makes it possible to customize how fonts \brief The QPlatformFontDatabase class makes it possible to customize how fonts

View File

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

View File

@ -101,7 +101,8 @@
#include "qgesture.h" #include "qgesture.h"
#include "private/qgesturemanager_p.h" #include "private/qgesturemanager_p.h"
#include "private/qguiapplication_p.h"
#include "qplatformfontdatabase_qpa.h"
#ifndef QT_NO_LIBRARY #ifndef QT_NO_LIBRARY
#include "qlibrary.h" #include "qlibrary.h"
#endif #endif
@ -514,7 +515,7 @@ PaletteHash *qt_app_palettes_hash()
return app_palettes(); 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() FontHash *qt_app_fonts_hash()
{ {
return app_fonts(); return app_fonts();