summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@gmail.com>2012-07-03 14:08:14 -0400
committerKohei Yoshida <kohei.yoshida@gmail.com>2012-07-03 14:14:08 -0400
commitf2ac4ff6600a7d20a519e9ef9e6bcd8157288f63 (patch)
tree563b800c409815b3febc7a66e8583f02edd72926
parenta54230f3211f19290c4d2ac26b3084fc0a0eeab5 (diff)
fdo#51266: Properly set pivot item 'empty' on empty cells.
Or else it would re-use the last non-empty cell value which is wrong. Change-Id: I3feab09a54e93150a7b6a9e9b4b540327f2ab5c5
-rw-r--r--sc/inc/dpitemdata.hxx1
-rw-r--r--sc/source/core/data/dpcache.cxx2
-rw-r--r--sc/source/core/data/dpitemdata.cxx6
3 files changed, 9 insertions, 0 deletions
diff --git a/sc/inc/dpitemdata.hxx b/sc/inc/dpitemdata.hxx
index 67f4af20300d..e294de8c412f 100644
--- a/sc/inc/dpitemdata.hxx
+++ b/sc/inc/dpitemdata.hxx
@@ -89,6 +89,7 @@ public:
~ScDPItemData();
Type GetType() const;
+ void SetEmpty();
void SetString(const rtl::OUString& rS);
void SetString(const rtl::OUString* pS);
void SetValue(double fVal);
diff --git a/sc/source/core/data/dpcache.cxx b/sc/source/core/data/dpcache.cxx
index 742b6eb7a654..9163dde2f934 100644
--- a/sc/source/core/data/dpcache.cxx
+++ b/sc/source/core/data/dpcache.cxx
@@ -161,6 +161,8 @@ void initFromCell(
{
rData.SetString(rCache.InternString(aDocStr));
}
+ else
+ rData.SetEmpty();
}
void getItemValue(
diff --git a/sc/source/core/data/dpitemdata.cxx b/sc/source/core/data/dpitemdata.cxx
index 1bcc3a6ecb9a..1641572f087e 100644
--- a/sc/source/core/data/dpitemdata.cxx
+++ b/sc/source/core/data/dpitemdata.cxx
@@ -138,6 +138,12 @@ ScDPItemData::Type ScDPItemData::GetType() const
return static_cast<Type>(meType);
}
+void ScDPItemData::SetEmpty()
+{
+ DisposeString();
+ meType = Empty;
+}
+
void ScDPItemData::SetString(const rtl::OUString& rS)
{
DisposeString();