summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-04-14 10:02:08 +0100
committerCaolán McNamara <caolanm@redhat.com>2021-04-14 12:39:28 +0200
commite6aa51affc269753644222103d55f7655e84bfa2 (patch)
treea26e392985aa8e4b102a5faa3b6d1a672ad1d0f2
parent0bbd74f93a6f37bf880981862437f892f43452d0 (diff)
use original FontAttributes instead of an intermediate FastPrintFontInfo
Change-Id: Id8f8ea9b9d144d5bf9eace81ecc07e6b5dce6d41 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114077 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--vcl/inc/unx/fontmanager.hxx4
-rw-r--r--vcl/unx/generic/fontmanager/fontconfig.cxx6
-rw-r--r--vcl/unx/generic/glyphs/freetype_glyphcache.cxx11
3 files changed, 8 insertions, 13 deletions
diff --git a/vcl/inc/unx/fontmanager.hxx b/vcl/inc/unx/fontmanager.hxx
index 0ef3aa3655e6..0f5a85d61153 100644
--- a/vcl/inc/unx/fontmanager.hxx
+++ b/vcl/inc/unx/fontmanager.hxx
@@ -40,6 +40,7 @@
* friends are PostScript afm style, that is they are 1/1000 font height
*/
+class FontAttributes;
class FontSubsetInfo;
class FontConfigFontOptions;
class FontSelectPattern;
@@ -310,7 +311,8 @@ public:
in different fonts in e.g. english and japanese
*/
void matchFont( FastPrintFontInfo& rInfo, const css::lang::Locale& rLocale );
- static std::unique_ptr<FontConfigFontOptions> getFontOptions( const FastPrintFontInfo&, int nSize);
+
+ static std::unique_ptr<FontConfigFontOptions> getFontOptions(const FontAttributes& rFontAttributes, int nSize);
void Substitute(FontSelectPattern &rPattern, OUString& rMissingCodes);
diff --git a/vcl/unx/generic/fontmanager/fontconfig.cxx b/vcl/unx/generic/fontmanager/fontconfig.cxx
index 17ca8f46ccae..1ebe39ca4b98 100644
--- a/vcl/unx/generic/fontmanager/fontconfig.cxx
+++ b/vcl/unx/generic/fontmanager/fontconfig.cxx
@@ -1097,7 +1097,7 @@ void FontConfigFontOptions::SyncPattern(const OString& rFileName, sal_uInt32 nIn
FcPatternAddBool(mpPattern, FC_EMBOLDEN, bEmbolden ? FcTrue : FcFalse);
}
-std::unique_ptr<FontConfigFontOptions> PrintFontManager::getFontOptions(const FastPrintFontInfo& rInfo, int nSize)
+std::unique_ptr<FontConfigFontOptions> PrintFontManager::getFontOptions(const FontAttributes& rInfo, int nSize)
{
FontCfgWrapper& rWrapper = FontCfgWrapper::get();
@@ -1105,7 +1105,7 @@ std::unique_ptr<FontConfigFontOptions> PrintFontManager::getFontOptions(const Fa
FcConfig* pConfig = FcConfigGetCurrent();
FcPattern* pPattern = FcPatternCreate();
- OString sFamily = OUStringToOString( rInfo.m_aFamilyName, RTL_TEXTENCODING_UTF8 );
+ OString sFamily = OUStringToOString( rInfo.GetFamilyName(), RTL_TEXTENCODING_UTF8 );
std::unordered_map< OString, OString >::const_iterator aI = rWrapper.m_aLocalizedToCanonical.find(sFamily);
if (aI != rWrapper.m_aLocalizedToCanonical.end())
@@ -1114,7 +1114,7 @@ std::unique_ptr<FontConfigFontOptions> PrintFontManager::getFontOptions(const Fa
FcPatternAddString(pPattern, FC_FAMILY, reinterpret_cast<FcChar8 const *>(sFamily.getStr()));
// TODO: ePitch argument of always PITCH_DONTKNOW is suspicious
- addtopattern(pPattern, rInfo.m_eItalic, rInfo.m_eWeight, rInfo.m_eWidth, PITCH_DONTKNOW);
+ addtopattern(pPattern, rInfo.GetItalic(), rInfo.GetWeight(), rInfo.GetWidthType(), PITCH_DONTKNOW);
FcPatternAddDouble(pPattern, FC_PIXEL_SIZE, nSize);
FcConfigSubstitute(pConfig, pPattern, FcMatchPattern);
diff --git a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
index 5831979e6109..0881913c040c 100644
--- a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
+++ b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
@@ -473,16 +473,9 @@ FreetypeFont::FreetypeFont(FreetypeFontInstance& rFontInstance, const std::share
namespace
{
- std::unique_ptr<FontConfigFontOptions> GetFCFontOptions( const FontAttributes& rFontAttributes, int nSize)
+ std::unique_ptr<FontConfigFontOptions> GetFCFontOptions(const FontAttributes& rFontAttributes, int nSize)
{
- psp::FastPrintFontInfo aInfo;
-
- aInfo.m_aFamilyName = rFontAttributes.GetFamilyName();
- aInfo.m_eItalic = rFontAttributes.GetItalic();
- aInfo.m_eWeight = rFontAttributes.GetWeight();
- aInfo.m_eWidth = rFontAttributes.GetWidthType();
-
- return psp::PrintFontManager::getFontOptions(aInfo, nSize);
+ return psp::PrintFontManager::getFontOptions(rFontAttributes, nSize);
}
}