diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-12-14 13:57:14 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-07-07 11:33:05 +0200 |
commit | dbe6d043a270ccc916f2588852574f1c14b8de9e (patch) | |
tree | bd1a268d77716c86b3ccab7d97d2a530b8e95482 /sw/source/filter/ww8 | |
parent | 2296051e23c43f44c90804e0f1d0c66db7909621 (diff) |
DOC export: write stringTable in SmartTagData
Change-Id: I05eda6067308119a388238eed356531851000691
(cherry picked from commit 520bb76859d912bfc7a5f60d7dbbbd2e460b4ff7)
Diffstat (limited to 'sw/source/filter/ww8')
-rw-r--r-- | sw/source/filter/ww8/wrtww8.cxx | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/sw/source/filter/ww8/wrtww8.cxx b/sw/source/filter/ww8/wrtww8.cxx index 01dfedb30d5a..f44e47222a75 100644 --- a/sw/source/filter/ww8/wrtww8.cxx +++ b/sw/source/filter/ww8/wrtww8.cxx @@ -318,11 +318,12 @@ class WW8_WrtFactoids: private boost::noncopyable { std::vector<WW8_CP> m_aStartCPs; std::vector<WW8_CP> m_aEndCPs; + std::vector< std::map<OUString, OUString> > m_aStatements; public: WW8_WrtFactoids(); ~WW8_WrtFactoids(); - void Append(WW8_CP nStartCp, WW8_CP nEndCp); + void Append(WW8_CP nStartCp, WW8_CP nEndCp, const std::map<OUString, OUString>& rStatements); void Write(WW8Export& rWrt); } ; @@ -334,10 +335,11 @@ WW8_WrtFactoids::~WW8_WrtFactoids() { } -void WW8_WrtFactoids::Append(WW8_CP nStartCp, WW8_CP nEndCp) +void WW8_WrtFactoids::Append(WW8_CP nStartCp, WW8_CP nEndCp, const std::map<OUString, OUString>& rStatements) { m_aStartCPs.push_back(nStartCp); m_aEndCPs.push_back(nEndCp); + m_aStatements.push_back(rStatements); } void WW8_WrtFactoids::Write(WW8Export& rExport) @@ -403,6 +405,19 @@ void WW8_WrtFactoids::Write(WW8Export& rExport) aFactoidType.m_aTag = "RDF"; WW8SmartTagData aSmartTagData; aSmartTagData.m_aPropBagStore.m_aFactoidTypes.push_back(aFactoidType); + + std::set<OUString> aSet; + for (const std::map<OUString, OUString>& rStatements : m_aStatements) + { + // Statements for a single text node. + for (const std::pair<OUString, OUString>& rPair : rStatements) + { + aSet.insert(rPair.first); + aSet.insert(rPair.second); + } + } + aSmartTagData.m_aPropBagStore.m_aStringTable.assign(aSet.begin(), aSet.end()); + aSmartTagData.Write(rExport); rExport.pFib->lcbFactoidData = rStream.Tell() - rExport.pFib->fcFactoidData; } @@ -1476,7 +1491,7 @@ void WW8Export::AppendSmartTags(const SwTextNode& rTextNode) if (!aStatements.empty()) { WW8_CP nCP = Fc2Cp(Strm().Tell()); - m_pFactoids->Append(nCP, nCP); + m_pFactoids->Append(nCP, nCP, aStatements); } } |