Convert CFWL_Edit Cut & Copy out param to return
Change-Id: I99776deb809609f69275848ddb81706e2cc82c82
Reviewed-on: https://pdfium-review.googlesource.com/22370
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
diff --git a/fpdfsdk/fpdfformfill.cpp b/fpdfsdk/fpdfformfill.cpp
index d70b678..3d61336 100644
--- a/fpdfsdk/fpdfformfill.cpp
+++ b/fpdfsdk/fpdfformfill.cpp
@@ -500,8 +500,8 @@
if (!pContext->ContainsXFAForm())
return;
- WideString wsCpText;
- static_cast<CXFA_FFWidget*>(hWidget)->Copy(wsCpText);
+ WideString wsCpText =
+ static_cast<CXFA_FFWidget*>(hWidget)->Copy().value_or(WideString());
ByteString bsCpText = wsCpText.UTF16LE_Encode();
uint32_t len = bsCpText.GetLength() / sizeof(unsigned short);
@@ -531,8 +531,8 @@
if (!pContext->ContainsXFAForm())
return;
- WideString wsCpText;
- static_cast<CXFA_FFWidget*>(hWidget)->Cut(wsCpText);
+ WideString wsCpText =
+ static_cast<CXFA_FFWidget*>(hWidget)->Cut().value_or(WideString());
ByteString bsCpText = wsCpText.UTF16LE_Encode();
uint32_t len = bsCpText.GetLength() / sizeof(unsigned short);
diff --git a/xfa/fwl/cfwl_combobox.h b/xfa/fwl/cfwl_combobox.h
index 923e2d8..a9dc635 100644
--- a/xfa/fwl/cfwl_combobox.h
+++ b/xfa/fwl/cfwl_combobox.h
@@ -83,8 +83,8 @@
return EditCanCopy();
}
bool EditCanSelectAll() const { return m_pEdit->GetTextLength() > 0; }
- bool EditCopy(WideString& wsCopy) const { return m_pEdit->Copy(wsCopy); }
- bool EditCut(WideString& wsCut) { return m_pEdit->Cut(wsCut); }
+ Optional<WideString> EditCopy() const { return m_pEdit->Copy(); }
+ Optional<WideString> EditCut() { return m_pEdit->Cut(); }
bool EditPaste(const WideString& wsPaste) { return m_pEdit->Paste(wsPaste); }
void EditSelectAll() { m_pEdit->SelectAll(); }
void EditDelete() { m_pEdit->ClearText(); }
diff --git a/xfa/fwl/cfwl_edit.cpp b/xfa/fwl/cfwl_edit.cpp
index cdbca2c..960ec99 100644
--- a/xfa/fwl/cfwl_edit.cpp
+++ b/xfa/fwl/cfwl_edit.cpp
@@ -322,20 +322,18 @@
m_EdtEngine.SetAliasChar(wAlias);
}
-bool CFWL_Edit::Copy(WideString& wsCopy) {
+Optional<WideString> CFWL_Edit::Copy() {
if (!m_EdtEngine.HasSelection())
- return false;
+ return {};
- wsCopy = m_EdtEngine.GetSelectedText();
- return true;
+ return {m_EdtEngine.GetSelectedText()};
}
-bool CFWL_Edit::Cut(WideString& wsCut) {
+Optional<WideString> CFWL_Edit::Cut() {
if (!m_EdtEngine.HasSelection())
- return false;
+ return {};
- wsCut = m_EdtEngine.DeleteSelectedText();
- return true;
+ return {m_EdtEngine.DeleteSelectedText()};
}
bool CFWL_Edit::Paste(const WideString& wsPaste) {
diff --git a/xfa/fwl/cfwl_edit.h b/xfa/fwl/cfwl_edit.h
index 6aedca8..9c667f5 100644
--- a/xfa/fwl/cfwl_edit.h
+++ b/xfa/fwl/cfwl_edit.h
@@ -80,8 +80,8 @@
int32_t GetLimit() const;
void SetLimit(int32_t nLimit);
void SetAliasChar(wchar_t wAlias);
- bool Copy(WideString& wsCopy);
- bool Cut(WideString& wsCut);
+ Optional<WideString> Copy();
+ Optional<WideString> Cut();
bool Paste(const WideString& wsPaste);
bool Undo();
bool Redo();
diff --git a/xfa/fxfa/cxfa_ffcombobox.cpp b/xfa/fxfa/cxfa_ffcombobox.cpp
index 58a0f94..13bda7a 100644
--- a/xfa/fxfa/cxfa_ffcombobox.cpp
+++ b/xfa/fxfa/cxfa_ffcombobox.cpp
@@ -232,13 +232,15 @@
return ToComboBox(m_pNormalWidget.get())->EditCanSelectAll();
}
-bool CXFA_FFComboBox::Copy(WideString& wsCopy) {
- return ToComboBox(m_pNormalWidget.get())->EditCopy(wsCopy);
+Optional<WideString> CXFA_FFComboBox::Copy() {
+ return ToComboBox(m_pNormalWidget.get())->EditCopy();
}
-bool CXFA_FFComboBox::Cut(WideString& wsCut) {
- return m_pDataAcc->IsChoiceListAllowTextEntry() &&
- ToComboBox(m_pNormalWidget.get())->EditCut(wsCut);
+Optional<WideString> CXFA_FFComboBox::Cut() {
+ if (!m_pDataAcc->IsChoiceListAllowTextEntry())
+ return {};
+
+ return ToComboBox(m_pNormalWidget.get())->EditCut();
}
bool CXFA_FFComboBox::Paste(const WideString& wsPaste) {
diff --git a/xfa/fxfa/cxfa_ffcombobox.h b/xfa/fxfa/cxfa_ffcombobox.h
index 81da2c2..727e1ba 100644
--- a/xfa/fxfa/cxfa_ffcombobox.h
+++ b/xfa/fxfa/cxfa_ffcombobox.h
@@ -29,8 +29,8 @@
bool CanCut() override;
bool CanPaste() override;
bool CanSelectAll() override;
- bool Copy(WideString& wsCopy) override;
- bool Cut(WideString& wsCut) override;
+ Optional<WideString> Copy() override;
+ Optional<WideString> Cut() override;
bool Paste(const WideString& wsPaste) override;
void SelectAll() override;
void Delete() override;
diff --git a/xfa/fxfa/cxfa_fftextedit.cpp b/xfa/fxfa/cxfa_fftextedit.cpp
index b97b218..3f4260c 100644
--- a/xfa/fxfa/cxfa_fftextedit.cpp
+++ b/xfa/fxfa/cxfa_fftextedit.cpp
@@ -398,12 +398,12 @@
return ToEdit(m_pNormalWidget.get())->GetTextLength() > 0;
}
-bool CXFA_FFTextEdit::Copy(WideString& wsCopy) {
- return ToEdit(m_pNormalWidget.get())->Copy(wsCopy);
+Optional<WideString> CXFA_FFTextEdit::Copy() {
+ return ToEdit(m_pNormalWidget.get())->Copy();
}
-bool CXFA_FFTextEdit::Cut(WideString& wsCut) {
- return ToEdit(m_pNormalWidget.get())->Copy(wsCut);
+Optional<WideString> CXFA_FFTextEdit::Cut() {
+ return ToEdit(m_pNormalWidget.get())->Cut();
}
bool CXFA_FFTextEdit::Paste(const WideString& wsPaste) {
diff --git a/xfa/fxfa/cxfa_fftextedit.h b/xfa/fxfa/cxfa_fftextedit.h
index dd3801b..404d35e 100644
--- a/xfa/fxfa/cxfa_fftextedit.h
+++ b/xfa/fxfa/cxfa_fftextedit.h
@@ -51,8 +51,8 @@
bool CanCut() override;
bool CanPaste() override;
bool CanSelectAll() override;
- bool Copy(WideString& wsCopy) override;
- bool Cut(WideString& wsCut) override;
+ Optional<WideString> Copy() override;
+ Optional<WideString> Cut() override;
bool Paste(const WideString& wsPaste) override;
void SelectAll() override;
void Delete() override;
diff --git a/xfa/fxfa/cxfa_ffwidget.cpp b/xfa/fxfa/cxfa_ffwidget.cpp
index 1314b8a..2a844bb 100644
--- a/xfa/fxfa/cxfa_ffwidget.cpp
+++ b/xfa/fxfa/cxfa_ffwidget.cpp
@@ -1166,12 +1166,12 @@
return CanCopy();
}
-bool CXFA_FFWidget::Copy(WideString& wsCopy) {
- return false;
+Optional<WideString> CXFA_FFWidget::Copy() {
+ return {};
}
-bool CXFA_FFWidget::Cut(WideString& wsCut) {
- return false;
+Optional<WideString> CXFA_FFWidget::Cut() {
+ return {};
}
bool CXFA_FFWidget::Paste(const WideString& wsPaste) {
diff --git a/xfa/fxfa/cxfa_ffwidget.h b/xfa/fxfa/cxfa_ffwidget.h
index 1337232..f520983 100644
--- a/xfa/fxfa/cxfa_ffwidget.h
+++ b/xfa/fxfa/cxfa_ffwidget.h
@@ -127,8 +127,8 @@
virtual bool CanSelectAll();
virtual bool CanDelete();
virtual bool CanDeSelect();
- virtual bool Copy(WideString& wsCopy);
- virtual bool Cut(WideString& wsCut);
+ virtual Optional<WideString> Copy();
+ virtual Optional<WideString> Cut();
virtual bool Paste(const WideString& wsPaste);
virtual void SelectAll();
virtual void Delete();
diff --git a/xfa/fxfa/cxfa_ffwidgethandler.cpp b/xfa/fxfa/cxfa_ffwidgethandler.cpp
index 8988cf1..79e48ba 100644
--- a/xfa/fxfa/cxfa_ffwidgethandler.cpp
+++ b/xfa/fxfa/cxfa_ffwidgethandler.cpp
@@ -150,9 +150,7 @@
if (!widget->CanCopy())
return WideString();
- WideString val;
- widget->Copy(val);
- return val;
+ return widget->Copy().value_or(WideString());
}
void CXFA_FFWidgetHandler::PasteText(CXFA_FFWidget* widget,