OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 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 "core/fpdfdoc/cpdf_formfield.h" | 7 #include "core/fpdfdoc/cpdf_formfield.h" |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 | 10 |
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
568 } | 568 } |
569 } else { | 569 } else { |
570 CPDF_Object* pValue = FPDF_GetFieldAttr(m_pDict, "V"); | 570 CPDF_Object* pValue = FPDF_GetFieldAttr(m_pDict, "V"); |
571 if (pValue) { | 571 if (pValue) { |
572 if (GetType() == ListBox) { | 572 if (GetType() == ListBox) { |
573 SelectOption(index, false); | 573 SelectOption(index, false); |
574 if (pValue->IsString()) { | 574 if (pValue->IsString()) { |
575 if (pValue->GetUnicodeText() == opt_value) | 575 if (pValue->GetUnicodeText() == opt_value) |
576 m_pDict->RemoveFor("V"); | 576 m_pDict->RemoveFor("V"); |
577 } else if (pValue->IsArray()) { | 577 } else if (pValue->IsArray()) { |
578 std::unique_ptr<CPDF_Array, ReleaseDeleter<CPDF_Array>> pArray( | 578 std::unique_ptr<CPDF_Array> pArray(new CPDF_Array); |
579 new CPDF_Array); | |
580 for (int i = 0; i < CountOptions(); i++) { | 579 for (int i = 0; i < CountOptions(); i++) { |
581 if (i != index && IsItemSelected(i)) { | 580 if (i != index && IsItemSelected(i)) { |
582 opt_value = GetOptionValue(i); | 581 opt_value = GetOptionValue(i); |
583 pArray->AddString(PDF_EncodeText(opt_value)); | 582 pArray->AddString(PDF_EncodeText(opt_value)); |
584 } | 583 } |
585 } | 584 } |
586 if (pArray->GetCount() > 0) | 585 if (pArray->GetCount() > 0) |
587 m_pDict->SetFor("V", pArray.release()); // std::move someday | 586 m_pDict->SetFor("V", pArray.release()); // std::move someday |
588 } | 587 } |
589 } else { | 588 } else { |
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
990 case ListBox: | 989 case ListBox: |
991 NotifyAfterSelectionChange(); | 990 NotifyAfterSelectionChange(); |
992 break; | 991 break; |
993 case ComboBox: | 992 case ComboBox: |
994 NotifyAfterValueChange(); | 993 NotifyAfterValueChange(); |
995 break; | 994 break; |
996 default: | 995 default: |
997 break; | 996 break; |
998 } | 997 } |
999 } | 998 } |
OLD | NEW |