21#include <com/sun/star/beans/PropertyValue.hpp>
22#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
23#include <com/sun/star/uno/Sequence.hxx>
52 DBG_ASSERT(aVal.hasValue(),
"no value available");
66 for(
const OUString& rNodeName : aNodeNames)
68 OUString sStart =
cFontPairs +
"/" + rNodeName +
"/";
71 pNames[nName++] = sStart +
cAlways;
75 const Any* pNodeValues = aNodeValues.getConstArray();
77 std::vector<SubstitutionStruct> aSubstArr;
78 for(sal_Int32 nNode = 0; nNode < aNodeNames.getLength(); nNode++)
81 pNodeValues[nName++] >>= aInsert.
sFont;
83 aInsert.
bReplaceAlways = *o3tl::doAccess<bool>(pNodeValues[nName++]);
85 aSubstArr.push_back(aInsert);
103 PropertyValue* pSetValues = aSetValues.getArray();
104 sal_Int32 nSetValue = 0;
108 const OUString sAlways(
cAlways);
111 for(
size_t i = 0;
i < aSubstArr.size();
i++)
113 OUString
sPrefix = sNode +
"/_" + OUString::number(
i) +
"/";
116 pSetValues[nSetValue].Name =
sPrefix; pSetValues[nSetValue].Name += sReplaceFont;
117 pSetValues[nSetValue++].Value <<= rSubst.
sFont;
118 pSetValues[nSetValue].Name =
sPrefix; pSetValues[nSetValue].Name += sSubstituteFont;
119 pSetValues[nSetValue++].Value <<= rSubst.
sReplaceBy;
120 pSetValues[nSetValue].Name =
sPrefix; pSetValues[nSetValue].Name += sAlways;
122 pSetValues[nSetValue].Name =
sPrefix; pSetValues[nSetValue].Name += sOnScreenOnly;
143 if(rSub.bReplaceAlways)
144 nFlags |= AddFontSubstituteFlags::ALWAYS;
145 if(rSub.bReplaceOnScreenOnly)
146 nFlags |= AddFontSubstituteFlags::ScreenOnly;
static void EndFontSubstitution()
static void AddFontSubstitute(const OUString &rFontName, const OUString &rReplaceFontName, AddFontSubstituteFlags nFlags)
static void BeginFontSubstitution()
static void RemoveFontsSubstitute()
static bool PutProperties(css::uno::Reference< css::container::XHierarchicalNameAccess > const &xHierarchyAccess, const css::uno::Sequence< OUString > &rNames, const css::uno::Sequence< css::uno::Any > &rValues, bool bAllLocales)
static bool ClearNodeSet(css::uno::Reference< css::container::XHierarchicalNameAccess > const &xHierarchyAccess, const OUString &rNode)
static css::uno::Sequence< css::uno::Any > GetProperties(css::uno::Reference< css::container::XHierarchicalNameAccess > const &xHierarchyAccess, const css::uno::Sequence< OUString > &rNames, bool bAllLocales)
static bool ReplaceSetProperties(css::uno::Reference< css::container::XHierarchicalNameAccess > const &xHierarchyAccess, const OUString &rNode, const css::uno::Sequence< css::beans::PropertyValue > &rValues, bool bAllLocales)
static css::uno::Sequence< OUString > GetNodeNames(css::uno::Reference< css::container::XHierarchicalNameAccess > const &xHierarchyAccess, const OUString &rNode, ConfigNameFormat eFormat)
static SAL_DLLPRIVATE css::uno::Reference< css::container::XHierarchicalNameAccess > acquireTree(utl::ConfigItem const &item)
#define DBG_ASSERT(sCon, aError)
constexpr OUStringLiteral cOnScreenOnly
constexpr OUStringLiteral cReplaceFont
constexpr OUStringLiteral cAlways
constexpr OUStringLiteral cReplacement
constexpr OUStringLiteral cFontPairs
constexpr OUStringLiteral cSubstituteFont
const PropertyStruct aPropNames[]
bool bReplaceOnScreenOnly