summaryrefslogtreecommitdiff
path: root/forms/source
diff options
context:
space:
mode:
authorOcke Janssen <oj@openoffice.org>2002-10-18 11:24:00 +0000
committerOcke Janssen <oj@openoffice.org>2002-10-18 11:24:00 +0000
commit884c9c85e673d6d078ee9875b69943d4a8d3347f (patch)
treeaafe866c69355b541f403474783f72925c54755d /forms/source
parent68a742538afbb655d7eb93512525b4485210ae99 (diff)
#i2817# cut savedvalue when it is greater than the max text len
Diffstat (limited to 'forms/source')
-rw-r--r--forms/source/component/Edit.cxx16
1 files changed, 12 insertions, 4 deletions
diff --git a/forms/source/component/Edit.cxx b/forms/source/component/Edit.cxx
index 6485e4ac220f..76aa6af4a6cb 100644
--- a/forms/source/component/Edit.cxx
+++ b/forms/source/component/Edit.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: Edit.cxx,v $
*
- * $Revision: 1.12 $
+ * $Revision: 1.13 $
*
- * last change: $Author: vg $ $Date: 2002-07-23 11:05:37 $
+ * last change: $Author: oj $ $Date: 2002-10-18 12:24:00 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -573,7 +573,7 @@ void OEditModel::_loaded(const EventObject& rEvent)
aVal <<= (sal_Int16)nFieldLen;
m_xAggregateSet->setPropertyValue(PROPERTY_MAXTEXTLEN, aVal);
- m_nMaxLen = nFieldLen; // damit das Ganze beim _unloaded wieder zurueckgesetzt wird
+ m_nMaxLen = static_cast<sal_Int16>(nFieldLen); // damit das Ganze beim _unloaded wieder zurueckgesetzt wird
}
}
else
@@ -617,7 +617,7 @@ sal_Bool OEditModel::_commit()
{
try
{
- if (m_bNumericField)
+ if ( m_bNumericField )
DBTypeConversion::setValue(m_xColumnUpdate, m_xFormatter, m_aNullDate, sNewValue, m_nFormatKey, m_nFieldType, m_nKeyType);
else
m_xColumnUpdate->updateString(sNewValue);
@@ -650,6 +650,14 @@ void OEditModel::_onValueChanged()
m_nFormatKey,
m_nKeyType);
+ // #i2817# OJ
+ sal_uInt16 nMaxTextLen = getINT16(m_xAggregateSet->getPropertyValue(PROPERTY_MAXTEXTLEN));
+ if ( nMaxTextLen && m_aSaveValue.getLength() > nMaxTextLen )
+ {
+ sal_Int32 nDiff = m_aSaveValue.getLength() - nMaxTextLen;
+ m_aSaveValue = m_aSaveValue.replaceAt(nMaxTextLen,nDiff,::rtl::OUString());
+ }
+
m_xAggregateFastSet->setFastPropertyValue(OEditModel::nTextHandle, makeAny(m_aSaveValue));
}