Kaydet (Commit) 180819d4 authored tarafından Kohei Yoshida's avatar Kohei Yoshida

Import document title field as well.

Change-Id: Iea73d553927ce95afbb9b6e9062b398733228687
üst ec3e84c8
...@@ -82,8 +82,9 @@ void ScXMLCellTextParaContext::PushFieldDate(const OUString& rOutput) ...@@ -82,8 +82,9 @@ void ScXMLCellTextParaContext::PushFieldDate(const OUString& rOutput)
{ {
} }
void ScXMLCellTextParaContext::PushFieldTitle(const OUString& rTitle) void ScXMLCellTextParaContext::PushFieldTitle()
{ {
mrParentCxt.PushParagraphFieldDocTitle();
} }
ScXMLCellTextSpanContext::ScXMLCellTextSpanContext( ScXMLCellTextSpanContext::ScXMLCellTextSpanContext(
...@@ -205,6 +206,7 @@ void ScXMLCellFieldTitleContext::StartElement(const uno::Reference<xml::sax::XAt ...@@ -205,6 +206,7 @@ void ScXMLCellFieldTitleContext::StartElement(const uno::Reference<xml::sax::XAt
void ScXMLCellFieldTitleContext::EndElement() void ScXMLCellFieldTitleContext::EndElement()
{ {
mrParentCxt.PushFieldTitle();
} }
void ScXMLCellFieldTitleContext::Characters(const OUString& rChars) void ScXMLCellFieldTitleContext::Characters(const OUString& rChars)
......
...@@ -34,7 +34,7 @@ public: ...@@ -34,7 +34,7 @@ public:
void PushSpan(const OUString& rSpan, const OUString& rStyleName); void PushSpan(const OUString& rSpan, const OUString& rStyleName);
void PushFieldSheetName(); void PushFieldSheetName();
void PushFieldDate(const OUString& rOutput); void PushFieldDate(const OUString& rOutput);
void PushFieldTitle(const OUString& rTitle); void PushFieldTitle();
}; };
/** /**
......
...@@ -116,11 +116,11 @@ using namespace xmloff::token; ...@@ -116,11 +116,11 @@ using namespace xmloff::token;
ScXMLTableRowCellContext::ParaFormat::ParaFormat(ScEditEngineDefaulter& rEditEngine) : ScXMLTableRowCellContext::ParaFormat::ParaFormat(ScEditEngineDefaulter& rEditEngine) :
maItemSet(rEditEngine.GetEmptyItemSet()) {} maItemSet(rEditEngine.GetEmptyItemSet()) {}
ScXMLTableRowCellContext::Field::Field() : mpItem(NULL) {} ScXMLTableRowCellContext::Field::Field(SvxFieldData* pData) : mpData(pData) {}
ScXMLTableRowCellContext::Field::~Field() ScXMLTableRowCellContext::Field::~Field()
{ {
delete mpItem; delete mpData;
} }
ScXMLTableRowCellContext::ScXMLTableRowCellContext( ScXMLImport& rImport, ScXMLTableRowCellContext::ScXMLTableRowCellContext( ScXMLImport& rImport,
...@@ -557,20 +557,30 @@ void ScXMLTableRowCellContext::PushParagraphSpan(const OUString& rSpan, const OU ...@@ -557,20 +557,30 @@ void ScXMLTableRowCellContext::PushParagraphSpan(const OUString& rSpan, const OU
rFmt.maItemSet.Put(*pPoolItem); rFmt.maItemSet.Put(*pPoolItem);
} }
void ScXMLTableRowCellContext::PushParagraphFieldSheetName() void ScXMLTableRowCellContext::PushParagraphField(SvxFieldData* pData)
{ {
SCTAB nTab = GetScImport().GetTables().GetCurrentCellPos().Tab(); maFields.push_back(new Field(pData));
maFields.push_back(new Field);
Field& rField = maFields.back(); Field& rField = maFields.back();
rField.mpItem = new SvxTableField(nTab);
sal_Int32 nPos = maParagraph.getLength(); sal_Int32 nPos = maParagraph.getLength();
maParagraph.append(sal_Unicode('\1')); maParagraph.append(sal_Unicode('\1')); // Placeholder text for inserted field item.
rField.maSelection.nStartPara = mnCurParagraph; rField.maSelection.nStartPara = mnCurParagraph;
rField.maSelection.nEndPara = mnCurParagraph; rField.maSelection.nEndPara = mnCurParagraph;
rField.maSelection.nStartPos = nPos; rField.maSelection.nStartPos = nPos;
rField.maSelection.nEndPos = nPos+1; rField.maSelection.nEndPos = nPos+1;
} }
void ScXMLTableRowCellContext::PushParagraphFieldSheetName()
{
SCTAB nTab = GetScImport().GetTables().GetCurrentCellPos().Tab();
PushParagraphField(new SvxTableField(nTab));
}
void ScXMLTableRowCellContext::PushParagraphFieldDocTitle()
{
PushParagraphField(new SvxFileField);
}
void ScXMLTableRowCellContext::PushParagraphEnd() void ScXMLTableRowCellContext::PushParagraphEnd()
{ {
// EditEngine always has at least one paragraph even when its content is empty. // EditEngine always has at least one paragraph even when its content is empty.
...@@ -1027,7 +1037,7 @@ void ScXMLTableRowCellContext::PutTextCell( const ScAddress& rCurrentPos, ...@@ -1027,7 +1037,7 @@ void ScXMLTableRowCellContext::PutTextCell( const ScAddress& rCurrentPos,
{ {
FieldsType::const_iterator it = maFields.begin(), itEnd = maFields.end(); FieldsType::const_iterator it = maFields.begin(), itEnd = maFields.end();
for (; it != itEnd; ++it) for (; it != itEnd; ++it)
mpEditEngine->QuickInsertField(SvxFieldItem(*it->mpItem, EE_FEATURE_FIELD), it->maSelection); mpEditEngine->QuickInsertField(SvxFieldItem(*it->mpData, EE_FEATURE_FIELD), it->maSelection);
} }
pNewCell = new ScEditCell(mpEditEngine->CreateTextObject(), pDoc, pDoc->GetEditPool()); pNewCell = new ScEditCell(mpEditEngine->CreateTextObject(), pDoc, pDoc->GetEditPool());
......
...@@ -49,10 +49,10 @@ class ScXMLTableRowCellContext : public ScXMLImportContext ...@@ -49,10 +49,10 @@ class ScXMLTableRowCellContext : public ScXMLImportContext
struct Field : boost::noncopyable struct Field : boost::noncopyable
{ {
SvxFieldData* mpItem; SvxFieldData* mpData;
ESelection maSelection; ESelection maSelection;
Field(); Field(SvxFieldData* pData);
~Field(); ~Field();
}; };
...@@ -118,6 +118,8 @@ class ScXMLTableRowCellContext : public ScXMLImportContext ...@@ -118,6 +118,8 @@ class ScXMLTableRowCellContext : public ScXMLImportContext
bool IsPossibleErrorString() const; bool IsPossibleErrorString() const;
void PushParagraphField(SvxFieldData* pData);
public: public:
ScXMLTableRowCellContext( ScXMLImport& rImport, sal_uInt16 nPrfx, ScXMLTableRowCellContext( ScXMLImport& rImport, sal_uInt16 nPrfx,
...@@ -135,6 +137,7 @@ public: ...@@ -135,6 +137,7 @@ public:
void PushParagraphSpan(const OUString& rSpan, const OUString& rStyleName); void PushParagraphSpan(const OUString& rSpan, const OUString& rStyleName);
void PushParagraphFieldSheetName(); void PushParagraphFieldSheetName();
void PushParagraphFieldDocTitle();
void PushParagraphEnd(); void PushParagraphEnd();
void SetAnnotation( const ScAddress& rPosition ); void SetAnnotation( const ScAddress& rPosition );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment