diff options
Diffstat (limited to 'xfa')
-rw-r--r-- | xfa/fxfa/parser/cxfa_node.cpp | 9 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_node.h | 1 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_widgetdata.cpp | 10 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_widgetdata.h | 3 |
4 files changed, 13 insertions, 10 deletions
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp index ac1398822d..9a1dec6716 100644 --- a/xfa/fxfa/parser/cxfa_node.cpp +++ b/xfa/fxfa/parser/cxfa_node.cpp @@ -621,6 +621,15 @@ CXFA_WidgetData* CXFA_Node::GetContainerWidgetData() { : nullptr; } +IFX_Locale* CXFA_Node::GetLocale() { + WideString wsLocaleName; + if (!GetLocaleName(wsLocaleName)) + return nullptr; + if (wsLocaleName == L"ambient") + return GetDocument()->GetLocalMgr()->GetDefLocale(); + return GetDocument()->GetLocalMgr()->GetLocaleByName(wsLocaleName); +} + bool CXFA_Node::GetLocaleName(WideString& wsLocaleName) { CXFA_Node* pForm = GetDocument()->GetXFAObject(XFA_HASHCODE_Form)->AsNode(); CXFA_Subform* pTopSubform = diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h index b41a27ef01..194f870d76 100644 --- a/xfa/fxfa/parser/cxfa_node.h +++ b/xfa/fxfa/parser/cxfa_node.h @@ -183,6 +183,7 @@ class CXFA_Node : public CXFA_Object { bool HasBindItem(); CXFA_WidgetData* GetWidgetData(); CXFA_WidgetData* GetContainerWidgetData(); + IFX_Locale* GetLocale(); bool GetLocaleName(WideString& wsLocaleName); XFA_AttributeEnum GetIntact(); diff --git a/xfa/fxfa/parser/cxfa_widgetdata.cpp b/xfa/fxfa/parser/cxfa_widgetdata.cpp index 7771d33d01..68063e2a07 100644 --- a/xfa/fxfa/parser/cxfa_widgetdata.cpp +++ b/xfa/fxfa/parser/cxfa_widgetdata.cpp @@ -1500,15 +1500,7 @@ WideString CXFA_WidgetData::GetPictureContent(XFA_VALUEPICTURE ePicture) { } IFX_Locale* CXFA_WidgetData::GetLocale() { - if (!m_pNode) - return nullptr; - - WideString wsLocaleName; - if (!m_pNode->GetLocaleName(wsLocaleName)) - return nullptr; - if (wsLocaleName == L"ambient") - return m_pNode->GetDocument()->GetLocalMgr()->GetDefLocale(); - return m_pNode->GetDocument()->GetLocalMgr()->GetLocaleByName(wsLocaleName); + return m_pNode ? m_pNode->GetLocale() : nullptr; } WideString CXFA_WidgetData::GetValue(XFA_VALUEPICTURE eValueType) { diff --git a/xfa/fxfa/parser/cxfa_widgetdata.h b/xfa/fxfa/parser/cxfa_widgetdata.h index 941eead3fd..4b11521b6f 100644 --- a/xfa/fxfa/parser/cxfa_widgetdata.h +++ b/xfa/fxfa/parser/cxfa_widgetdata.h @@ -44,7 +44,6 @@ class IFX_Locale; class CXFA_WidgetData { public: - explicit CXFA_WidgetData(CXFA_Node* pNode); virtual ~CXFA_WidgetData(); CXFA_Node* GetNode() const { return m_pNode; } @@ -178,6 +177,8 @@ class CXFA_WidgetData { void SetIsNull(bool val) { m_bIsNull = val; } protected: + explicit CXFA_WidgetData(CXFA_Node* pNode); + CXFA_Node* m_pNode; private: |