| Index: xfa/fxfa/parser/xfa_object_imp.cpp
|
| diff --git a/xfa/fxfa/parser/xfa_object_imp.cpp b/xfa/fxfa/parser/xfa_object_imp.cpp
|
| index d3d076d302ecbc8471523768fa34f54613b82b60..fe08c0e42bf8a9b18d1f6e757b426b0cfa5a722d 100644
|
| --- a/xfa/fxfa/parser/xfa_object_imp.cpp
|
| +++ b/xfa/fxfa/parser/xfa_object_imp.cpp
|
| @@ -1430,22 +1430,22 @@ void CXFA_Node::Script_Attribute_String(CFXJSE_Value* pValue,
|
| FX_BOOL bSetting,
|
| XFA_ATTRIBUTE eAttribute) {
|
| if (bSetting) {
|
| - CFX_ByteString szValue;
|
| - pValue->ToString(szValue);
|
| - CFX_WideString wsValue = CFX_WideString::FromUTF8(szValue.AsStringC());
|
| + CFX_WideString wsValue = pValue->ToWideString();
|
| SetAttribute(eAttribute, wsValue.AsStringC(), true);
|
| if (eAttribute == XFA_ATTRIBUTE_Use && GetClassID() == XFA_ELEMENT_Desc) {
|
| - CFX_WideString wsUseVal = wsValue, wsID, wsSOM;
|
| CXFA_Node* pTemplateNode =
|
| ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Template));
|
| CXFA_Node* pProtoRoot =
|
| pTemplateNode->GetFirstChildByClass(XFA_ELEMENT_Subform)
|
| ->GetFirstChildByClass(XFA_ELEMENT_Proto);
|
| - if (!wsUseVal.IsEmpty()) {
|
| - if (wsUseVal[0] == '#') {
|
| - wsID = CFX_WideString(wsUseVal.c_str() + 1, wsUseVal.GetLength() - 1);
|
| +
|
| + CFX_WideString wsID;
|
| + CFX_WideString wsSOM;
|
| + if (!wsValue.IsEmpty()) {
|
| + if (wsValue[0] == '#') {
|
| + wsID = CFX_WideString(wsValue.c_str() + 1, wsValue.GetLength() - 1);
|
| } else {
|
| - wsSOM = wsUseVal;
|
| + wsSOM = wsValue;
|
| }
|
| }
|
| CXFA_Node* pProtoNode = nullptr;
|
| @@ -1541,20 +1541,15 @@ void CXFA_Node::Script_Som_Message(CFXJSE_Value* pValue,
|
| bNew = TRUE;
|
| }
|
| if (bSetting) {
|
| - CFX_ByteString bsMessage;
|
| - pValue->ToString(bsMessage);
|
| switch (iMessageType) {
|
| case XFA_SOM_ValidationMessage:
|
| - validate.SetScriptMessageText(
|
| - CFX_WideString::FromUTF8(bsMessage.AsStringC()));
|
| + validate.SetScriptMessageText(pValue->ToWideString());
|
| break;
|
| case XFA_SOM_FormatMessage:
|
| - validate.SetFormatMessageText(
|
| - CFX_WideString::FromUTF8(bsMessage.AsStringC()));
|
| + validate.SetFormatMessageText(pValue->ToWideString());
|
| break;
|
| case XFA_SOM_MandatoryMessage:
|
| - validate.SetNullMessageText(
|
| - CFX_WideString::FromUTF8(bsMessage.AsStringC()));
|
| + validate.SetNullMessageText(pValue->ToWideString());
|
| break;
|
| default:
|
| break;
|
| @@ -1618,11 +1613,10 @@ void CXFA_Node::Script_Som_DefaultValue(CFXJSE_Value* pValue,
|
| return;
|
| }
|
| if (bSetting) {
|
| - CFX_ByteString newValue;
|
| + CFX_WideString wsNewValue;
|
| if (!(pValue && (pValue->IsNull() || pValue->IsUndefined())))
|
| - pValue->ToString(newValue);
|
| + wsNewValue = pValue->ToWideString();
|
|
|
| - CFX_WideString wsNewValue = CFX_WideString::FromUTF8(newValue.AsStringC());
|
| CFX_WideString wsFormatValue(wsNewValue);
|
| CXFA_WidgetData* pContainerWidgetData = nullptr;
|
| if (GetPacketID() == XFA_XDPPACKET_Datasets) {
|
| @@ -1688,7 +1682,7 @@ void CXFA_Node::Script_Boolean_Value(CFXJSE_Value* pValue,
|
| if (bSetting) {
|
| CFX_ByteString newValue;
|
| if (!(pValue && (pValue->IsNull() || pValue->IsUndefined())))
|
| - pValue->ToString(newValue);
|
| + newValue = pValue->ToString();
|
|
|
| int32_t iValue = FXSYS_atoi(newValue.c_str());
|
| CFX_WideString wsNewValue(iValue == 0 ? L"0" : L"1");
|
| @@ -1756,13 +1750,14 @@ const XFA_ExecEventParaInfo* GetEventParaInfoByName(
|
| } while (iStart <= iEnd);
|
| return nullptr;
|
| }
|
| -void XFA_STRING_TO_RGB(CFX_WideString& strRGB,
|
| +void XFA_STRING_TO_RGB(const CFX_WideString& strRGB,
|
| int32_t& r,
|
| int32_t& g,
|
| int32_t& b) {
|
| r = 0;
|
| g = 0;
|
| b = 0;
|
| +
|
| FX_WCHAR zero = '0';
|
| int32_t iIndex = 0;
|
| int32_t iLen = strRGB.GetLength();
|
| @@ -1799,13 +1794,11 @@ void CXFA_Node::Script_Som_BorderColor(CFXJSE_Value* pValue,
|
| }
|
| CXFA_Border border = pWidgetData->GetBorder(TRUE);
|
| int32_t iSize = border.CountEdges();
|
| - CFX_WideString strColor;
|
| if (bSetting) {
|
| - CFX_ByteString bsValue;
|
| - pValue->ToString(bsValue);
|
| - strColor = CFX_WideString::FromUTF8(bsValue.AsStringC());
|
| - int32_t r = 0, g = 0, b = 0;
|
| - XFA_STRING_TO_RGB(strColor, r, g, b);
|
| + int32_t r = 0;
|
| + int32_t g = 0;
|
| + int32_t b = 0;
|
| + XFA_STRING_TO_RGB(pValue->ToWideString(), r, g, b);
|
| FX_ARGB rgb = ArgbEncode(100, r, g, b);
|
| for (int32_t i = 0; i < iSize; ++i) {
|
| CXFA_Edge edge = border.GetEdge(i);
|
| @@ -1816,6 +1809,7 @@ void CXFA_Node::Script_Som_BorderColor(CFXJSE_Value* pValue,
|
| FX_ARGB color = edge.GetColor();
|
| int32_t a, r, g, b;
|
| ArgbDecode(color, a, r, g, b);
|
| + CFX_WideString strColor;
|
| strColor.Format(L"%d,%d,%d", r, g, b);
|
| pValue->SetString(FX_UTF8Encode(strColor).AsStringC());
|
| }
|
| @@ -1831,9 +1825,7 @@ void CXFA_Node::Script_Som_BorderWidth(CFXJSE_Value* pValue,
|
| int32_t iSize = border.CountEdges();
|
| CFX_WideString wsThickness;
|
| if (bSetting) {
|
| - CFX_ByteString bsValue;
|
| - pValue->ToString(bsValue);
|
| - wsThickness = CFX_WideString::FromUTF8(bsValue.AsStringC());
|
| + wsThickness = pValue->ToWideString();
|
| for (int32_t i = 0; i < iSize; ++i) {
|
| CXFA_Edge edge = border.GetEdge(i);
|
| CXFA_Measurement thickness(wsThickness.AsStringC());
|
| @@ -1859,19 +1851,21 @@ void CXFA_Node::Script_Som_FillColor(CFXJSE_Value* pValue,
|
| if (!pNode) {
|
| return;
|
| }
|
| - CFX_WideString wsColor;
|
| if (bSetting) {
|
| - CFX_ByteString bsValue;
|
| - pValue->ToString(bsValue);
|
| - wsColor = CFX_WideString::FromUTF8(bsValue.AsStringC());
|
| - int32_t r, g, b;
|
| - XFA_STRING_TO_RGB(wsColor, r, g, b);
|
| + int32_t r;
|
| + int32_t g;
|
| + int32_t b;
|
| + XFA_STRING_TO_RGB(pValue->ToWideString(), r, g, b);
|
| FX_ARGB color = ArgbEncode(0xff, r, g, b);
|
| borderfill.SetColor(color);
|
| } else {
|
| FX_ARGB color = borderfill.GetColor();
|
| - int32_t a, r, g, b;
|
| + int32_t a;
|
| + int32_t r;
|
| + int32_t g;
|
| + int32_t b;
|
| ArgbDecode(color, a, r, g, b);
|
| + CFX_WideString wsColor;
|
| wsColor.Format(L"%d,%d,%d", r, g, b);
|
| pValue->SetString(FX_UTF8Encode(wsColor).AsStringC());
|
| }
|
| @@ -1900,10 +1894,7 @@ void CXFA_Node::Script_Draw_DefaultValue(CFXJSE_Value* pValue,
|
| ASSERT(pWidgetData);
|
| XFA_ELEMENT uiType = pWidgetData->GetUIType();
|
| if (uiType == XFA_ELEMENT_Text) {
|
| - CFX_ByteString newValue;
|
| - pValue->ToString(newValue);
|
| - CFX_WideString wsNewValue =
|
| - CFX_WideString::FromUTF8(newValue.AsStringC());
|
| + CFX_WideString wsNewValue = pValue->ToWideString();
|
| CFX_WideString wsFormatValue(wsNewValue);
|
| SetScriptContent(wsNewValue, wsFormatValue, true, TRUE);
|
| }
|
| @@ -1933,11 +1924,10 @@ void CXFA_Node::Script_Field_DefaultValue(CFXJSE_Value* pValue,
|
| pWidgetData->m_bPreNull = pWidgetData->m_bIsNull;
|
| pWidgetData->m_bIsNull = FALSE;
|
| }
|
| - CFX_ByteString newValue;
|
| + CFX_WideString wsNewText;
|
| if (!(pValue && (pValue->IsNull() || pValue->IsUndefined())))
|
| - pValue->ToString(newValue);
|
| + wsNewText = pValue->ToWideString();
|
|
|
| - CFX_WideString wsNewText = CFX_WideString::FromUTF8(newValue.AsStringC());
|
| CXFA_Node* pUIChild = pWidgetData->GetUIChild();
|
| if (pUIChild->GetClassID() == XFA_ELEMENT_NumericEdit) {
|
| int32_t iLeadDigits = 0;
|
| @@ -1992,13 +1982,10 @@ void CXFA_Node::Script_Field_EditValue(CFXJSE_Value* pValue,
|
| if (!pWidgetData) {
|
| return;
|
| }
|
| - CFX_WideString wsValue;
|
| if (bSetting) {
|
| - CFX_ByteString bsValue;
|
| - pValue->ToString(bsValue);
|
| - wsValue = CFX_WideString::FromUTF8(bsValue.AsStringC());
|
| - pWidgetData->SetValue(wsValue, XFA_VALUEPICTURE_Edit);
|
| + pWidgetData->SetValue(pValue->ToWideString(), XFA_VALUEPICTURE_Edit);
|
| } else {
|
| + CFX_WideString wsValue;
|
| pWidgetData->GetValue(wsValue, XFA_VALUEPICTURE_Edit);
|
| pValue->SetString(FX_UTF8Encode(wsValue).AsStringC());
|
| }
|
| @@ -2015,19 +2002,21 @@ void CXFA_Node::Script_Som_FontColor(CFXJSE_Value* pValue,
|
| if (!pNode) {
|
| return;
|
| }
|
| - CFX_WideString wsColor;
|
| if (bSetting) {
|
| - CFX_ByteString bsValue;
|
| - pValue->ToString(bsValue);
|
| - wsColor = CFX_WideString::FromUTF8(bsValue.AsStringC());
|
| - int32_t r, g, b;
|
| - XFA_STRING_TO_RGB(wsColor, r, g, b);
|
| + int32_t r;
|
| + int32_t g;
|
| + int32_t b;
|
| + XFA_STRING_TO_RGB(pValue->ToWideString(), r, g, b);
|
| FX_ARGB color = ArgbEncode(0xff, r, g, b);
|
| font.SetColor(color);
|
| } else {
|
| FX_ARGB color = font.GetColor();
|
| - int32_t a, r, g, b;
|
| + int32_t a;
|
| + int32_t r;
|
| + int32_t g;
|
| + int32_t b;
|
| ArgbDecode(color, a, r, g, b);
|
| + CFX_WideString wsColor;
|
| wsColor.Format(L"%d,%d,%d", r, g, b);
|
| pValue->SetString(FX_UTF8Encode(wsColor).AsStringC());
|
| }
|
| @@ -2044,13 +2033,10 @@ void CXFA_Node::Script_Field_FormattedValue(CFXJSE_Value* pValue,
|
| if (!pWidgetData) {
|
| return;
|
| }
|
| - CFX_WideString wsValue;
|
| if (bSetting) {
|
| - CFX_ByteString bsValue;
|
| - pValue->ToString(bsValue);
|
| - wsValue = CFX_WideString::FromUTF8(bsValue.AsStringC());
|
| - pWidgetData->SetValue(wsValue, XFA_VALUEPICTURE_Display);
|
| + pWidgetData->SetValue(pValue->ToWideString(), XFA_VALUEPICTURE_Display);
|
| } else {
|
| + CFX_WideString wsValue;
|
| pWidgetData->GetValue(wsValue, XFA_VALUEPICTURE_Display);
|
| pValue->SetString(FX_UTF8Encode(wsValue).AsStringC());
|
| }
|
| @@ -2063,19 +2049,15 @@ void CXFA_Node::Script_Som_Mandatory(CFXJSE_Value* pValue,
|
| return;
|
| }
|
| CXFA_Validate validate = pWidgetData->GetValidate(TRUE);
|
| - CFX_WideString wsValue;
|
| if (bSetting) {
|
| - CFX_ByteString bsValue;
|
| - pValue->ToString(bsValue);
|
| - wsValue = CFX_WideString::FromUTF8(bsValue.AsStringC());
|
| - validate.SetNullTest(wsValue);
|
| + validate.SetNullTest(pValue->ToWideString());
|
| } else {
|
| int32_t iValue = validate.GetNullTest();
|
| const XFA_ATTRIBUTEENUMINFO* pInfo =
|
| XFA_GetAttributeEnumByID((XFA_ATTRIBUTEENUM)iValue);
|
| - if (pInfo) {
|
| + CFX_WideString wsValue;
|
| + if (pInfo)
|
| wsValue = pInfo->pName;
|
| - }
|
| pValue->SetString(FX_UTF8Encode(wsValue).AsStringC());
|
| }
|
| }
|
| @@ -2330,11 +2312,8 @@ void CXFA_Node::Script_ExclGroup_DefaultAndRawValue(CFXJSE_Value* pValue,
|
| return;
|
| }
|
| if (bSetting) {
|
| - CFX_ByteString bsValue;
|
| - pValue->ToString(bsValue);
|
| - pWidgetData->SetSelectedMemberByValue(
|
| - CFX_WideString::FromUTF8(bsValue.AsStringC()).AsStringC(), true, TRUE,
|
| - TRUE);
|
| + pWidgetData->SetSelectedMemberByValue(pValue->ToWideString().AsStringC(),
|
| + true, TRUE, TRUE);
|
| } else {
|
| CFX_WideString wsValue = GetScriptContent(TRUE);
|
| XFA_VERSION curVersion = GetDocument()->GetCurVersionMode();
|
| @@ -2529,10 +2508,7 @@ void CXFA_Node::Script_Subform_Locale(CFXJSE_Value* pValue,
|
| FX_BOOL bSetting,
|
| XFA_ATTRIBUTE eAttribute) {
|
| if (bSetting) {
|
| - CFX_ByteString bsLocaleName;
|
| - pValue->ToString(bsLocaleName);
|
| - SetCData(XFA_ATTRIBUTE_Locale,
|
| - CFX_WideString::FromUTF8(bsLocaleName.AsStringC()), true, TRUE);
|
| + SetCData(XFA_ATTRIBUTE_Locale, pValue->ToWideString(), true, TRUE);
|
| } else {
|
| CFX_WideString wsLocaleName;
|
| GetLocaleName(wsLocaleName);
|
| @@ -3386,10 +3362,7 @@ void CXFA_Node::Script_Form_Checksum(CFXJSE_Value* pValue,
|
| FX_BOOL bSetting,
|
| XFA_ATTRIBUTE eAttribute) {
|
| if (bSetting) {
|
| - CFX_ByteString bsChecksum;
|
| - pValue->ToString(bsChecksum);
|
| - SetAttribute(XFA_ATTRIBUTE_Checksum,
|
| - CFX_WideString::FromUTF8(bsChecksum.AsStringC()).AsStringC());
|
| + SetAttribute(XFA_ATTRIBUTE_Checksum, pValue->ToWideString().AsStringC());
|
| } else {
|
| CFX_WideString wsChecksum;
|
| GetAttribute(XFA_ATTRIBUTE_Checksum, wsChecksum, FALSE);
|
| @@ -3452,13 +3425,10 @@ void CXFA_Node::Script_Packet_Content(CFXJSE_Value* pValue,
|
| FX_BOOL bSetting,
|
| XFA_ATTRIBUTE eAttribute) {
|
| if (bSetting) {
|
| - CFX_ByteString bsNewContent;
|
| - pValue->ToString(bsNewContent);
|
| CFDE_XMLNode* pXMLNode = GetXMLMappingNode();
|
| if (pXMLNode && pXMLNode->GetType() == FDE_XMLNODE_Element) {
|
| CFDE_XMLElement* pXMLElement = static_cast<CFDE_XMLElement*>(pXMLNode);
|
| - pXMLElement->SetTextData(
|
| - CFX_WideString::FromUTF8(bsNewContent.AsStringC()));
|
| + pXMLElement->SetTextData(pValue->ToWideString());
|
| }
|
| } else {
|
| CFX_WideString wsTextData;
|
|
|