From eeeaf832d50174c82d3362b818e9d252d778b404 Mon Sep 17 00:00:00 2001 From: jules Date: Tue, 26 Jun 2012 10:39:16 +0100 Subject: [PATCH] Added a Typeface::clearTypefaceCache() method. --- modules/juce_graphics/fonts/juce_Font.cpp | 10 ++++++++++ modules/juce_graphics/fonts/juce_Typeface.h | 3 +++ .../juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp | 6 +++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/modules/juce_graphics/fonts/juce_Font.cpp b/modules/juce_graphics/fonts/juce_Font.cpp index c0b94c4373..7bb4934ea6 100644 --- a/modules/juce_graphics/fonts/juce_Font.cpp +++ b/modules/juce_graphics/fonts/juce_Font.cpp @@ -61,6 +61,11 @@ public: faces.insertMultiple (-1, CachedFace(), numToCache); } + void clear() + { + setSize (faces.size()); + } + Typeface::Ptr findTypefaceFor (const Font& font) { const String faceName (font.getTypefaceName()); @@ -151,6 +156,11 @@ void Typeface::setTypefaceCacheSize (int numFontsToCache) TypefaceCache::getInstance()->setSize (numFontsToCache); } +void Typeface::clearTypefaceCache() +{ + TypefaceCache::getInstance()->clear(); +} + //============================================================================== class Font::SharedFontInternal : public ReferenceCountedObject { diff --git a/modules/juce_graphics/fonts/juce_Typeface.h b/modules/juce_graphics/fonts/juce_Typeface.h index 946a0d2f6c..5f4f2162d6 100644 --- a/modules/juce_graphics/fonts/juce_Typeface.h +++ b/modules/juce_graphics/fonts/juce_Typeface.h @@ -126,6 +126,9 @@ public: /** Changes the number of fonts that are cached in memory. */ static void setTypefaceCacheSize (int numFontsToCache); + /** Clears any fonts that are currently cached in memory. */ + static void clearTypefaceCache(); + protected: //============================================================================== String name, style; diff --git a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp index 44dd9bef6d..fe23dd44b9 100644 --- a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp +++ b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp @@ -322,7 +322,11 @@ const Typeface::Ptr LookAndFeel::getTypefaceForFont (const Font& font) void LookAndFeel::setDefaultSansSerifTypefaceName (const String& newName) { - defaultSans = newName; + if (defaultSans != newName) + { + Typeface::clearTypefaceCache() + defaultSans = newName; + } } //==============================================================================