summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@nokia.com>2011-04-27 17:29:10 +0200
committerSamuel Rødal <samuel.rodal@nokia.com>2011-04-28 15:39:46 +0200
commit9f14dc661e7cdac5435cf1463b1a595ea519fea2 (patch)
treeec56acfbf4a9492c4cd15c0bc4fe6a11a22b46b8 /src/gui
parent9b8759284bc7d447227c9e0aaf3caade49e9f5f7 (diff)
Font
(cherry picked from commit 050925ccac957dea3d4e138babdd7aa93925dffc)
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/kernel/qapplication.cpp13
-rw-r--r--src/gui/kernel/qapplication_p.h2
-rw-r--r--src/gui/kernel/qguiapplication_qpa.cpp20
-rw-r--r--src/gui/kernel/qguiapplication_qpa.h7
-rw-r--r--src/gui/kernel/qguiapplication_qpa_p.h2
5 files changed, 39 insertions, 5 deletions
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index 8533b39398..13162800ac 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -457,8 +457,10 @@ QGraphicsSystem *QApplicationPrivate::graphics_system = 0; // default graphics s
QString QApplicationPrivate::graphics_system_name; // graphics system id - for delayed initialization
bool QApplicationPrivate::runtime_graphics_system = false;
+#ifndef Q_WS_QPA
Q_GLOBAL_STATIC(QMutex, applicationFontMutex)
QFont *QApplicationPrivate::app_font = 0; // default application font
+#endif
QFont *QApplicationPrivate::sys_font = 0; // default system font
QFont *QApplicationPrivate::set_font = 0; // default font set by programmer
@@ -1146,11 +1148,14 @@ QApplication::~QApplication()
QApplicationPrivate::set_pal = 0;
app_palettes()->clear();
+#ifndef Q_WS_QPA
{
QMutexLocker locker(applicationFontMutex());
delete QApplicationPrivate::app_font;
QApplicationPrivate::app_font = 0;
}
+#endif
+
delete QApplicationPrivate::sys_font;
QApplicationPrivate::sys_font = 0;
delete QApplicationPrivate::set_font;
@@ -1940,10 +1945,14 @@ void QApplicationPrivate::setSystemPalette(const QPalette &pal)
*/
QFont QApplication::font()
{
+#ifndef Q_WS_QPA
QMutexLocker locker(applicationFontMutex());
if (!QApplicationPrivate::app_font)
QApplicationPrivate::app_font = new QFont(QLatin1String("Helvetica"));
return *QApplicationPrivate::app_font;
+#else
+ return QGuiApplication::font();
+#endif
}
/*!
@@ -2022,11 +2031,15 @@ void QApplication::setFont(const QFont &font, const char *className)
bool all = false;
FontHash *hash = app_fonts();
if (!className) {
+#ifndef Q_WS_QPA
QMutexLocker locker(applicationFontMutex());
if (!QApplicationPrivate::app_font)
QApplicationPrivate::app_font = new QFont(font);
else
*QApplicationPrivate::app_font = font;
+#else
+ QGuiApplication::setFont(font);
+#endif
if (hash && hash->size()) {
all = true;
hash->clear();
diff --git a/src/gui/kernel/qapplication_p.h b/src/gui/kernel/qapplication_p.h
index 4127048c91..2b7ec31b73 100644
--- a/src/gui/kernel/qapplication_p.h
+++ b/src/gui/kernel/qapplication_p.h
@@ -432,7 +432,9 @@ public:
static bool runtime_graphics_system;
private:
+#ifndef Q_WS_QPA
static QFont *app_font; // private for a reason! Always use QApplication::font() instead!
+#endif
public:
static QFont *sys_font;
static QFont *set_font;
diff --git a/src/gui/kernel/qguiapplication_qpa.cpp b/src/gui/kernel/qguiapplication_qpa.cpp
index 67ad5a7169..df03c44c73 100644
--- a/src/gui/kernel/qguiapplication_qpa.cpp
+++ b/src/gui/kernel/qguiapplication_qpa.cpp
@@ -47,6 +47,7 @@
#include <QtCore/private/qcoreapplication_p.h>
#include <QtCore/private/qabstracteventdispatcher_p.h>
+#include <QtCore/qmutex.h>
#include <QtDebug>
#include <QtGui/QPlatformIntegration>
@@ -92,6 +93,9 @@ QGuiApplicationPrivate *QGuiApplicationPrivate::self = 0;
QClipboard *QGuiApplicationPrivate::qt_clipboard = 0;
#endif
+Q_GLOBAL_STATIC(QMutex, applicationFontMutex)
+QFont *QGuiApplicationPrivate::app_font = 0;
+
QGuiApplication::QGuiApplication(int &argc, char **argv, int flags)
: QCoreApplication(*new QGuiApplicationPrivate(argc, argv, flags))
{
@@ -738,5 +742,21 @@ QClipboard * QGuiApplication::clipboard()
}
#endif
+QFont QGuiApplication::font()
+{
+ QMutexLocker locker(applicationFontMutex());
+ if (!QGuiApplicationPrivate::app_font)
+ QGuiApplicationPrivate::app_font = new QFont(QLatin1String("Helvetica"));
+ return *QGuiApplicationPrivate::app_font;
+}
+
+void QGuiApplication::setFont(const QFont &font)
+{
+ QMutexLocker locker(applicationFontMutex());
+ if (!QGuiApplicationPrivate::app_font)
+ QGuiApplicationPrivate::app_font = new QFont(font);
+ else
+ *QGuiApplicationPrivate::app_font = font;
+}
QT_END_NAMESPACE
diff --git a/src/gui/kernel/qguiapplication_qpa.h b/src/gui/kernel/qguiapplication_qpa.h
index 4be4e193ef..707510717c 100644
--- a/src/gui/kernel/qguiapplication_qpa.h
+++ b/src/gui/kernel/qguiapplication_qpa.h
@@ -73,13 +73,10 @@ public:
static void changeOverrideCursor(const QCursor &);
static void restoreOverrideCursor();
#endif
+#endif
static QFont font();
- static QFont font(const QWidget*);
- static QFont font(const char *className);
- static void setFont(const QFont &, const char* className = 0);
- static QFontMetrics fontMetrics();
-#endif
+ static void setFont(const QFont &);
#ifndef QT_NO_CLIPBOARD
static QClipboard *clipboard();
diff --git a/src/gui/kernel/qguiapplication_qpa_p.h b/src/gui/kernel/qguiapplication_qpa_p.h
index b3ecd01703..d1ea998768 100644
--- a/src/gui/kernel/qguiapplication_qpa_p.h
+++ b/src/gui/kernel/qguiapplication_qpa_p.h
@@ -117,6 +117,8 @@ public:
#ifndef QT_NO_CLIPBOARD
static QClipboard *qt_clipboard;
#endif
+
+ static QFont *app_font;
private:
void init();