Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:13.2
libqt5-qtbase
0004-GTK2-theme-should-use-GTK-configured-font-...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0004-GTK2-theme-should-use-GTK-configured-font-variant.patch of Package libqt5-qtbase
From d7afdc53b28d107bbf8cdfd52777cb7cb9f2c10d Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen <allan.jensen@digia.com> Date: Tue, 12 Aug 2014 16:59:18 +0200 Subject: [PATCH 4/4] GTK2 theme should use GTK configured font variant This patch makes the GTK2 theme read the font configuration and use that as the default system font. Task-number: QTBUG-39643 Change-Id: Ieacf8968e54f34c6d44669350d349c9a96ed6cc5 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> (cherry picked from commit 2a33bfcfd174d503e2f98c66d8de0a68783015da) --- .../themes/genericunix/qgenericunixthemes.cpp | 27 +++++++++++++++++----- .../themes/genericunix/qgenericunixthemes_p.h | 2 ++ src/plugins/platformthemes/gtk2/qgtk2theme.cpp | 8 +++++++ src/plugins/platformthemes/gtk2/qgtk2theme.h | 3 ++- 4 files changed, 33 insertions(+), 7 deletions(-) diff --git a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp index 4a1d67f..b68aa85 100644 --- a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp +++ b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp @@ -482,15 +482,23 @@ const char *QGnomeTheme::name = "gnome"; class QGnomeThemePrivate : public QPlatformThemePrivate { public: - QGnomeThemePrivate() - : systemFont(QLatin1Literal(defaultSystemFontNameC), defaultSystemFontSize) - , fixedFont(QStringLiteral("monospace"), systemFont.pointSize()) + QGnomeThemePrivate() : fontsConfigured(false) { } + void configureFonts(QString gtkFontName) const { + Q_ASSERT(!fontsConfigured); + const int split = gtkFontName.lastIndexOf(QChar::Space); + float size = gtkFontName.mid(split+1).toFloat(); + QString fontName = gtkFontName.left(split); + + systemFont = QFont(fontName, size); + fixedFont = QFont(QLatin1String("monospace"), systemFont.pointSize()); fixedFont.setStyleHint(QFont::TypeWriter); + fontsConfigured = true; } - const QFont systemFont; - QFont fixedFont; + mutable QFont systemFont; + mutable QFont fixedFont; + mutable bool fontsConfigured; }; QGnomeTheme::QGnomeTheme() @@ -528,9 +536,11 @@ QVariant QGnomeTheme::themeHint(QPlatformTheme::ThemeHint hint) const const QFont *QGnomeTheme::font(Font type) const { Q_D(const QGnomeTheme); + if (!d->fontsConfigured) + d->configureFonts(gtkFontName()); switch (type) { case QPlatformTheme::SystemFont: - return &d->systemFont; + return &d->systemFont; case QPlatformTheme::FixedFont: return &d->fixedFont; default: @@ -538,6 +548,11 @@ const QFont *QGnomeTheme::font(Font type) const } } +QString QGnomeTheme::gtkFontName() const +{ + return QStringLiteral("%1 %2").arg(QLatin1String(defaultSystemFontNameC)).arg(defaultSystemFontSize); +} + QString QGnomeTheme::standardButtonText(int button) const { switch (button) { diff --git a/src/platformsupport/themes/genericunix/qgenericunixthemes_p.h b/src/platformsupport/themes/genericunix/qgenericunixthemes_p.h index 36fcdd8..fd65402 100644 --- a/src/platformsupport/themes/genericunix/qgenericunixthemes_p.h +++ b/src/platformsupport/themes/genericunix/qgenericunixthemes_p.h @@ -111,6 +111,8 @@ public: virtual const QFont *font(Font type) const; QString standardButtonText(int button) const Q_DECL_OVERRIDE; + virtual QString gtkFontName() const; + static const char *name; }; diff --git a/src/plugins/platformthemes/gtk2/qgtk2theme.cpp b/src/plugins/platformthemes/gtk2/qgtk2theme.cpp index 812f4bc..4df3a30 100644 --- a/src/plugins/platformthemes/gtk2/qgtk2theme.cpp +++ b/src/plugins/platformthemes/gtk2/qgtk2theme.cpp @@ -85,6 +85,14 @@ QVariant QGtk2Theme::themeHint(QPlatformTheme::ThemeHint hint) const } } +QString QGtk2Theme::gtkFontName() const +{ + QString cfgFontName = gtkSetting("gtk-font-name"); + if (!cfgFontName.isEmpty()) + return cfgFontName; + return QGnomeTheme::gtkFontName(); +} + bool QGtk2Theme::usePlatformNativeDialog(DialogType type) const { switch (type) { diff --git a/src/plugins/platformthemes/gtk2/qgtk2theme.h b/src/plugins/platformthemes/gtk2/qgtk2theme.h index a0bd34e..c74e58e 100644 --- a/src/plugins/platformthemes/gtk2/qgtk2theme.h +++ b/src/plugins/platformthemes/gtk2/qgtk2theme.h @@ -51,7 +51,8 @@ class QGtk2Theme : public QGnomeTheme public: QGtk2Theme(); - QVariant themeHint(ThemeHint hint) const; + virtual QVariant themeHint(ThemeHint hint) const Q_DECL_OVERRIDE; + virtual QString gtkFontName() const Q_DECL_OVERRIDE; bool usePlatformNativeDialog(DialogType type) const; QPlatformDialogHelper *createPlatformDialogHelper(DialogType type) const; -- 2.1.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor