summaryrefslogtreecommitdiff
path: root/sw/source/filter/ww8
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-12-14 13:57:14 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2016-07-07 11:33:05 +0200
commitdbe6d043a270ccc916f2588852574f1c14b8de9e (patch)
treebd1a268d77716c86b3ccab7d97d2a530b8e95482 /sw/source/filter/ww8
parent2296051e23c43f44c90804e0f1d0c66db7909621 (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.cxx21
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);
}
}