summaryrefslogtreecommitdiffstats
path: root/src/platformsupport
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-04-26 09:45:55 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-04-26 09:45:55 +0200
commit08585f02dc0eb8dc5567f47c55915540c0a34e01 (patch)
treed509ccc2e90e13620ef423cb099262cd88919c0a /src/platformsupport
parent55145c52677e961804b7b3a725652bd5ce1e0269 (diff)
parent4c231d5df3040dbf4545a9a77145ee0e1f9c380c (diff)
Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev
Diffstat (limited to 'src/platformsupport')
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp18
-rw-r--r--src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm2
-rw-r--r--src/platformsupport/linuxaccessibility/bridge.cpp8
-rw-r--r--src/platformsupport/linuxaccessibility/bridge_p.h1
-rw-r--r--src/platformsupport/linuxaccessibility/dbusconnection.cpp51
-rw-r--r--src/platformsupport/linuxaccessibility/dbusconnection_p.h2
-rw-r--r--src/platformsupport/themes/genericunix/qgenericunixthemes.cpp221
-rw-r--r--src/platformsupport/themes/genericunix/qgenericunixthemes_p.h35
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();