Chromium Code Reviews| Index: core/fpdfdoc/cpdf_interform.cpp |
| diff --git a/core/fpdfdoc/cpdf_interform.cpp b/core/fpdfdoc/cpdf_interform.cpp |
| index 574fa1b3352ab0281f09e1c410b32fba4ccf8e93..457268735c93cb5e1629984c2359796158306cbe 100644 |
| --- a/core/fpdfdoc/cpdf_interform.cpp |
| +++ b/core/fpdfdoc/cpdf_interform.cpp |
| @@ -96,68 +96,6 @@ void InitDict(CPDF_Dictionary*& pFormDict, CPDF_Document* pDocument) { |
| pFormDict->SetStringFor("DA", csDA); |
| } |
| -uint32_t CountFonts(CPDF_Dictionary* pFormDict) { |
| - if (!pFormDict) |
| - return 0; |
| - |
| - CPDF_Dictionary* pDR = pFormDict->GetDictFor("DR"); |
| - if (!pDR) |
| - return 0; |
| - |
| - CPDF_Dictionary* pFonts = pDR->GetDictFor("Font"); |
| - if (!pFonts) |
| - return 0; |
| - |
| - uint32_t dwCount = 0; |
| - for (const auto& it : *pFonts) { |
| - CPDF_Object* pObj = it.second; |
| - if (!pObj) |
| - continue; |
| - |
| - if (CPDF_Dictionary* pDirect = ToDictionary(pObj->GetDirect())) { |
| - if (pDirect->GetStringFor("Type") == "Font") |
| - dwCount++; |
| - } |
| - } |
| - return dwCount; |
| -} |
| - |
| -CPDF_Font* GetFont(CPDF_Dictionary* pFormDict, |
| - CPDF_Document* pDocument, |
| - uint32_t index, |
| - CFX_ByteString& csNameTag) { |
| - if (!pFormDict) |
| - return nullptr; |
| - |
| - CPDF_Dictionary* pDR = pFormDict->GetDictFor("DR"); |
| - if (!pDR) |
| - return nullptr; |
| - |
| - CPDF_Dictionary* pFonts = pDR->GetDictFor("Font"); |
| - if (!pFonts) |
| - return nullptr; |
| - |
| - uint32_t dwCount = 0; |
| - for (const auto& it : *pFonts) { |
| - const CFX_ByteString& csKey = it.first; |
| - CPDF_Object* pObj = it.second; |
| - if (!pObj) |
| - continue; |
| - |
| - CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect()); |
| - if (!pElement) |
| - continue; |
| - if (pElement->GetStringFor("Type") != "Font") |
| - continue; |
| - if (dwCount == index) { |
| - csNameTag = csKey; |
| - return pDocument->LoadFont(pElement); |
| - } |
| - dwCount++; |
| - } |
| - return nullptr; |
| -} |
| - |
| CPDF_Font* GetFont(CPDF_Dictionary* pFormDict, |
| CPDF_Document* pDocument, |
| CFX_ByteString csNameTag) { |
| @@ -182,48 +120,6 @@ CPDF_Font* GetFont(CPDF_Dictionary* pFormDict, |
| return nullptr; |
| } |
| -CPDF_Font* GetFont(CPDF_Dictionary* pFormDict, |
| - CPDF_Document* pDocument, |
| - CFX_ByteString csFontName, |
| - CFX_ByteString& csNameTag) { |
| - if (!pFormDict || csFontName.IsEmpty()) |
| - return nullptr; |
| - |
| - CPDF_Dictionary* pDR = pFormDict->GetDictFor("DR"); |
| - if (!pDR) |
| - return nullptr; |
| - |
| - CPDF_Dictionary* pFonts = pDR->GetDictFor("Font"); |
| - if (!pFonts) |
| - return nullptr; |
| - |
| - for (const auto& it : *pFonts) { |
| - const CFX_ByteString& csKey = it.first; |
| - CPDF_Object* pObj = it.second; |
| - if (!pObj) |
| - continue; |
| - |
| - CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect()); |
| - if (!pElement) |
| - continue; |
| - if (pElement->GetStringFor("Type") != "Font") |
| - continue; |
| - |
| - CPDF_Font* pFind = pDocument->LoadFont(pElement); |
| - if (!pFind) |
| - continue; |
| - |
| - CFX_ByteString csBaseFont; |
| - csBaseFont = pFind->GetBaseFont(); |
| - csBaseFont.Remove(' '); |
| - if (csBaseFont == csFontName) { |
| - csNameTag = csKey; |
| - return pFind; |
| - } |
| - } |
| - return nullptr; |
| -} |
| - |
| CPDF_Font* GetNativeFont(CPDF_Dictionary* pFormDict, |
| CPDF_Document* pDocument, |
| uint8_t charSet, |
| @@ -266,18 +162,6 @@ CPDF_Font* GetNativeFont(CPDF_Dictionary* pFormDict, |
| return nullptr; |
| } |
| -CPDF_Font* GetDefaultFont(CPDF_Dictionary* pFormDict, |
| - CPDF_Document* pDocument) { |
| - if (!pFormDict) |
| - return nullptr; |
| - |
| - CPDF_DefaultAppearance cDA(pFormDict->GetStringFor("DA")); |
| - CFX_ByteString csFontNameTag; |
| - FX_FLOAT fFontSize; |
| - cDA.GetFont(csFontNameTag, fFontSize); |
| - return GetFont(pFormDict, pDocument, csFontNameTag); |
| -} |
| - |
| FX_BOOL FindFont(CPDF_Dictionary* pFormDict, |
| const CPDF_Font* pFont, |
| CFX_ByteString& csNameTag) { |
| @@ -311,22 +195,6 @@ FX_BOOL FindFont(CPDF_Dictionary* pFormDict, |
| return FALSE; |
| } |
| -CPDF_Font* GetNativeFont(CPDF_Dictionary* pFormDict, |
| - CPDF_Document* pDocument, |
| - CFX_ByteString& csNameTag) { |
| - csNameTag.clear(); |
| - uint8_t charSet = CPDF_InterForm::GetNativeCharSet(); |
| - CPDF_Font* pFont = GetDefaultFont(pFormDict, pDocument); |
| - if (pFont) { |
| - CFX_SubstFont* pSubst = pFont->GetSubstFont(); |
| - if (pSubst && pSubst->m_Charset == (int)charSet) { |
| - FindFont(pFormDict, pFont, csNameTag); |
| - return pFont; |
| - } |
| - } |
| - return GetNativeFont(pFormDict, pDocument, charSet, csNameTag); |
| -} |
| - |
| FX_BOOL FindFont(CPDF_Dictionary* pFormDict, |
| CPDF_Document* pDocument, |
| CFX_ByteString csFontName, |
| @@ -422,7 +290,7 @@ CPDF_Font* AddNativeFont(CPDF_Dictionary*& pFormDict, |
| csNameTag = csTemp; |
| return pFont; |
| } |
| - CFX_ByteString csFontName = CPDF_InterForm::GetNativeFont(charSet); |
| + CFX_ByteString csFontName = CPDF_InterForm::GetNativeFont(charSet, nullptr); |
| if (!csFontName.IsEmpty() && |
| FindFont(pFormDict, pDocument, csFontName, pFont, csNameTag)) { |
| return pFont; |
| @@ -434,34 +302,6 @@ CPDF_Font* AddNativeFont(CPDF_Dictionary*& pFormDict, |
| return pFont; |
| } |
| -void RemoveFont(CPDF_Dictionary* pFormDict, const CPDF_Font* pFont) { |
| - if (!pFormDict || !pFont) |
| - return; |
| - |
| - CFX_ByteString csTag; |
| - if (!FindFont(pFormDict, pFont, csTag)) |
| - return; |
| - |
| - CPDF_Dictionary* pDR = pFormDict->GetDictFor("DR"); |
| - CPDF_Dictionary* pFonts = pDR->GetDictFor("Font"); |
| - pFonts->RemoveFor(csTag); |
| -} |
| - |
| -void RemoveFont(CPDF_Dictionary* pFormDict, CFX_ByteString csNameTag) { |
| - if (!pFormDict || csNameTag.IsEmpty()) |
| - return; |
| - |
| - CPDF_Dictionary* pDR = pFormDict->GetDictFor("DR"); |
| - if (!pDR) |
| - return; |
| - |
| - CPDF_Dictionary* pFonts = pDR->GetDictFor("Font"); |
| - if (!pFonts) |
| - return; |
| - |
| - pFonts->RemoveFor(csNameTag); |
| -} |
| - |
| class CFieldNameExtractor { |
| public: |
| explicit CFieldNameExtractor(const CFX_WideString& full_name) |
| @@ -533,6 +373,22 @@ FX_BOOL RetrieveSpecificFont(uint8_t charSet, |
| } |
| #endif // _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ |
| +int CompareFieldName(const CFX_WideString& name1, const CFX_WideString& name2) { |
| + const FX_WCHAR* ptr1 = name1.c_str(); |
| + const FX_WCHAR* ptr2 = name2.c_str(); |
| + if (name1.GetLength() == name2.GetLength()) |
| + return name1 == name2 ? 1 : 0; |
| + |
| + int i = 0; |
| + while (ptr1[i] == ptr2[i]) |
| + i++; |
| + if (i == name1.GetLength()) |
| + return 2; |
| + if (i == name2.GetLength()) |
| + return 3; |
| + return 0; |
| +} |
| + |
| } // namespace |
| class CFieldTree { |
| @@ -551,12 +407,12 @@ class CFieldTree { |
| Node* GetChildAt(size_t i) { return m_Children[i]; } |
| const Node* GetChildAt(size_t i) const { return m_Children[i]; } |
| - CPDF_FormField* GetFieldAtIndex(int index) { |
| - int nFieldsToGo = index; |
| + CPDF_FormField* GetFieldAtIndex(size_t index) { |
| + size_t nFieldsToGo = index; |
| return GetFieldInternal(&nFieldsToGo); |
| } |
| - int CountFields() const { return CountFieldsInternal(0); } |
| + size_t CountFields() const { return CountFieldsInternal(0); } |
| void SetField(CPDF_FormField* pField) { m_pField = pField; } |
| @@ -566,7 +422,7 @@ class CFieldTree { |
| const CFX_WideString& GetShortName() const { return m_ShortName; } |
| private: |
| - CPDF_FormField* GetFieldInternal(int* pFieldsToGo) { |
| + CPDF_FormField* GetFieldInternal(size_t* pFieldsToGo) { |
| if (m_pField) { |
| if (*pFieldsToGo == 0) |
| return m_pField; |
| @@ -582,13 +438,13 @@ class CFieldTree { |
| return nullptr; |
| } |
| - int CountFieldsInternal(int nLevel) const { |
| + size_t CountFieldsInternal(int nLevel) const { |
| if (nLevel > nMaxRecursion) |
| return 0; |
| if (m_pField) |
| return 1; |
| - int count = 0; |
| + size_t count = 0; |
| for (size_t i = 0; i < GetChildrenCount(); ++i) |
| count += GetChildAt(i)->CountFieldsInternal(nLevel + 1); |
| return count; |
| @@ -810,26 +666,26 @@ CPDF_InterForm::CPDF_InterForm(CPDF_Document* pDocument) |
| if (!pFields) |
| return; |
| - for (size_t i = 0; i < pFields->GetCount(); i++) |
| - LoadField(pFields->GetDictAt(i)); |
| + for (size_t i = 0; i < pFields->GetCount(); ++i) |
| + LoadField(pFields->GetDictAt(i), 0); |
| } |
| CPDF_InterForm::~CPDF_InterForm() { |
| for (auto it : m_ControlMap) |
| delete it.second; |
| - int nCount = m_pFieldTree->m_Root.CountFields(); |
| - for (int i = 0; i < nCount; ++i) |
| + size_t nCount = m_pFieldTree->m_Root.CountFields(); |
| + for (size_t i = 0; i < nCount; ++i) |
| delete m_pFieldTree->m_Root.GetFieldAtIndex(i); |
| } |
| -FX_BOOL CPDF_InterForm::s_bUpdateAP = TRUE; |
| +bool CPDF_InterForm::s_bUpdateAP = true; |
| -FX_BOOL CPDF_InterForm::IsUpdateAPEnabled() { |
| +bool CPDF_InterForm::IsUpdateAPEnabled() { |
| return s_bUpdateAP; |
| } |
| -void CPDF_InterForm::SetUpdateAP(FX_BOOL bUpdateAP) { |
| +void CPDF_InterForm::SetUpdateAP(bool bUpdateAP) { |
| s_bUpdateAP = bUpdateAP; |
| } |
| @@ -941,14 +797,6 @@ CFX_ByteString CPDF_InterForm::GetNativeFont(uint8_t charSet, void* pLogFont) { |
| return csFontName; |
| } |
| -CFX_ByteString CPDF_InterForm::GetNativeFont(void* pLogFont) { |
| -#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ |
| - return GetNativeFont(GetNativeCharSet(), pLogFont); |
| -#else |
| - return CFX_ByteString(); |
| -#endif |
| -} |
| - |
| CPDF_Font* CPDF_InterForm::AddNativeFont(uint8_t charSet, |
| CPDF_Document* pDocument) { |
| if (!pDocument) |
| @@ -970,18 +818,18 @@ CPDF_Font* CPDF_InterForm::AddNativeFont(CPDF_Document* pDocument) { |
| return pDocument ? AddNativeFont(GetNativeCharSet(), pDocument) : nullptr; |
| } |
| -FX_BOOL CPDF_InterForm::ValidateFieldName( |
| +bool CPDF_InterForm::ValidateFieldName( |
| CFX_WideString& csNewFieldName, |
| int iType, |
| const CPDF_FormField* pExcludedField, |
| - const CPDF_FormControl* pExcludedControl) { |
| + const CPDF_FormControl* pExcludedControl) const { |
| if (csNewFieldName.IsEmpty()) |
| - return FALSE; |
| + return false; |
| int iPos = 0; |
| int iLength = csNewFieldName.GetLength(); |
| CFX_WideString csSub; |
| - while (TRUE) { |
| + while (true) { |
| while (iPos < iLength && |
| (csNewFieldName[iPos] == L'.' || csNewFieldName[iPos] == L' ')) { |
| iPos++; |
| @@ -991,113 +839,56 @@ FX_BOOL CPDF_InterForm::ValidateFieldName( |
| while (iPos < iLength && csNewFieldName[iPos] != L'.') |
| csSub += csNewFieldName[iPos++]; |
| for (int i = csSub.GetLength() - 1; i > -1; i--) { |
| - if (csSub[i] == L' ' || csSub[i] == L'.') |
| - csSub.SetAt(i, L'\0'); |
| - else |
| + if (csSub[i] != L' ' && csSub[i] != L'.') |
| break; |
| + |
| + csSub.SetAt(i, L'\0'); |
| } |
| - uint32_t dwCount = m_pFieldTree->m_Root.CountFields(); |
| - for (uint32_t m = 0; m < dwCount; m++) { |
| + size_t dwCount = m_pFieldTree->m_Root.CountFields(); |
| + for (size_t m = 0; m < dwCount; ++m) { |
| CPDF_FormField* pField = m_pFieldTree->m_Root.GetFieldAtIndex(m); |
| if (!pField) |
| continue; |
| if (pField == pExcludedField) { |
| - if (pExcludedControl) { |
| - if (pField->CountControls() < 2) |
| - continue; |
| - } else { |
| + if (!pExcludedControl) |
| + continue; |
| + if (pField->CountControls() < 2) |
|
Tom Sepez
2016/09/28 20:46:49
nit: combine with 853
Lei Zhang
2016/09/28 21:02:39
Done.
|
| continue; |
| - } |
| } |
| CFX_WideString csFullName = pField->GetFullName(); |
| int iRet = CompareFieldName(csSub, csFullName); |
| if (iRet == 1) { |
| if (pField->GetFieldType() != iType) |
| - return FALSE; |
| + return false; |
| } else if (iRet == 2 && csSub == csNewFieldName) { |
| if (csFullName[iPos] == L'.') |
| - return FALSE; |
| + return false; |
| } else if (iRet == 3 && csSub == csNewFieldName) { |
| if (csNewFieldName[csFullName.GetLength()] == L'.') |
| - return FALSE; |
| + return false; |
| } |
| } |
| if (iPos >= iLength) |
| break; |
| } |
| if (csSub.IsEmpty()) |
| - return FALSE; |
| + return false; |
| csNewFieldName = csSub; |
| - return TRUE; |
| -} |
| - |
| -FX_BOOL CPDF_InterForm::ValidateFieldName(CFX_WideString& csNewFieldName, |
| - int iType) { |
| - return ValidateFieldName(csNewFieldName, iType, nullptr, nullptr); |
| -} |
| - |
| -FX_BOOL CPDF_InterForm::ValidateFieldName(const CPDF_FormField* pField, |
| - CFX_WideString& csNewFieldName) { |
| - return pField && !csNewFieldName.IsEmpty() && |
| - ValidateFieldName(csNewFieldName, pField->GetFieldType(), pField, |
| - nullptr); |
| -} |
| - |
| -FX_BOOL CPDF_InterForm::ValidateFieldName(const CPDF_FormControl* pControl, |
| - CFX_WideString& csNewFieldName) { |
| - if (!pControl || csNewFieldName.IsEmpty()) |
| - return FALSE; |
| - |
| - CPDF_FormField* pField = pControl->GetField(); |
| - return ValidateFieldName(csNewFieldName, pField->GetFieldType(), pField, |
| - pControl); |
| -} |
| - |
| -int CPDF_InterForm::CompareFieldName(const CFX_ByteString& name1, |
| - const CFX_ByteString& name2) { |
| - if (name1.GetLength() == name2.GetLength()) |
| - return name1 == name2 ? 1 : 0; |
| - |
| - const FX_CHAR* ptr1 = name1.c_str(); |
| - const FX_CHAR* ptr2 = name2.c_str(); |
| - int i = 0; |
| - while (ptr1[i] == ptr2[i]) |
| - i++; |
| - if (i == name1.GetLength()) |
| - return 2; |
| - if (i == name2.GetLength()) |
| - return 3; |
| - return 0; |
| -} |
| - |
| -int CPDF_InterForm::CompareFieldName(const CFX_WideString& name1, |
| - const CFX_WideString& name2) { |
| - const FX_WCHAR* ptr1 = name1.c_str(); |
| - const FX_WCHAR* ptr2 = name2.c_str(); |
| - if (name1.GetLength() == name2.GetLength()) |
| - return name1 == name2 ? 1 : 0; |
| - |
| - int i = 0; |
| - while (ptr1[i] == ptr2[i]) |
| - i++; |
| - if (i == name1.GetLength()) |
| - return 2; |
| - if (i == name2.GetLength()) |
| - return 3; |
| - return 0; |
| + return true; |
| } |
| -uint32_t CPDF_InterForm::CountFields(const CFX_WideString& csFieldName) { |
| +size_t CPDF_InterForm::CountFields(const CFX_WideString& csFieldName) const { |
| if (csFieldName.IsEmpty()) |
| - return (uint32_t)m_pFieldTree->m_Root.CountFields(); |
| + return m_pFieldTree->m_Root.CountFields(); |
| CFieldTree::Node* pNode = m_pFieldTree->FindNode(csFieldName); |
| return pNode ? pNode->CountFields() : 0; |
| } |
| -CPDF_FormField* CPDF_InterForm::GetField(uint32_t index, |
| - const CFX_WideString& csFieldName) { |
| +CPDF_FormField* CPDF_InterForm::GetField( |
| + uint32_t index, |
| + const CFX_WideString& csFieldName) const { |
| if (csFieldName.IsEmpty()) |
| return m_pFieldTree->m_Root.GetFieldAtIndex(index); |
| @@ -1190,77 +981,17 @@ int CPDF_InterForm::FindFieldInCalculationOrder(const CPDF_FormField* pField) { |
| return -1; |
| } |
| -uint32_t CPDF_InterForm::CountFormFonts() { |
| - return CountFonts(m_pFormDict); |
| -} |
| - |
| -CPDF_Font* CPDF_InterForm::GetFormFont(uint32_t index, |
| - CFX_ByteString& csNameTag) { |
| - return GetFont(m_pFormDict, m_pDocument, index, csNameTag); |
| -} |
| - |
| CPDF_Font* CPDF_InterForm::GetFormFont(CFX_ByteString csNameTag) { |
| return GetFont(m_pFormDict, m_pDocument, csNameTag); |
| } |
| -CPDF_Font* CPDF_InterForm::GetFormFont(CFX_ByteString csFontName, |
| - CFX_ByteString& csNameTag) { |
| - return GetFont(m_pFormDict, m_pDocument, csFontName, csNameTag); |
| -} |
| - |
| -CPDF_Font* CPDF_InterForm::GetNativeFormFont(uint8_t charSet, |
| - CFX_ByteString& csNameTag) { |
| - return ::GetNativeFont(m_pFormDict, m_pDocument, charSet, csNameTag); |
| -} |
| - |
| -CPDF_Font* CPDF_InterForm::GetNativeFormFont(CFX_ByteString& csNameTag) { |
| - return ::GetNativeFont(m_pFormDict, m_pDocument, csNameTag); |
| -} |
| - |
| -FX_BOOL CPDF_InterForm::FindFormFont(const CPDF_Font* pFont, |
| - CFX_ByteString& csNameTag) { |
| - return FindFont(m_pFormDict, pFont, csNameTag); |
| -} |
| - |
| -FX_BOOL CPDF_InterForm::FindFormFont(CFX_ByteString csFontName, |
| - CPDF_Font*& pFont, |
| - CFX_ByteString& csNameTag) { |
| - return FindFont(m_pFormDict, m_pDocument, csFontName, pFont, csNameTag); |
| -} |
| - |
| -void CPDF_InterForm::AddFormFont(const CPDF_Font* pFont, |
| - CFX_ByteString& csNameTag) { |
| - AddFont(m_pFormDict, m_pDocument, pFont, csNameTag); |
| -} |
| - |
| -CPDF_Font* CPDF_InterForm::AddNativeFormFont(uint8_t charSet, |
| - CFX_ByteString& csNameTag) { |
| - return ::AddNativeFont(m_pFormDict, m_pDocument, charSet, csNameTag); |
| -} |
| - |
| -CPDF_Font* CPDF_InterForm::AddNativeFormFont(CFX_ByteString& csNameTag) { |
| - return AddNativeInterFormFont(m_pFormDict, m_pDocument, csNameTag); |
| -} |
| - |
| -void CPDF_InterForm::RemoveFormFont(const CPDF_Font* pFont) { |
| - RemoveFont(m_pFormDict, pFont); |
| -} |
| - |
| -void CPDF_InterForm::RemoveFormFont(CFX_ByteString csNameTag) { |
| - RemoveFont(m_pFormDict, csNameTag); |
| -} |
| - |
| -CPDF_DefaultAppearance CPDF_InterForm::GetDefaultAppearance() { |
| +CPDF_DefaultAppearance CPDF_InterForm::GetDefaultAppearance() const { |
| if (!m_pFormDict) |
| return CPDF_DefaultAppearance(); |
| return CPDF_DefaultAppearance(m_pFormDict->GetStringFor("DA")); |
| } |
| -CPDF_Font* CPDF_InterForm::GetDefaultFormFont() { |
| - return GetDefaultFont(m_pFormDict, m_pDocument); |
| -} |
| - |
| -int CPDF_InterForm::GetFormAlignment() { |
| +int CPDF_InterForm::GetFormAlignment() const { |
| return m_pFormDict ? m_pFormDict->GetIntegerFor("Q", 0) : 0; |
| } |
| @@ -1270,8 +1001,8 @@ bool CPDF_InterForm::ResetForm(const std::vector<CPDF_FormField*>& fields, |
| if (bNotify && m_pFormNotify && m_pFormNotify->BeforeFormReset(this) < 0) |
| return false; |
| - int nCount = m_pFieldTree->m_Root.CountFields(); |
| - for (int i = 0; i < nCount; ++i) { |
| + size_t nCount = m_pFieldTree->m_Root.CountFields(); |
| + for (size_t i = 0; i < nCount; ++i) { |
| CPDF_FormField* pField = m_pFieldTree->m_Root.GetFieldAtIndex(i); |
| if (!pField) |
| continue; |
| @@ -1288,8 +1019,8 @@ bool CPDF_InterForm::ResetForm(bool bNotify) { |
| if (bNotify && m_pFormNotify && m_pFormNotify->BeforeFormReset(this) < 0) |
| return false; |
| - int nCount = m_pFieldTree->m_Root.CountFields(); |
| - for (int i = 0; i < nCount; ++i) { |
| + size_t nCount = m_pFieldTree->m_Root.CountFields(); |
| + for (size_t i = 0; i < nCount; ++i) { |
| CPDF_FormField* pField = m_pFieldTree->m_Root.GetFieldAtIndex(i); |
| if (!pField) |
| continue; |
| @@ -1347,7 +1078,7 @@ void CPDF_InterForm::FixPageFields(const CPDF_Page* pPage) { |
| for (size_t i = 0; i < pAnnots->GetCount(); i++) { |
| CPDF_Dictionary* pAnnot = pAnnots->GetDictAt(i); |
| if (pAnnot && pAnnot->GetStringFor("Subtype") == "Widget") |
| - LoadField(pAnnot); |
| + LoadField(pAnnot, 0); |
| } |
| } |
| @@ -1430,8 +1161,8 @@ CPDF_FormControl* CPDF_InterForm::AddControl(CPDF_FormField* pField, |
| CPDF_FormField* CPDF_InterForm::CheckRequiredFields( |
| const std::vector<CPDF_FormField*>* fields, |
| bool bIncludeOrExclude) const { |
| - int nCount = m_pFieldTree->m_Root.CountFields(); |
| - for (int i = 0; i < nCount; ++i) { |
| + size_t nCount = m_pFieldTree->m_Root.CountFields(); |
| + for (size_t i = 0; i < nCount; ++i) { |
| CPDF_FormField* pField = m_pFieldTree->m_Root.GetFieldAtIndex(i); |
| if (!pField) |
| continue; |
| @@ -1461,8 +1192,8 @@ CPDF_FormField* CPDF_InterForm::CheckRequiredFields( |
| CFDF_Document* CPDF_InterForm::ExportToFDF(const CFX_WideStringC& pdf_path, |
| bool bSimpleFileSpec) const { |
| std::vector<CPDF_FormField*> fields; |
| - int nCount = m_pFieldTree->m_Root.CountFields(); |
| - for (int i = 0; i < nCount; ++i) |
| + size_t nCount = m_pFieldTree->m_Root.CountFields(); |
| + for (size_t i = 0; i < nCount; ++i) |
| fields.push_back(m_pFieldTree->m_Root.GetFieldAtIndex(i)); |
| return ExportToFDF(pdf_path, fields, true, bSimpleFileSpec); |
| } |
| @@ -1491,8 +1222,8 @@ CFDF_Document* CPDF_InterForm::ExportToFDF( |
| CPDF_Array* pFields = new CPDF_Array; |
| pMainDict->SetFor("Fields", pFields); |
| - int nCount = m_pFieldTree->m_Root.CountFields(); |
| - for (int i = 0; i < nCount; i++) { |
| + size_t nCount = m_pFieldTree->m_Root.CountFields(); |
| + for (size_t i = 0; i < nCount; ++i) { |
| CPDF_FormField* pField = m_pFieldTree->m_Root.GetFieldAtIndex(i); |
| if (!pField || pField->GetType() == CPDF_FormField::PushButton) |
| continue; |
| @@ -1586,35 +1317,6 @@ void CPDF_InterForm::FDF_ImportField(CPDF_Dictionary* pFieldDict, |
| } |
| } |
| -FX_BOOL CPDF_InterForm::ImportFromFDF(const CFDF_Document* pFDF, |
| - FX_BOOL bNotify) { |
| - if (!pFDF) |
| - return FALSE; |
| - |
| - CPDF_Dictionary* pMainDict = pFDF->GetRoot()->GetDictFor("FDF"); |
| - if (!pMainDict) |
| - return FALSE; |
| - |
| - CPDF_Array* pFields = pMainDict->GetArrayFor("Fields"); |
| - if (!pFields) |
| - return FALSE; |
| - |
| - m_bsEncoding = pMainDict->GetStringFor("Encoding"); |
| - if (bNotify && m_pFormNotify && m_pFormNotify->BeforeFormImportData(this) < 0) |
| - return FALSE; |
| - |
| - for (size_t i = 0; i < pFields->GetCount(); i++) { |
| - CPDF_Dictionary* pField = pFields->GetDictAt(i); |
| - if (!pField) |
| - continue; |
| - |
| - FDF_ImportField(pField, L"", bNotify); |
| - } |
| - if (bNotify && m_pFormNotify) |
| - m_pFormNotify->AfterFormImportData(this); |
| - return TRUE; |
| -} |
| - |
| void CPDF_InterForm::SetFormNotify(IPDF_FormNotify* pNotify) { |
| m_pFormNotify = pNotify; |
| } |