summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Elie Mamane <lionel@mamane.lu>2013-06-27 17:14:16 +0200
committerFridrich Strba <fridrich@documentfoundation.org>2013-06-28 12:56:27 +0000
commit60d4d5a4ec70186f64b12ebb485428e905283785 (patch)
treeecbc33c26111ba3dcf709fdf4d8ee1c6ef918ec0
parent3d736faef1cfc619f965d80c0eb112dc7c7426e3 (diff)
fdo#66171 ListBox correctly save empty or zero BoundColumn
Change-Id: I05fa923f962191081ea3318837d3e181c183b466 Reviewed-on: https://gerrit.libreoffice.org/4590 Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org> Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
-rw-r--r--forms/source/component/ListBox.cxx5
-rw-r--r--xmloff/source/forms/elementexport.cxx3
-rw-r--r--xmloff/source/forms/propertyexport.cxx4
-rw-r--r--xmloff/source/forms/propertyexport.hxx11
4 files changed, 17 insertions, 6 deletions
diff --git a/forms/source/component/ListBox.cxx b/forms/source/component/ListBox.cxx
index c3aba8b9bb27..6b143c40c632 100644
--- a/forms/source/component/ListBox.cxx
+++ b/forms/source/component/ListBox.cxx
@@ -609,6 +609,11 @@ namespace frm
_rxInStream >> nValue;
m_aBoundColumn <<= nValue;
}
+ else // the constructor initialises to 1, so if it is empty,
+ // we must explicitly set to empty
+ {
+ m_aBoundColumn = Any();
+ }
if (nVersion > 2)
readHelpTextCompatibly(_rxInStream);
diff --git a/xmloff/source/forms/elementexport.cxx b/xmloff/source/forms/elementexport.cxx
index 818be045f3e3..2254cec0664b 100644
--- a/xmloff/source/forms/elementexport.cxx
+++ b/xmloff/source/forms/elementexport.cxx
@@ -888,7 +888,8 @@ namespace xmloff
OAttributeMetaData::getDatabaseAttributeNamespace(DA_BOUND_COLUMN),
OAttributeMetaData::getDatabaseAttributeName(DA_BOUND_COLUMN),
PROPERTY_BOUNDCOLUMN,
- 0);
+ 0,
+ true);
RESET_BIT( nIncludeDatabase, DA_BOUND_COLUMN );
}
diff --git a/xmloff/source/forms/propertyexport.cxx b/xmloff/source/forms/propertyexport.cxx
index 2af7199c184c..83f0601993ab 100644
--- a/xmloff/source/forms/propertyexport.cxx
+++ b/xmloff/source/forms/propertyexport.cxx
@@ -319,7 +319,7 @@ namespace xmloff
//---------------------------------------------------------------------
void OPropertyExport::exportInt16PropertyAttribute(const sal_uInt16 _nNamespaceKey, const sal_Char* _pAttributeName,
- const ::rtl::OUString& _rPropertyName, const sal_Int16 _nDefault)
+ const ::rtl::OUString& _rPropertyName, const sal_Int16 _nDefault, bool force)
{
DBG_CHECK_PROPERTY( _rPropertyName, sal_Int16 );
@@ -328,7 +328,7 @@ namespace xmloff
m_xProps->getPropertyValue( _rPropertyName ) >>= nCurrentValue;
// add the attribute
- if (_nDefault != nCurrentValue)
+ if (force || _nDefault != nCurrentValue)
{
// let the formatter of the export context build a string
::rtl::OUStringBuffer sBuffer;
diff --git a/xmloff/source/forms/propertyexport.hxx b/xmloff/source/forms/propertyexport.hxx
index cab0764430d7..191f55a7bbcb 100644
--- a/xmloff/source/forms/propertyexport.hxx
+++ b/xmloff/source/forms/propertyexport.hxx
@@ -160,14 +160,19 @@ namespace xmloff
@param _pPropertyName
the name of the property to ask the control for
@param _nDefault
- the default of the attribute. If the current property value equals this default, no
- attribute is added.
+ the default of the attribute. See force parameter.
+ @param force
+ if true and the property is not set or does not contain a sal_Int16,
+ then _nDefault is written out.
+ if false and the current property value equals _nDefault,
+ then no attribute is added.
*/
void exportInt16PropertyAttribute(
const sal_uInt16 _nNamespaceKey,
const sal_Char* _pAttributeName,
const ::rtl::OUString& _rPropertyName,
- const sal_Int16 _nDefault);
+ const sal_Int16 _nDefault,
+ const bool force = false);
/** add an attribute which is represented by a sal_Int32 property to the export context