summaryrefslogtreecommitdiff
path: root/fpdfsdk/pwl
diff options
context:
space:
mode:
authordan sinclair <dsinclair@chromium.org>2018-04-16 17:07:27 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-04-16 17:07:27 +0000
commitb7475313178d2f8db39e4179a202e8c920651ede (patch)
treef1bd44cee8a61af2c269aaeb4022a8eb0749c03a /fpdfsdk/pwl
parent19ae9bf554fc1c01e352a846646c8005a4fe6b2b (diff)
downloadpdfium-b7475313178d2f8db39e4179a202e8c920651ede.tar.xz
Remove CPWL_Edit rich text support
This CL removes the code which attempts to provide rich text support for CPWL_Edit. The code, as written, doesn't actually work well. If you have tags under the <p> tag we will just lose the content (so <p><b>foo</b></p> would end up being a blank string). Multiple <p> tags get concatenated together with a \n, but we subsequently lose the \n later when we store the content into the VariableText object (so <p>foo</p><p>bar</p> becomes foobar instead of foo\nbar). We never read the "RV" field from the dictionary. The RV field is what actually stores the rich text value. So, we never set a rich text value into the text edit. Change-Id: Idc1d65e1b5d75380dd28c45bcbf9137a2a4cea9a Reviewed-on: https://pdfium-review.googlesource.com/30690 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'fpdfsdk/pwl')
-rw-r--r--fpdfsdk/pwl/cpwl_edit.cpp40
-rw-r--r--fpdfsdk/pwl/cpwl_edit_impl.cpp10
2 files changed, 6 insertions, 44 deletions
diff --git a/fpdfsdk/pwl/cpwl_edit.cpp b/fpdfsdk/pwl/cpwl_edit.cpp
index 6c867ca456..41f2517a0a 100644
--- a/fpdfsdk/pwl/cpwl_edit.cpp
+++ b/fpdfsdk/pwl/cpwl_edit.cpp
@@ -14,8 +14,6 @@
#include "core/fpdfapi/font/cpdf_font.h"
#include "core/fpdfdoc/cpvt_word.h"
#include "core/fxcrt/fx_safe_types.h"
-#include "core/fxcrt/xml/cxml_content.h"
-#include "core/fxcrt/xml/cxml_element.h"
#include "core/fxge/cfx_graphstatedata.h"
#include "core/fxge/cfx_pathdata.h"
#include "core/fxge/cfx_renderdevice.h"
@@ -40,43 +38,7 @@ ByteString CPWL_Edit::GetClassName() const {
}
void CPWL_Edit::SetText(const WideString& csText) {
- WideString swText = csText;
- if (!HasFlag(PES_RICH)) {
- m_pEdit->SetText(swText);
- return;
- }
-
- ByteString sValue = ByteString::FromUnicode(swText);
- std::unique_ptr<CXML_Element> pXML(
- CXML_Element::Parse(sValue.c_str(), sValue.GetLength()));
- if (!pXML) {
- m_pEdit->SetText(swText);
- return;
- }
- swText.clear();
-
- bool bFirst = true;
- size_t nCount = pXML->CountChildren();
- for (size_t i = 0; i < nCount; ++i) {
- CXML_Element* pSubElement = ToElement(pXML->GetChild(i));
- if (!pSubElement || !pSubElement->GetTagName().EqualNoCase("p"))
- continue;
-
- WideString swSection;
- size_t nSubChild = pSubElement->CountChildren();
- for (size_t j = 0; j < nSubChild; ++j) {
- CXML_Content* pSubContent = ToContent(pSubElement->GetChild(j));
- if (pSubContent)
- swSection += pSubContent->m_Content;
- }
- if (bFirst)
- bFirst = false;
- else
- swText += FWL_VKEY_Return;
- swText += swSection;
- }
-
- m_pEdit->SetText(swText);
+ m_pEdit->SetText(csText);
}
bool CPWL_Edit::RePosChildWnd() {
diff --git a/fpdfsdk/pwl/cpwl_edit_impl.cpp b/fpdfsdk/pwl/cpwl_edit_impl.cpp
index cb774e5ef9..6d9fd20445 100644
--- a/fpdfsdk/pwl/cpwl_edit_impl.cpp
+++ b/fpdfsdk/pwl/cpwl_edit_impl.cpp
@@ -1808,16 +1808,16 @@ CPVT_WordPlace CPWL_EditImpl::DoInsertText(const CPVT_WordPlace& place,
for (int32_t i = 0, sz = sText.GetLength(); i < sz; i++) {
uint16_t word = sText[i];
switch (word) {
- case 0x0D:
+ case '\r':
wp = m_pVT->InsertSection(wp);
- if (i + 1 < sz && sText[i + 1] == 0x0A)
+ if (i + 1 < sz && sText[i + 1] == '\n')
i++;
break;
- case 0x0A:
+ case '\n':
wp = m_pVT->InsertSection(wp);
break;
- case 0x09:
- word = 0x20;
+ case '\t':
+ word = ' ';
FX_FALLTHROUGH;
default:
wp =