Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(892)

Side by Side Diff: fpdfsdk/cpdfsdk_formfillenvironment.cpp

Issue 2417633002: Cleanup nits from merge CL (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 PDFium Authors. All rights reserved. 1 // Copyright 2016 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "fpdfsdk/cpdfsdk_formfillenvironment.h" 7 #include "fpdfsdk/cpdfsdk_formfillenvironment.h"
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 22 matching lines...) Expand all
33 } 33 }
34 34
35 } // namespace 35 } // namespace
36 36
37 CPDFSDK_FormFillEnvironment::CPDFSDK_FormFillEnvironment( 37 CPDFSDK_FormFillEnvironment::CPDFSDK_FormFillEnvironment(
38 UnderlyingDocumentType* pDoc, 38 UnderlyingDocumentType* pDoc,
39 FPDF_FORMFILLINFO* pFFinfo) 39 FPDF_FORMFILLINFO* pFFinfo)
40 : m_pInfo(pFFinfo), 40 : m_pInfo(pFFinfo),
41 m_pUnderlyingDoc(pDoc), 41 m_pUnderlyingDoc(pDoc),
42 m_pSysHandler(new CFX_SystemHandler(this)), 42 m_pSysHandler(new CFX_SystemHandler(this)),
43 m_bChangeMask(FALSE), 43 m_bChangeMask(false),
44 m_bBeingDestroyed(FALSE) {} 44 m_bBeingDestroyed(false) {}
45 45
46 CPDFSDK_FormFillEnvironment::~CPDFSDK_FormFillEnvironment() { 46 CPDFSDK_FormFillEnvironment::~CPDFSDK_FormFillEnvironment() {
47 m_bBeingDestroyed = TRUE; 47 m_bBeingDestroyed = true;
48 48
49 ClearAllFocusedAnnots(); 49 ClearAllFocusedAnnots();
50 for (auto& it : m_pageMap)
51 delete it.second;
52 m_pageMap.clear();
53 50
54 // |m_pAnnotHandlerMgr| will try to access |m_pFormFiller| 51 // |m_pAnnotHandlerMgr| will try to access |m_pFormFiller|
55 // when it cleans up. So, we must make sure it is cleaned up before 52 // when it cleans up. So, we must make sure it is cleaned up before
56 // |m_pFormFiller|. 53 // |m_pFormFiller|.
57 m_pAnnotHandlerMgr.reset(); 54 m_pAnnotHandlerMgr.reset();
58 55
59 // Must destroy the |m_pFormFiller| before the environment (|this|) 56 // Must destroy the |m_pFormFiller| before the environment (|this|)
60 // because any created form widgets hold a pointer to the environment. 57 // because any created form widgets hold a pointer to the environment.
61 // Those widgets may call things like KillTimer() as they are shutdown. 58 // Those widgets may call things like KillTimer() as they are shutdown.
62 m_pFormFiller.reset(); 59 m_pFormFiller.reset();
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
577 574
578 void CPDFSDK_FormFillEnvironment::ClearAllFocusedAnnots() { 575 void CPDFSDK_FormFillEnvironment::ClearAllFocusedAnnots() {
579 for (auto& it : m_pageMap) { 576 for (auto& it : m_pageMap) {
580 if (it.second->IsValidSDKAnnot(GetFocusAnnot())) 577 if (it.second->IsValidSDKAnnot(GetFocusAnnot()))
581 KillFocusAnnot(0); 578 KillFocusAnnot(0);
582 } 579 }
583 } 580 }
584 581
585 CPDFSDK_PageView* CPDFSDK_FormFillEnvironment::GetPageView( 582 CPDFSDK_PageView* CPDFSDK_FormFillEnvironment::GetPageView(
586 UnderlyingPageType* pUnderlyingPage, 583 UnderlyingPageType* pUnderlyingPage,
587 bool ReNew) { 584 bool renew) {
588 auto it = m_pageMap.find(pUnderlyingPage); 585 auto it = m_pageMap.find(pUnderlyingPage);
589 if (it != m_pageMap.end()) 586 if (it != m_pageMap.end())
590 return it->second; 587 return it->second.get();
591 588
592 if (!ReNew) 589 if (!renew)
593 return nullptr; 590 return nullptr;
594 591
595 CPDFSDK_PageView* pPageView = new CPDFSDK_PageView(this, pUnderlyingPage); 592 CPDFSDK_PageView* pPageView = new CPDFSDK_PageView(this, pUnderlyingPage);
596 m_pageMap[pUnderlyingPage] = pPageView; 593 m_pageMap[pUnderlyingPage].reset(pPageView);
597 // Delay to load all the annotations, to avoid endless loop. 594 // Delay to load all the annotations, to avoid endless loop.
598 pPageView->LoadFXAnnots(); 595 pPageView->LoadFXAnnots();
599 return pPageView; 596 return pPageView;
600 } 597 }
601 598
602 CPDFSDK_PageView* CPDFSDK_FormFillEnvironment::GetCurrentView() { 599 CPDFSDK_PageView* CPDFSDK_FormFillEnvironment::GetCurrentView() {
603 UnderlyingPageType* pPage = 600 UnderlyingPageType* pPage =
604 UnderlyingFromFPDFPage(GetCurrentPage(m_pUnderlyingDoc)); 601 UnderlyingFromFPDFPage(GetCurrentPage(m_pUnderlyingDoc));
605 return pPage ? GetPageView(pPage, true) : nullptr; 602 return pPage ? GetPageView(pPage, true) : nullptr;
606 } 603 }
607 604
608 CPDFSDK_PageView* CPDFSDK_FormFillEnvironment::GetPageView(int nIndex) { 605 CPDFSDK_PageView* CPDFSDK_FormFillEnvironment::GetPageView(int nIndex) {
609 UnderlyingPageType* pTempPage = 606 UnderlyingPageType* pTempPage =
610 UnderlyingFromFPDFPage(GetPage(m_pUnderlyingDoc, nIndex)); 607 UnderlyingFromFPDFPage(GetPage(m_pUnderlyingDoc, nIndex));
611 if (!pTempPage) 608 if (!pTempPage)
612 return nullptr; 609 return nullptr;
613 610
614 auto it = m_pageMap.find(pTempPage); 611 auto it = m_pageMap.find(pTempPage);
615 return it != m_pageMap.end() ? it->second : nullptr; 612 return it != m_pageMap.end() ? it->second.get() : nullptr;
616 } 613 }
617 614
618 void CPDFSDK_FormFillEnvironment::ProcJavascriptFun() { 615 void CPDFSDK_FormFillEnvironment::ProcJavascriptFun() {
619 CPDF_Document* pPDFDoc = GetPDFDocument(); 616 CPDF_Document* pPDFDoc = GetPDFDocument();
620 CPDF_DocJSActions docJS(pPDFDoc); 617 CPDF_DocJSActions docJS(pPDFDoc);
621 int iCount = docJS.CountJSActions(); 618 int iCount = docJS.CountJSActions();
622 if (iCount < 1) 619 if (iCount < 1)
623 return; 620 return;
624 for (int i = 0; i < iCount; i++) { 621 for (int i = 0; i < iCount; i++) {
625 CFX_ByteString csJSName; 622 CFX_ByteString csJSName;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 } 654 }
658 return FALSE; 655 return FALSE;
659 } 656 }
660 657
661 void CPDFSDK_FormFillEnvironment::RemovePageView( 658 void CPDFSDK_FormFillEnvironment::RemovePageView(
662 UnderlyingPageType* pUnderlyingPage) { 659 UnderlyingPageType* pUnderlyingPage) {
663 auto it = m_pageMap.find(pUnderlyingPage); 660 auto it = m_pageMap.find(pUnderlyingPage);
664 if (it == m_pageMap.end()) 661 if (it == m_pageMap.end())
665 return; 662 return;
666 663
667 CPDFSDK_PageView* pPageView = it->second; 664 CPDFSDK_PageView* pPageView = it->second.get();
668 if (pPageView->IsLocked() || pPageView->IsBeingDestroyed()) 665 if (pPageView->IsLocked() || pPageView->IsBeingDestroyed())
669 return; 666 return;
670 667
671 // Mark the page view so we do not come into |RemovePageView| a second 668 // Mark the page view so we do not come into |RemovePageView| a second
672 // time while we're in the process of removing. 669 // time while we're in the process of removing.
673 pPageView->SetBeingDestroyed(); 670 pPageView->SetBeingDestroyed();
674 671
675 // This must happen before we remove |pPageView| from the map because 672 // This must happen before we remove |pPageView| from the map because
676 // |KillFocusAnnot| can call into the |GetPage| method which will 673 // |KillFocusAnnot| can call into the |GetPage| method which will
677 // look for this page view in the map, if it doesn't find it a new one will 674 // look for this page view in the map, if it doesn't find it a new one will
678 // be created. We then have two page views pointing to the same page and 675 // be created. We then have two page views pointing to the same page and
679 // bad things happen. 676 // bad things happen.
680 if (pPageView->IsValidSDKAnnot(GetFocusAnnot())) 677 if (pPageView->IsValidSDKAnnot(GetFocusAnnot()))
681 KillFocusAnnot(0); 678 KillFocusAnnot(0);
682 679
683 // Remove the page from the map to make sure we don't accidentally attempt 680 // Remove the page from the map to make sure we don't accidentally attempt
684 // to use the |pPageView| while we're cleaning it up. 681 // to use the |pPageView| while we're cleaning it up.
685 m_pageMap.erase(it); 682 m_pageMap.erase(it);
686
687 delete pPageView;
688 } 683 }
689 684
690 UnderlyingPageType* CPDFSDK_FormFillEnvironment::GetPage(int nIndex) { 685 UnderlyingPageType* CPDFSDK_FormFillEnvironment::GetPage(int nIndex) {
691 return UnderlyingFromFPDFPage(GetPage(m_pUnderlyingDoc, nIndex)); 686 return UnderlyingFromFPDFPage(GetPage(m_pUnderlyingDoc, nIndex));
692 } 687 }
693 688
694 CPDFSDK_InterForm* CPDFSDK_FormFillEnvironment::GetInterForm() { 689 CPDFSDK_InterForm* CPDFSDK_FormFillEnvironment::GetInterForm() {
695 if (!m_pInterForm) 690 if (!m_pInterForm)
696 m_pInterForm = pdfium::MakeUnique<CPDFSDK_InterForm>(this); 691 m_pInterForm = pdfium::MakeUnique<CPDFSDK_InterForm>(this);
697 return m_pInterForm.get(); 692 return m_pInterForm.get();
698 } 693 }
699 694
700 void CPDFSDK_FormFillEnvironment::UpdateAllViews(CPDFSDK_PageView* pSender, 695 void CPDFSDK_FormFillEnvironment::UpdateAllViews(CPDFSDK_PageView* pSender,
701 CPDFSDK_Annot* pAnnot) { 696 CPDFSDK_Annot* pAnnot) {
702 for (const auto& it : m_pageMap) { 697 for (const auto& it : m_pageMap) {
703 CPDFSDK_PageView* pPageView = it.second; 698 CPDFSDK_PageView* pPageView = it.second.get();
704 if (pPageView != pSender) 699 if (pPageView != pSender)
705 pPageView->UpdateView(pAnnot); 700 pPageView->UpdateView(pAnnot);
706 } 701 }
707 } 702 }
708 703
709 FX_BOOL CPDFSDK_FormFillEnvironment::SetFocusAnnot( 704 FX_BOOL CPDFSDK_FormFillEnvironment::SetFocusAnnot(
710 CPDFSDK_Annot::ObservedPtr* pAnnot) { 705 CPDFSDK_Annot::ObservedPtr* pAnnot) {
711 if (m_bBeingDestroyed) 706 if (m_bBeingDestroyed)
712 return FALSE; 707 return FALSE;
713 if (m_pFocusAnnot == *pAnnot) 708 if (m_pFocusAnnot == *pAnnot)
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 } else { 761 } else {
767 m_pFocusAnnot.Reset(pFocusAnnot.Get()); 762 m_pFocusAnnot.Reset(pFocusAnnot.Get());
768 } 763 }
769 } 764 }
770 return FALSE; 765 return FALSE;
771 } 766 }
772 767
773 FX_BOOL CPDFSDK_FormFillEnvironment::GetPermissions(int nFlag) { 768 FX_BOOL CPDFSDK_FormFillEnvironment::GetPermissions(int nFlag) {
774 return GetPDFDocument()->GetUserPermissions() & nFlag; 769 return GetPDFDocument()->GetUserPermissions() & nFlag;
775 } 770 }
OLDNEW
« fpdfsdk/cpdfsdk_formfillenvironment.h ('K') | « fpdfsdk/cpdfsdk_formfillenvironment.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698