const char *QGenericUnixTheme::name = "generic";
+// Default system font, corresponding to the value returned by 4.8 for
+// XRender/FontConfig which we can now assume as default.
+static const char defaultSystemFontNameC[] = "Sans Serif";
+enum { defaultSystemFontSize = 9 };
+
+QGenericUnixTheme::QGenericUnixTheme()
+ : m_systemFont(QLatin1String(defaultSystemFontNameC), defaultSystemFontSize)
+{
+}
+
+const QFont *QGenericUnixTheme::font(Font type) const
+{
+ if (type == QPlatformTheme::SystemFont)
+ return &m_systemFont;
+ return 0;
+}
+
// Helper to return the icon theme paths from XDG.
QStringList QGenericUnixTheme::xdgIconThemePaths()
{
}
// Read system font, ignore 'fixed' 'smallestReadableFont'
- m_resources.fonts[SystemFont] = readKdeFontSetting(kdeSettings, QStringLiteral("font"));
+ if (QFont *systemFont = readKdeFontSetting(kdeSettings, QStringLiteral("font"))) {
+ m_resources.fonts[SystemFont] = systemFont;
+ } else {
+ m_resources.fonts[SystemFont] = new QFont(QLatin1String(defaultSystemFontNameC), defaultSystemFontSize);
+ }
}
QString QKdeTheme::globalSettingsFile() const
const char *QGnomeTheme::name = "gnome";
+QGnomeTheme::QGnomeTheme()
+ : m_systemFont(QLatin1String(defaultSystemFontNameC), defaultSystemFontSize)
+{
+}
+
QVariant QGnomeTheme::themeHint(QPlatformTheme::ThemeHint hint) const
{
switch (hint) {
return QPlatformTheme::themeHint(hint);
}
+const QFont *QGnomeTheme::font(Font type) const
+{
+ if (type == QPlatformTheme::SystemFont)
+ return &m_systemFont;
+ return 0;
+}
+
/*!
\brief Creates a UNIX theme according to the detected desktop environment.
*/
#include <qpa/qplatformtheme.h>
#include <QtCore/QString>
#include <QtCore/QStringList>
+#include <QtGui/QFont>
QT_BEGIN_HEADER
class QGenericUnixTheme : public QPlatformTheme
{
public:
- QGenericUnixTheme() {}
+ QGenericUnixTheme();
static QPlatformTheme *createUnixTheme(const QString &name);
static QStringList themeNames();
+ virtual const QFont *font(Font type) const;
virtual QVariant themeHint(ThemeHint hint) const;
static QStringList xdgIconThemePaths();
static const char *name;
+
+private:
+ const QFont m_systemFont;
};
#ifndef QT_NO_SETTINGS
class QGnomeTheme : public QPlatformTheme
{
public:
- QGnomeTheme() {}
+ QGnomeTheme();
virtual QVariant themeHint(ThemeHint hint) const;
+ virtual const QFont *font(Font type) const;
static const char *name;
private:
+ const QFont m_systemFont;
};
QPlatformTheme *qt_createUnixTheme();