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:51:45 +0000
commit19d08b0c655ff66c2948d6390e32e0ad0a1a67a3 (patch)
tree27ea42b8653082a85c9a1525c3f71b884fd62679
parent2cc79aeaf0fb68ea5bed912ed229166c7af3e45d (diff)
fdo#66171 ListBox correctly save empty or zero BoundColumn
Change-Id: I05fa923f962191081ea3318837d3e181c183b466 Reviewed-on: https://gerrit.libreoffice.org/4589 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 14569f5a9bdb..95b7ea13449b 100644
--- a/forms/source/component/ListBox.cxx
+++ b/forms/source/component/ListBox.cxx
@@ -650,6 +650,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 b10fa4370ce3..ca2834822586 100644
--- a/xmloff/source/forms/elementexport.cxx
+++ b/xmloff/source/forms/elementexport.cxx
@@ -890,7 +890,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 73f5e1dddc2e..7e7597b723e2 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 OUString& _rPropertyName, const sal_Int16 _nDefault)
+ const 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
OUStringBuffer sBuffer;
diff --git a/xmloff/source/forms/propertyexport.hxx b/xmloff/source/forms/propertyexport.hxx
index a5567538af47..ffc7f7cc5b80 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 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