| Index: fpdfsdk/src/fpdfxfa/fpdfxfa_doc.cpp
|
| diff --git a/fpdfsdk/src/fpdfxfa/fpdfxfa_doc.cpp b/fpdfsdk/src/fpdfxfa/fpdfxfa_doc.cpp
|
| index 365d5d786b9e57ee3b48bfa3a1f6cbef5f1fdd9f..3763003dca20cce3b10ae09c5733cfc6272c8a1d 100644
|
| --- a/fpdfsdk/src/fpdfxfa/fpdfxfa_doc.cpp
|
| +++ b/fpdfsdk/src/fpdfxfa/fpdfxfa_doc.cpp
|
| @@ -35,14 +35,13 @@ extern int GetLastError();
|
|
|
| CPDFXFA_Document::CPDFXFA_Document(CPDF_Document* pPDFDoc,
|
| CPDFXFA_App* pProvider)
|
| - : m_pPDFDoc(pPDFDoc),
|
| + : m_iDocType(DOCTYPE_PDF),
|
| + m_pPDFDoc(pPDFDoc),
|
| + m_pSDKDoc(nullptr),
|
| + m_pXFADoc(nullptr),
|
| + m_pXFADocView(nullptr),
|
| m_pApp(pProvider),
|
| - m_pXFADoc(NULL),
|
| - m_pXFADocView(NULL),
|
| - m_iDocType(DOCTYPE_PDF),
|
| - m_pJSContext(NULL),
|
| - m_pSDKDoc(NULL) {
|
| - m_XFAPageList.RemoveAll();
|
| + m_pJSContext(nullptr) {
|
| }
|
|
|
| CPDFXFA_Document::~CPDFXFA_Document() {
|
| @@ -492,24 +491,6 @@ FX_BOOL CPDFXFA_Document::PopupMenu(IXFA_Widget* hWidget,
|
|
|
| void CPDFXFA_Document::PageViewEvent(IXFA_PageView* pPageView,
|
| FX_DWORD dwFlags) {
|
| - if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
|
| - return;
|
| -
|
| - CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
|
| - if (pEnv == NULL)
|
| - return;
|
| -
|
| - CPDFXFA_Page* pPage = GetPage(pPageView);
|
| - if (pPage == NULL)
|
| - return;
|
| -
|
| - if (dwFlags == FXFA_PAGEVIEWEVENT_POSTADDED) {
|
| - // pEnv->FFI_PageEvent(pPage, FXFA_PAGEVIEWEVENT_POSTADDED);
|
| - } else if (dwFlags == FXFA_PAGEVIEWEVENT_POSTREMOVED) {
|
| - // pEnv->FFI_PageEvent(pPage, FXFA_PAGEVIEWEVENT_POSTREMOVED);
|
| - // RemovePage(pPage);
|
| - // delete pPage;
|
| - }
|
| }
|
|
|
| void CPDFXFA_Document::WidgetEvent(IXFA_Widget* hWidget,
|
| @@ -517,60 +498,30 @@ void CPDFXFA_Document::WidgetEvent(IXFA_Widget* hWidget,
|
| FX_DWORD dwEvent,
|
| void* pParam,
|
| void* pAdditional) {
|
| - if (m_iDocType != DOCTYPE_DYNIMIC_XFA || NULL == hWidget)
|
| + if (m_iDocType != DOCTYPE_DYNIMIC_XFA || !hWidget)
|
| return;
|
|
|
| CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
|
| - if (pEnv == NULL)
|
| - return;
|
| -
|
| - if (NULL == hWidget)
|
| + if (!pEnv)
|
| return;
|
|
|
| IXFA_PageView* pPageView =
|
| m_pXFADocView->GetWidgetHandler()->GetPageView(hWidget);
|
| -
|
| if (pPageView == NULL)
|
| return;
|
| +
|
| CPDFXFA_Page* pXFAPage = GetPage(pPageView);
|
| if (pXFAPage == NULL)
|
| return;
|
|
|
| CPDFSDK_PageView* pSdkPageView = m_pSDKDoc->GetPageView(pXFAPage);
|
| -
|
| - CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
|
| -
|
| if (dwEvent == XFA_WIDGETEVENT_PostAdded) {
|
| - // CPDFSDK_Annot* pAnnot =
|
| - // pAnnotHandlerMgr->NewAnnot(hWidget,
|
| - // pSdkPageView);
|
| - // pAnnotHandlerMgr->Annot_OnLoad(pAnnot);
|
| -
|
| - // pEnv->FFI_WidgetEvent(hWidget, XFA_WIDGETEVENT_PostAdded);
|
| - // IXFA_PageView* pOldPageView = (IXFA_PageView*)pAdditional;
|
| - // if (pOldPageView)
|
| - // {
|
| - // CPDFXFA_Page* pDestPage =
|
| - // m_pSDKDoc->GetPageView((IXFA_PageView*)pOldPageView);
|
| - // ASSERT(pDestPage);
|
| - // CPDFSDK_Annot* pAnnot =
|
| - // pDestPage->GetAnnotByXFAWidget(hWidget);
|
| - // if (pAnnot)
|
| - // {
|
| - // if (m_pSDKDoc->GetFocusAnnot() == pAnnot)
|
| - // {
|
| - // m_pSDKDoc->SetFocusAnnot(NULL);
|
| - // }
|
| - // pDestPage->DeleteAnnot(pAnnot);
|
| - // }
|
| - // }
|
| pSdkPageView->AddAnnot(hWidget);
|
|
|
| } else if (dwEvent == XFA_WIDGETEVENT_PreRemoved) {
|
| CPDFSDK_Annot* pAnnot = pSdkPageView->GetAnnotByXFAWidget(hWidget);
|
| if (pAnnot) {
|
| pSdkPageView->DeleteAnnot(pAnnot);
|
| - // pEnv->FFI_WidgetEvent(hWidget, XFA_WIDGETEVENT_PreRemoved);
|
| }
|
| }
|
| }
|
| @@ -686,32 +637,9 @@ void CPDFXFA_Document::ExportData(IXFA_Doc* hDoc,
|
| content.GetLength());
|
| CFX_WideStringC data(L"data");
|
| if (pXFADocHander->SavePackage(m_pXFADocView->GetDoc(), data, &fileWrite)) {
|
| - NULL;
|
| + // TODO: Maybe report error.
|
| }
|
| - }
|
| - /*else if (fileType == FXFA_FILE_STATIC_XDP)
|
| - {
|
| - content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
|
| - fileWrite.WriteBlock((const FX_CHAR*)content, fileWrite.GetSize(),
|
| -content.GetLength());
|
| - CFX_WideStringC data(L"data");
|
| - if( pXFADocHander->SavePackage(m_pXFADocView->GetDoc(), data,
|
| -&fileWrite))
|
| - {
|
| - NULL;
|
| - }
|
| - CFX_WideString wPath = pEnv->FFI_GetFilePath(pFileHandler);
|
| -// CFX_WideString wPath;
|
| -// wPath.FromUTF16LE(filePath);
|
| - CFX_ByteString bPath = wPath.UTF8Encode();
|
| - CFX_ByteString szFormat = "\n<pdf href=\"%s\"
|
| -xmlns=\"http://ns.adobe.com/xdp/pdf/\"/>";
|
| - content.Format(szFormat,(char*)(const FX_CHAR*)bPath);
|
| - fileWrite.WriteBlock((const FX_CHAR*)content,fileWrite.GetSize(),
|
| -content.GetLength());
|
| - }
|
| - */
|
| - else if (fileType == FXFA_SAVEAS_XDP) {
|
| + } else if (fileType == FXFA_SAVEAS_XDP) {
|
| if (m_pPDFDoc == NULL)
|
| return;
|
| CPDF_Dictionary* pRoot = m_pPDFDoc->GetRoot();
|
| @@ -729,8 +657,6 @@ content.GetLength());
|
| if (NULL == pArray)
|
| return;
|
| int size = pArray->GetCount();
|
| - int iFormIndex = -1;
|
| - int iDataSetsIndex = -1;
|
| for (int i = 1; i < size; i += 2) {
|
| CPDF_Object* pPDFObj = pArray->GetElement(i);
|
| CPDF_Object* pPrePDFObj = pArray->GetElement(i - 1);
|
| @@ -750,7 +676,6 @@ content.GetLength());
|
| &fileWrite);
|
| } else {
|
| if (i == size - 1) {
|
| - // CFX_WideString wPath = pEnv->FFI_GetFilePath(pFileHandler);
|
| CFX_WideString wPath = CFX_WideString::FromUTF16LE(
|
| (unsigned short*)(const FX_CHAR*)bs,
|
| bs.GetLength() / sizeof(unsigned short));
|
| @@ -771,7 +696,9 @@ content.GetLength());
|
| }
|
| }
|
| }
|
| - FX_BOOL bError = fileWrite.Flush();
|
| + if (!fileWrite.Flush()) {
|
| + // TODO: Report error.
|
| + }
|
| }
|
| void CPDFXFA_Document::ImportData(IXFA_Doc* hDoc,
|
| const CFX_WideStringC& wsFilePath) {
|
| @@ -1051,8 +978,6 @@ FX_BOOL CPDFXFA_Document::_ExportSubmitFile(FPDF_FILEHANDLER* pFileHandler,
|
| return FALSE;
|
| }
|
| int size = pArray->GetCount();
|
| - int iFormIndex = -1;
|
| - int iDataSetsIndex = -1;
|
| for (int i = 1; i < size; i += 2) {
|
| CPDF_Object* pPDFObj = pArray->GetElement(i);
|
| CPDF_Object* pPrePDFObj = pArray->GetElement(i - 1);
|
|
|