diff options
author | Kohei Yoshida <kohei.yoshida@suse.com> | 2012-02-28 14:37:26 -0500 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@suse.com> | 2012-02-28 21:03:07 -0500 |
commit | 884b73e91e1019c39868c53a67fc24164e1cd51b (patch) | |
tree | f75b5e6a6a90f934e86bba804e1f26ab9cbcc2a5 /sc | |
parent | daf87ab18a43999b6e1a133806d8f99cd0fbc314 (diff) |
Simplified it a bit.
Diffstat (limited to 'sc')
-rw-r--r-- | sc/inc/dpitemdata.hxx | 2 | ||||
-rw-r--r-- | sc/source/core/data/dpitemdata.cxx | 18 | ||||
-rw-r--r-- | sc/source/core/data/dptablecache.cxx | 23 |
3 files changed, 24 insertions, 19 deletions
diff --git a/sc/inc/dpitemdata.hxx b/sc/inc/dpitemdata.hxx index d2c8bf437ce4..16ebcd76f72f 100644 --- a/sc/inc/dpitemdata.hxx +++ b/sc/inc/dpitemdata.hxx @@ -72,7 +72,7 @@ public: ScDPItemData(sal_uLong nNF, const rtl::OUString & rS, double fV, sal_uInt8 bF); ScDPItemData(const rtl::OUString& rS, double fV = 0.0, bool bHV = false, const sal_uLong nNumFormat = 0, bool bData = true); - ScDPItemData(ScDocument* pDoc, SCCOL nCol, SCROW nRow, SCTAB nDocTab, bool bLabel); + ScDPItemData(ScDocument* pDoc, SCCOL nCol, SCROW nRow, SCTAB nDocTab); void SetString(const rtl::OUString& rS); bool IsCaseInsEqual(const ScDPItemData& r) const; diff --git a/sc/source/core/data/dpitemdata.cxx b/sc/source/core/data/dpitemdata.cxx index 37ad3945c00b..7a90038e3020 100644 --- a/sc/source/core/data/dpitemdata.cxx +++ b/sc/source/core/data/dpitemdata.cxx @@ -51,7 +51,7 @@ ScDPItemData::ScDPItemData(const rtl::OUString& rS, double fV, bool bHV, const s { } -ScDPItemData::ScDPItemData(ScDocument* pDoc, SCCOL nCol, SCROW nRow, SCTAB nDocTab, bool bLabel) : +ScDPItemData::ScDPItemData(ScDocument* pDoc, SCCOL nCol, SCROW nRow, SCTAB nDocTab) : mnNumFormat( 0 ), mfValue(0.0), mbFlag( 0 ) { rtl::OUString aDocStr = pDoc->GetString(nCol, nRow, nDocTab); @@ -78,22 +78,8 @@ ScDPItemData::ScDPItemData(ScDocument* pDoc, SCCOL nCol, SCROW nRow, SCTAB nDocT mnNumFormat = pDoc->GetNumberFormat( ScAddress( nCol, nRow, nDocTab ) ); isDate( nFormat ) ? ( mbFlag |= MK_DATE ) : (mbFlag &= ~MK_DATE); } - else if (bLabel || pDoc->HasData(nCol, nRow, nDocTab)) + else if (pDoc->HasData(nCol, nRow, nDocTab)) { - if (bLabel && aDocStr.isEmpty()) - { - // Replace an empty label string with column name. - rtl::OUStringBuffer aBuf; - aBuf.append(ScGlobal::GetRscString(STR_COLUMN)); - aBuf.append(sal_Unicode(' ')); - - ScAddress aColAddr(nCol, 0, 0); - rtl::OUString aColStr; - aColAddr.Format(aColStr, SCA_VALID_COL, NULL); - aBuf.append(aColStr); - aDocStr = aBuf.makeStringAndClear(); - } - SetString(aDocStr); } } diff --git a/sc/source/core/data/dptablecache.cxx b/sc/source/core/data/dptablecache.cxx index b25bdf3be862..82e4cbd07ea5 100644 --- a/sc/source/core/data/dptablecache.cxx +++ b/sc/source/core/data/dptablecache.cxx @@ -276,6 +276,25 @@ private: ScDocument* mpDoc; }; +rtl::OUString createLabelString(ScDocument* pDoc, SCCOL nCol, SCROW nRow, SCTAB nTab) +{ + rtl::OUString aDocStr = pDoc->GetString(nCol, nRow, nTab); + if (aDocStr.isEmpty()) + { + // Replace an empty label string with column name. + rtl::OUStringBuffer aBuf; + aBuf.append(ScGlobal::GetRscString(STR_COLUMN)); + aBuf.append(sal_Unicode(' ')); + + ScAddress aColAddr(nCol, 0, 0); + rtl::OUString aColStr; + aColAddr.Format(aColStr, SCA_VALID_COL, NULL); + aBuf.append(aColStr); + aDocStr = aBuf.makeStringAndClear(); + } + return aDocStr; +} + } bool ScDPCache::InitFromDoc(ScDocument* pDoc, const ScRange& rRange) @@ -316,9 +335,9 @@ bool ScDPCache::InitFromDoc(ScDocument* pDoc, const ScRange& rRange) for (sal_uInt16 nCol = nStartCol; nCol <= nEndCol; ++nCol) { - AddLabel(ScDPItemData(pDoc, nCol, nStartRow, nDocTab, true).GetString()); + AddLabel(createLabelString(pDoc, nCol, nStartRow, nDocTab)); for (SCROW nRow = nStartRow + 1; nRow <= nEndRow; ++nRow) - AddData(nCol - nStartCol, new ScDPItemData(pDoc, nCol, nRow, nDocTab, false)); + AddData(nCol - nStartCol, new ScDPItemData(pDoc, nCol, nRow, nDocTab)); } return true; } |