summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Elie Mamane <lionel@mamane.lu>2017-05-09 12:53:25 +0200
committerMichael Stahl <mstahl@redhat.com>2017-05-26 15:39:22 +0200
commitbb50f9d66540a87065f30da8fd8cadde8e730704 (patch)
tree94979208f463f99d3d9e6a7083e48fa1bf1c3bef
parent6ee4771aff5d756f45014b88aebbcfb25b5cadfe (diff)
tdf#107720 Bound Control initFromField: consider the case of the insert row
loplugin: simplifybool (cherry picked from commit 95b25532d24bfb08c4846b991451a36475dd439f) Change-Id: If18e161c994c926fd86453ab5736df1e89bb61de Reviewed-on: https://gerrit.libreoffice.org/37427 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
-rw-r--r--forms/source/component/FormComponent.cxx12
1 files changed, 11 insertions, 1 deletions
diff --git a/forms/source/component/FormComponent.cxx b/forms/source/component/FormComponent.cxx
index 80e85758801c..743f4d47986b 100644
--- a/forms/source/component/FormComponent.cxx
+++ b/forms/source/component/FormComponent.cxx
@@ -1981,7 +1981,17 @@ void OBoundControlModel::initFromField( const Reference< XRowSet >& _rxRowSet )
// but only if the rowset is positioned on a valid record
if ( hasField() && _rxRowSet.is() )
{
- if ( !_rxRowSet->isBeforeFirst() && !_rxRowSet->isAfterLast() )
+ bool shouldTransfer(!_rxRowSet->isBeforeFirst() && !_rxRowSet->isAfterLast());
+ if (!shouldTransfer)
+ {
+ const Reference< XPropertySet > xPS(_rxRowSet, UNO_QUERY);
+ if (xPS.is())
+ {
+ assert(!shouldTransfer);
+ xPS->getPropertyValue("IsNew") >>= shouldTransfer;
+ }
+ }
+ if ( shouldTransfer )
transferDbValueToControl();
else
// reset the field if the row set is empty