summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r--src/plugins/platforms/cocoa/qcocoatheme.mm2
-rw-r--r--src/plugins/platforms/ios/qiostheme.h4
-rw-r--r--src/plugins/platforms/ios/qiostheme.mm14
3 files changed, 13 insertions, 7 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoatheme.mm b/src/plugins/platforms/cocoa/qcocoatheme.mm
index beaa50da6d..f8eed0ebf1 100644
--- a/src/plugins/platforms/cocoa/qcocoatheme.mm
+++ b/src/plugins/platforms/cocoa/qcocoatheme.mm
@@ -74,6 +74,8 @@ QCocoaTheme::QCocoaTheme()
QCocoaTheme::~QCocoaTheme()
{
delete m_systemPalette;
+ qDeleteAll(m_palettes);
+ qDeleteAll(m_fonts);
}
bool QCocoaTheme::usePlatformNativeDialog(DialogType dialogType) const
diff --git a/src/plugins/platforms/ios/qiostheme.h b/src/plugins/platforms/ios/qiostheme.h
index 5ccbcac710..b03f65f556 100644
--- a/src/plugins/platforms/ios/qiostheme.h
+++ b/src/plugins/platforms/ios/qiostheme.h
@@ -42,6 +42,7 @@
#ifndef QIOSTHEME_H
#define QIOSTHEME_H
+#include <QtCore/QHash>
#include <qpa/qplatformtheme.h>
QT_BEGIN_NAMESPACE
@@ -57,6 +58,9 @@ public:
const QFont *font(Font type = SystemFont) const;
static const char *name;
+
+private:
+ mutable QHash<QPlatformTheme::Font, QFont *> m_fonts;
};
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/ios/qiostheme.mm b/src/plugins/platforms/ios/qiostheme.mm
index f98781f8a7..e7093185aa 100644
--- a/src/plugins/platforms/ios/qiostheme.mm
+++ b/src/plugins/platforms/ios/qiostheme.mm
@@ -59,6 +59,7 @@ QIOSTheme::QIOSTheme()
QIOSTheme::~QIOSTheme()
{
+ qDeleteAll(m_fonts);
}
QVariant QIOSTheme::themeHint(ThemeHint hint) const
@@ -73,8 +74,7 @@ QVariant QIOSTheme::themeHint(ThemeHint hint) const
const QFont *QIOSTheme::font(Font type) const
{
- static QHash<QPlatformTheme::Font, QFont *> fonts;
- if (fonts.isEmpty()) {
+ if (m_fonts.isEmpty()) {
// The real system font on iOS is '.Helvetica Neue UI', as returned by both [UIFont systemFontOfSize]
// and CTFontCreateUIFontForLanguage(kCTFontSystemFontType, ...), but this font is not included when
// populating the available fonts in QCoreTextFontDatabase::populateFontDatabase(), since the font
@@ -84,13 +84,13 @@ const QFont *QIOSTheme::font(Font type) const
// For now we hard-code the font to Helvetica, which should be very close to the actual
// system font.
QLatin1String systemFontFamilyName("Helvetica");
- fonts.insert(QPlatformTheme::SystemFont, new QFont(systemFontFamilyName, [UIFont systemFontSize]));
- fonts.insert(QPlatformTheme::SmallFont, new QFont(systemFontFamilyName, [UIFont smallSystemFontSize]));
- fonts.insert(QPlatformTheme::LabelFont, new QFont(systemFontFamilyName, [UIFont labelFontSize]));
- fonts.insert(QPlatformTheme::PushButtonFont, new QFont(systemFontFamilyName, [UIFont buttonFontSize]));
+ m_fonts.insert(QPlatformTheme::SystemFont, new QFont(systemFontFamilyName, [UIFont systemFontSize]));
+ m_fonts.insert(QPlatformTheme::SmallFont, new QFont(systemFontFamilyName, [UIFont smallSystemFontSize]));
+ m_fonts.insert(QPlatformTheme::LabelFont, new QFont(systemFontFamilyName, [UIFont labelFontSize]));
+ m_fonts.insert(QPlatformTheme::PushButtonFont, new QFont(systemFontFamilyName, [UIFont buttonFontSize]));
}
- return fonts.value(type, 0);
+ return m_fonts.value(type, 0);
}
QT_END_NAMESPACE