summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@suse.com>2012-02-28 14:37:26 -0500
committerKohei Yoshida <kohei.yoshida@suse.com>2012-02-28 21:03:07 -0500
commit884b73e91e1019c39868c53a67fc24164e1cd51b (patch)
treef75b5e6a6a90f934e86bba804e1f26ab9cbcc2a5 /sc
parentdaf87ab18a43999b6e1a133806d8f99cd0fbc314 (diff)
Simplified it a bit.
Diffstat (limited to 'sc')
-rw-r--r--sc/inc/dpitemdata.hxx2
-rw-r--r--sc/source/core/data/dpitemdata.cxx18
-rw-r--r--sc/source/core/data/dptablecache.cxx23
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;
}