diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-04-26 09:45:55 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-04-26 09:45:55 +0200 |
commit | 08585f02dc0eb8dc5567f47c55915540c0a34e01 (patch) | |
tree | d509ccc2e90e13620ef423cb099262cd88919c0a /src/platformsupport | |
parent | 55145c52677e961804b7b3a725652bd5ce1e0269 (diff) | |
parent | 4c231d5df3040dbf4545a9a77145ee0e1f9c380c (diff) |
Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev
Diffstat (limited to 'src/platformsupport')
8 files changed, 200 insertions, 138 deletions
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp index 8d6f415fba..9c28c9fa63 100644 --- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp +++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp @@ -491,8 +491,22 @@ void QFontconfigDatabase::populateFontDatabase() fontFile->fileName = QLatin1String((const char *)file_value); fontFile->indexValue = indexValue; - if (isSymbolFont(fontFile)) - writingSystems.setSupported(QFontDatabase::Other); + if (!writingSystems.supported(QFontDatabase::Symbol)) { + // Symbol encoding used to encode various crap in the 32..255 character + // code range, which belongs to Latin character code range. + // Symbol fonts usually don't have any other code ranges support. + bool mightBeSymbolFont = true; + for (int j = 2; j < QFontDatabase::WritingSystemsCount; ++j) { + if (writingSystems.supported(QFontDatabase::WritingSystem(j))) { + mightBeSymbolFont = false; + break; + } + } + if (mightBeSymbolFont && isSymbolFont(fontFile)) { + writingSystems.setSupported(QFontDatabase::Latin, false); + writingSystems.setSupported(QFontDatabase::Symbol); + } + } QFont::Style style = (slant_value == FC_SLANT_ITALIC) ? QFont::StyleItalic diff --git a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm index 3e553acd0a..8d1c4ed064 100644 --- a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm +++ b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm @@ -189,6 +189,8 @@ void QCoreTextFontEngine::init() avgCharWidth = QFixed::fromReal(width * fontDef.pixelSize / emSize); } else avgCharWidth = QFontEngine::averageCharWidth(); + + cache_cost = (CTFontGetAscent(ctfont) + CTFontGetDescent(ctfont)) * avgCharWidth.toInt() * 2000; } bool QCoreTextFontEngine::stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, diff --git a/src/platformsupport/linuxaccessibility/bridge.cpp b/src/platformsupport/linuxaccessibility/bridge.cpp index 181feeba6a..350c67f1ed 100644 --- a/src/platformsupport/linuxaccessibility/bridge.cpp +++ b/src/platformsupport/linuxaccessibility/bridge.cpp @@ -62,7 +62,7 @@ QT_BEGIN_NAMESPACE */ QSpiAccessibleBridge::QSpiAccessibleBridge() - : cache(0), dec(0), dbusAdaptor(0), m_enabled(false) + : cache(0), dec(0), dbusAdaptor(0) { dbusConnection = new DBusConnection(); connect(dbusConnection, SIGNAL(enabledChanged(bool)), this, SLOT(enabledChanged(bool))); @@ -70,7 +70,7 @@ QSpiAccessibleBridge::QSpiAccessibleBridge() void QSpiAccessibleBridge::enabledChanged(bool enabled) { - m_enabled = enabled; + setActive(enabled); updateStatus(); } @@ -87,7 +87,7 @@ QDBusConnection QSpiAccessibleBridge::dBusConnection() const void QSpiAccessibleBridge::updateStatus() { // create the adaptor to handle everything if we are in enabled state - if (!dbusAdaptor && m_enabled) { + if (!dbusAdaptor && isActive()) { qSpiInitializeStructTypes(); initializeConstantMappings(); @@ -106,7 +106,7 @@ void QSpiAccessibleBridge::notifyAccessibilityUpdate(QAccessibleEvent *event) { if (!dbusAdaptor) return; - if (m_enabled) + if (isActive()) dbusAdaptor->notify(event); } diff --git a/src/platformsupport/linuxaccessibility/bridge_p.h b/src/platformsupport/linuxaccessibility/bridge_p.h index 8a02847d3d..0e1624c522 100644 --- a/src/platformsupport/linuxaccessibility/bridge_p.h +++ b/src/platformsupport/linuxaccessibility/bridge_p.h @@ -76,7 +76,6 @@ private: DeviceEventControllerAdaptor *dec; AtSpiAdaptor *dbusAdaptor; DBusConnection* dbusConnection; - bool m_enabled; }; QT_END_NAMESPACE diff --git a/src/platformsupport/linuxaccessibility/dbusconnection.cpp b/src/platformsupport/linuxaccessibility/dbusconnection.cpp index a37b99c105..18915f8e08 100644 --- a/src/platformsupport/linuxaccessibility/dbusconnection.cpp +++ b/src/platformsupport/linuxaccessibility/dbusconnection.cpp @@ -48,6 +48,7 @@ #include <qdebug.h> #include <QDBusConnectionInterface> +#include "bus_interface.h" QT_BEGIN_NAMESPACE @@ -81,21 +82,24 @@ void DBusConnection::serviceRegistered() { // listen to enabled changes QDBusConnection c = QDBusConnection::sessionBus(); - // FXIME check for changes of enabled state -// if (!c.connect(A11Y_SERVICE, A11Y_PATH, QStringLiteral("org.freedesktop.DBus.Properties"), QStringLiteral("PropertiesChanged"), this, SLOT(enabledStateChanged(QDBusVariant)))) -// qWarning() << "Could not listen to accessibility enabled state changes."; - - // check if it's enabled right away - QDBusMessage enabledMessage = QDBusMessage::createMethodCall(A11Y_SERVICE, A11Y_PATH, QStringLiteral("org.freedesktop.DBus.Properties"), QStringLiteral("Get")); - QList<QVariant> args; - args << QStringLiteral("org.a11y.Status") << QStringLiteral("IsEnabled"); - enabledMessage.setArguments(args); - c.callWithCallback(enabledMessage, this, SLOT(enabledStateCallback(QDBusVariant)), SLOT(dbusError(QDBusError))); -} + OrgA11yStatusInterface *a11yStatus = new OrgA11yStatusInterface(A11Y_SERVICE, A11Y_PATH, c, this); + + // a11yStatus->isEnabled() returns always true (since Gnome 3.6) + bool enabled = a11yStatus->screenReaderEnabled(); + if (enabled != m_enabled) { + m_enabled = enabled; + if (m_a11yConnection.isConnected()) { + emit enabledChanged(m_enabled); + } else { + QDBusConnection c = QDBusConnection::sessionBus(); + QDBusMessage m = QDBusMessage::createMethodCall(QLatin1String("org.a11y.Bus"), + QLatin1String("/org/a11y/bus"), + QLatin1String("org.a11y.Bus"), QLatin1String("GetAddress")); + c.callWithCallback(m, this, SLOT(connectA11yBus(QString)), SLOT(dbusError(QDBusError))); + } + } -void DBusConnection::dbusError(const QDBusError &error) -{ - qWarning() << "Accessibility encountered a DBus error:" << error; + // connect(a11yStatus, ); QtDbus doesn't support notifications for property changes yet } void DBusConnection::serviceUnregistered() @@ -103,20 +107,6 @@ void DBusConnection::serviceUnregistered() emit enabledChanged(false); } -void DBusConnection::enabledStateCallback(const QDBusVariant &enabled) -{ - m_enabled = enabled.variant().toBool(); - if (m_a11yConnection.isConnected()) { - emit enabledChanged(m_enabled); - } else { - QDBusConnection c = QDBusConnection::sessionBus(); - QDBusMessage m = QDBusMessage::createMethodCall(QLatin1String("org.a11y.Bus"), - QLatin1String("/org/a11y/bus"), - QLatin1String("org.a11y.Bus"), QLatin1String("GetAddress")); - c.callWithCallback(m, this, SLOT(connectA11yBus(QString)), SLOT(dbusError(QDBusError))); - } -} - void DBusConnection::connectA11yBus(const QString &address) { if (address.isEmpty()) { @@ -129,6 +119,11 @@ void DBusConnection::connectA11yBus(const QString &address) emit enabledChanged(true); } +void DBusConnection::dbusError(const QDBusError &error) +{ + qWarning() << "Accessibility encountered a DBus error:" << error; +} + /*! Returns the DBus connection that got established. Or an invalid connection if not yet connected. diff --git a/src/platformsupport/linuxaccessibility/dbusconnection_p.h b/src/platformsupport/linuxaccessibility/dbusconnection_p.h index 2d55ccb547..70f6fb80ac 100644 --- a/src/platformsupport/linuxaccessibility/dbusconnection_p.h +++ b/src/platformsupport/linuxaccessibility/dbusconnection_p.h @@ -67,8 +67,6 @@ Q_SIGNALS: private Q_SLOTS: void serviceRegistered(); void serviceUnregistered(); - void enabledStateCallback(const QDBusVariant &enabled); -// void enabledStateChanged(const QDBusVariant &); void connectA11yBus(const QString &address); void dbusError(const QDBusError &error); diff --git a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp index 196f67bcd8..bf5131f393 100644 --- a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp +++ b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp @@ -42,6 +42,8 @@ #include "qgenericunixthemes_p.h" #include "../../services/genericunix/qgenericunixservices_p.h" +#include "qpa/qplatformtheme_p.h" + #include <QtGui/QPalette> #include <QtGui/QFont> #include <QtGui/QGuiApplication> @@ -87,15 +89,27 @@ const char *QGenericUnixTheme::name = "generic"; static const char defaultSystemFontNameC[] = "Sans Serif"; enum { defaultSystemFontSize = 9 }; +class QGenericUnixThemePrivate : public QPlatformThemePrivate +{ +public: + QGenericUnixThemePrivate() + : QPlatformThemePrivate() + , systemFont(QLatin1String(defaultSystemFontNameC), defaultSystemFontSize) + { } + + const QFont systemFont; +}; + QGenericUnixTheme::QGenericUnixTheme() - : m_systemFont(QLatin1String(defaultSystemFontNameC), defaultSystemFontSize) + : QPlatformTheme(new QGenericUnixThemePrivate()) { } const QFont *QGenericUnixTheme::font(Font type) const { + Q_D(const QGenericUnixTheme); if (type == QPlatformTheme::SystemFont) - return &m_systemFont; + return &d->systemFont; return 0; } @@ -142,6 +156,93 @@ QVariant QGenericUnixTheme::themeHint(ThemeHint hint) const } #ifndef QT_NO_SETTINGS +class QKdeThemePrivate : public QPlatformThemePrivate +{ +public: + QKdeThemePrivate(const QString &kdeHome, int kdeVersion) + : kdeHome(kdeHome) + , kdeVersion(kdeVersion) + , toolButtonStyle(Qt::ToolButtonTextBesideIcon) + , toolBarIconSize(0) + { } + + QString globalSettingsFile() const + { + return kdeHome + QStringLiteral("/share/config/kdeglobals"); + } + + void refresh(); + static void readKdeSystemPalette(const QSettings &kdeSettings, QPalette *pal); + static QFont *readKdeFontSetting(const QSettings &settings, const QString &key); + static QStringList kdeIconThemeSearchPaths(const QString &kdeHome); + + + const QString kdeHome; + const int kdeVersion; + + ResourceHelper resources; + QString iconThemeName; + QString iconFallbackThemeName; + QStringList styleNames; + int toolButtonStyle; + int toolBarIconSize; +}; + +void QKdeThemePrivate::refresh() +{ + resources.clear(); + + toolButtonStyle = Qt::ToolButtonTextBesideIcon; + toolBarIconSize = 0; + styleNames.clear(); + styleNames << QStringLiteral("Oxygen") << QStringLiteral("fusion") << QStringLiteral("windows"); + iconFallbackThemeName = iconThemeName = QStringLiteral("oxygen"); + + // Read settings file. + const QString settingsFile = globalSettingsFile(); + if (!QFileInfo(settingsFile).isReadable()) + return; + + const QSettings kdeSettings(settingsFile, QSettings::IniFormat); + + QPalette systemPalette = QPalette(); + readKdeSystemPalette(kdeSettings, &systemPalette); + resources.palettes[QPlatformTheme::SystemPalette] = new QPalette(systemPalette); + //## TODO tooltip color + + const QVariant styleValue = kdeSettings.value(QStringLiteral("widgetStyle")); + if (styleValue.isValid()) { + const QString style = styleValue.toString(); + if (style != styleNames.front()) + styleNames.push_front(style); + } + + const QVariant themeValue = kdeSettings.value(QStringLiteral("Icons/Theme")); + if (themeValue.isValid()) + iconThemeName = themeValue.toString(); + + const QVariant toolBarIconSizeValue = kdeSettings.value(QStringLiteral("ToolbarIcons/Size")); + if (toolBarIconSizeValue.isValid()) + toolBarIconSize = toolBarIconSizeValue.toInt(); + + const QVariant toolbarStyleValue = kdeSettings.value(QStringLiteral("ToolButtonStyle")); + if (toolbarStyleValue.isValid()) { + const QString toolBarStyle = toolbarStyleValue.toString(); + if (toolBarStyle == QStringLiteral("TextBesideIcon")) + toolButtonStyle = Qt::ToolButtonTextBesideIcon; + else if (toolBarStyle == QStringLiteral("TextOnly")) + toolButtonStyle = Qt::ToolButtonTextOnly; + else if (toolBarStyle == QStringLiteral("TextUnderIcon")) + toolButtonStyle = Qt::ToolButtonTextUnderIcon; + } + + // Read system font, ignore 'fixed' 'smallestReadableFont' + if (QFont *systemFont = readKdeFontSetting(kdeSettings, QStringLiteral("font"))) { + resources.fonts[QPlatformTheme::SystemFont] = systemFont; + } else { + resources.fonts[QPlatformTheme::SystemFont] = new QFont(QLatin1String(defaultSystemFontNameC), defaultSystemFontSize); + } +} // Reads the color from the KDE configuration, and store it in the // palette with the given color role if found. @@ -158,7 +259,7 @@ static inline bool kdeColor(QPalette *pal, QPalette::ColorRole role, return true; } -static inline void readKdeSystemPalette(const QSettings &kdeSettings, QPalette *pal) +void QKdeThemePrivate::readKdeSystemPalette(const QSettings &kdeSettings, QPalette *pal) { kdeColor(pal, QPalette::Button, kdeSettings, QStringLiteral("Colors:Button/BackgroundNormal")); kdeColor(pal, QPalette::Window, kdeSettings, QStringLiteral("Colors:Window/BackgroundNormal")); @@ -183,14 +284,13 @@ static inline void readKdeSystemPalette(const QSettings &kdeSettings, QPalette * const char *QKdeTheme::name = "kde"; -QKdeTheme::QKdeTheme(const QString &kdeHome, int kdeVersion) : - m_kdeHome(kdeHome), m_kdeVersion(kdeVersion), - m_toolButtonStyle(Qt::ToolButtonTextBesideIcon), m_toolBarIconSize(0) +QKdeTheme::QKdeTheme(const QString &kdeHome, int kdeVersion) + : QPlatformTheme(new QKdeThemePrivate(kdeHome,kdeVersion)) { - refresh(); + d_func()->refresh(); } -static inline QFont *readKdeFontSetting(const QSettings &settings, const QString &key) +QFont *QKdeThemePrivate::readKdeFontSetting(const QSettings &settings, const QString &key) { const QVariant fontValue = settings.value(key); if (fontValue.isValid()) { @@ -218,68 +318,8 @@ static inline QFont *readKdeFontSetting(const QSettings &settings, const QString return 0; } -void QKdeTheme::refresh() -{ - m_resources.clear(); - - m_toolButtonStyle = Qt::ToolButtonTextBesideIcon; - m_toolBarIconSize = 0; - m_styleNames.clear(); - m_styleNames << QStringLiteral("Oxygen") << QStringLiteral("fusion") << QStringLiteral("windows"); - m_iconFallbackThemeName = m_iconThemeName = QStringLiteral("oxygen"); - - // Read settings file. - const QString settingsFile = globalSettingsFile(); - if (!QFileInfo(settingsFile).isReadable()) - return; - - const QSettings kdeSettings(settingsFile, QSettings::IniFormat); - - QPalette systemPalette = QPalette(); - readKdeSystemPalette(kdeSettings, &systemPalette); - m_resources.palettes[SystemPalette] = new QPalette(systemPalette); - //## TODO tooltip color - - const QVariant styleValue = kdeSettings.value(QStringLiteral("widgetStyle")); - if (styleValue.isValid()) { - const QString style = styleValue.toString(); - if (style != m_styleNames.front()) - m_styleNames.push_front(style); - } - - const QVariant themeValue = kdeSettings.value(QStringLiteral("Icons/Theme")); - if (themeValue.isValid()) - m_iconThemeName = themeValue.toString(); - - const QVariant toolBarIconSizeValue = kdeSettings.value(QStringLiteral("ToolbarIcons/Size")); - if (toolBarIconSizeValue.isValid()) - m_toolBarIconSize = toolBarIconSizeValue.toInt(); - - const QVariant toolbarStyleValue = kdeSettings.value(QStringLiteral("ToolButtonStyle")); - if (toolbarStyleValue.isValid()) { - const QString toolBarStyle = toolbarStyleValue.toString(); - if (toolBarStyle == QStringLiteral("TextBesideIcon")) - m_toolButtonStyle = Qt::ToolButtonTextBesideIcon; - else if (toolBarStyle == QStringLiteral("TextOnly")) - m_toolButtonStyle = Qt::ToolButtonTextOnly; - else if (toolBarStyle == QStringLiteral("TextUnderIcon")) - m_toolButtonStyle = Qt::ToolButtonTextUnderIcon; - } - - // Read system font, ignore 'fixed' 'smallestReadableFont' - 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 -{ - return m_kdeHome + QStringLiteral("/share/config/kdeglobals"); -} -static QStringList kdeIconThemeSearchPaths(const QString &kdeHome) +QStringList QKdeThemePrivate::kdeIconThemeSearchPaths(const QString &kdeHome) { QStringList candidates = QStringList(kdeHome); const QString kdeDirs = QFile::decodeName(qgetenv("KDEDIRS")); @@ -298,6 +338,7 @@ static QStringList kdeIconThemeSearchPaths(const QString &kdeHome) QVariant QKdeTheme::themeHint(QPlatformTheme::ThemeHint hint) const { + Q_D(const QKdeTheme); switch (hint) { case QPlatformTheme::UseFullScreenForPopupMenu: return QVariant(true); @@ -306,17 +347,17 @@ QVariant QKdeTheme::themeHint(QPlatformTheme::ThemeHint hint) const case QPlatformTheme::DialogButtonBoxLayout: return QVariant(2); // QDialogButtonBox::KdeLayout case QPlatformTheme::ToolButtonStyle: - return QVariant(m_toolButtonStyle); + return QVariant(d->toolButtonStyle); case QPlatformTheme::ToolBarIconSize: - return QVariant(m_toolBarIconSize); + return QVariant(d->toolBarIconSize); case QPlatformTheme::SystemIconThemeName: - return QVariant(m_iconThemeName); + return QVariant(d->iconThemeName); case QPlatformTheme::SystemIconFallbackThemeName: - return QVariant(m_iconFallbackThemeName); + return QVariant(d->iconFallbackThemeName); case QPlatformTheme::IconThemeSearchPaths: - return QVariant(kdeIconThemeSearchPaths(m_kdeHome)); + return QVariant(d->kdeIconThemeSearchPaths(d->kdeHome)); case QPlatformTheme::StyleNames: - return QVariant(m_styleNames); + return QVariant(d->styleNames); case QPlatformTheme::KeyboardScheme: return QVariant(int(KdeKeyboardScheme)); default: @@ -325,6 +366,18 @@ QVariant QKdeTheme::themeHint(QPlatformTheme::ThemeHint hint) const return QPlatformTheme::themeHint(hint); } +const QPalette *QKdeTheme::palette(Palette type) const +{ + Q_D(const QKdeTheme); + return d->resources.palettes[type]; +} + +const QFont *QKdeTheme::font(Font type) const +{ + Q_D(const QKdeTheme); + return d->resources.fonts[type]; +} + QPlatformTheme *QKdeTheme::createKdeTheme() { // Check for version >= 4 and determine home folder from environment, @@ -361,8 +414,18 @@ QPlatformTheme *QKdeTheme::createKdeTheme() const char *QGnomeTheme::name = "gnome"; +class QGnomeThemePrivate : public QPlatformThemePrivate +{ +public: + QGnomeThemePrivate() + : systemFont(QLatin1Literal(defaultSystemFontNameC), defaultSystemFontSize) + {} + + const QFont systemFont; +}; + QGnomeTheme::QGnomeTheme() - : m_systemFont(QLatin1String(defaultSystemFontNameC), defaultSystemFontSize) + : QPlatformTheme(new QGnomeThemePrivate()) { } @@ -385,6 +448,8 @@ QVariant QGnomeTheme::themeHint(QPlatformTheme::ThemeHint hint) const } case QPlatformTheme::KeyboardScheme: return QVariant(int(GnomeKeyboardScheme)); + case QPlatformTheme::PasswordMaskCharacter: + return QVariant(QChar(0x2022)); default: break; } @@ -393,8 +458,10 @@ QVariant QGnomeTheme::themeHint(QPlatformTheme::ThemeHint hint) const const QFont *QGnomeTheme::font(Font type) const { + Q_D(const QGnomeTheme); if (type == QPlatformTheme::SystemFont) - return &m_systemFont; + return &d->systemFont; + return 0; } diff --git a/src/platformsupport/themes/genericunix/qgenericunixthemes_p.h b/src/platformsupport/themes/genericunix/qgenericunixthemes_p.h index b0ac13efe4..03445776f4 100644 --- a/src/platformsupport/themes/genericunix/qgenericunixthemes_p.h +++ b/src/platformsupport/themes/genericunix/qgenericunixthemes_p.h @@ -61,8 +61,11 @@ public: QFont *fonts[QPlatformTheme::NFonts]; }; +class QGenericUnixThemePrivate; + class QGenericUnixTheme : public QPlatformTheme { + Q_DECLARE_PRIVATE(QGenericUnixTheme) public: QGenericUnixTheme(); @@ -75,55 +78,39 @@ public: static QStringList xdgIconThemePaths(); static const char *name; - -private: - const QFont m_systemFont; }; #ifndef QT_NO_SETTINGS +class QKdeThemePrivate; + class QKdeTheme : public QPlatformTheme { + Q_DECLARE_PRIVATE(QKdeTheme) QKdeTheme(const QString &kdeHome, int kdeVersion); public: static QPlatformTheme *createKdeTheme(); virtual QVariant themeHint(ThemeHint hint) const; - virtual const QPalette *palette(Palette type = SystemPalette) const - { return m_resources.palettes[type]; } + virtual const QPalette *palette(Palette type = SystemPalette) const; - virtual const QFont *font(Font type) const - { return m_resources.fonts[type]; } + virtual const QFont *font(Font type) const; static const char *name; - -private: - QString globalSettingsFile() const; - void refresh(); - - const QString m_kdeHome; - const int m_kdeVersion; - - ResourceHelper m_resources; - QString m_iconThemeName; - QString m_iconFallbackThemeName; - QStringList m_styleNames; - int m_toolButtonStyle; - int m_toolBarIconSize; }; #endif // QT_NO_SETTINGS +class QGnomeThemePrivate; + class QGnomeTheme : public QPlatformTheme { + Q_DECLARE_PRIVATE(QGnomeTheme) public: 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(); |