Kaydet (Commit) ff3d175e authored tarafından Michael Stahl's avatar Michael Stahl

xmloff: XMLChangeImportContext: replace boolean pair with proper enum

Change-Id: I82ec75058a2309b8bcf0f8e78d8ef0db367014b0
üst a547b255
...@@ -34,15 +34,12 @@ XMLChangeImportContext::XMLChangeImportContext( ...@@ -34,15 +34,12 @@ XMLChangeImportContext::XMLChangeImportContext(
SvXMLImport& rImport, SvXMLImport& rImport,
sal_Int16 nPrefix, sal_Int16 nPrefix,
const OUString& rLocalName, const OUString& rLocalName,
bool bStart, Element const eElement,
bool bEnd, bool bOutsideOfParagraph)
bool bOutsideOfParagraph) : : SvXMLImportContext(rImport, nPrefix, rLocalName)
SvXMLImportContext(rImport, nPrefix, rLocalName), , m_Element(eElement)
bIsStart(bStart), , m_bIsOutsideOfParagraph(bOutsideOfParagraph)
bIsEnd(bEnd),
bIsOutsideOfParagraph(bOutsideOfParagraph)
{ {
DBG_ASSERT(bStart || bEnd, "Must be either start, end, or both!");
} }
XMLChangeImportContext::~XMLChangeImportContext() XMLChangeImportContext::~XMLChangeImportContext()
...@@ -69,14 +66,14 @@ void XMLChangeImportContext::StartElement( ...@@ -69,14 +66,14 @@ void XMLChangeImportContext::StartElement(
GetImport().GetTextImport(); GetImport().GetTextImport();
OUString sID = xAttrList->getValueByIndex(nAttr); OUString sID = xAttrList->getValueByIndex(nAttr);
// call for bStart and bEnd (may both be true) // <text:change> is both start and end
if (bIsStart) if (Element::START == m_Element || Element::POINT == m_Element)
rHelper->RedlineSetCursor(sID, true, bIsOutsideOfParagraph); rHelper->RedlineSetCursor(sID, true, m_bIsOutsideOfParagraph);
if (bIsEnd) if (Element::END == m_Element || Element::POINT == m_Element)
rHelper->RedlineSetCursor(sID, false, bIsOutsideOfParagraph); rHelper->RedlineSetCursor(sID, false, m_bIsOutsideOfParagraph);
// outside of paragraph and still open? set open redline ID // outside of paragraph and still open? set open redline ID
if (bIsOutsideOfParagraph) if (m_bIsOutsideOfParagraph)
{ {
rHelper->SetOpenRedlineId(sID); rHelper->SetOpenRedlineId(sID);
} }
......
...@@ -38,26 +38,20 @@ namespace com { namespace sun { namespace star { ...@@ -38,26 +38,20 @@ namespace com { namespace sun { namespace star {
*/ */
class XMLChangeImportContext : public SvXMLImportContext class XMLChangeImportContext : public SvXMLImportContext
{ {
bool bIsStart;
bool bIsEnd;
bool bIsOutsideOfParagraph;
public: public:
enum class Element { START, END, POINT };
/** /**
* import a change mark * import a change mark
* (<text:change>, <text:change-start>, <text:change-end>) * (<text:change>, <text:change-start>, <text:change-end>)
* Note: a <text:change> mark denotes start and end of a change * Note: a <text:change> mark denotes start and end of a change
* simultaniously, so both bIsStart and bIsEnd parameters would * simultaneously, as in Element::POINT.
* be set true.
*/ */
XMLChangeImportContext( XMLChangeImportContext(
SvXMLImport& rImport, SvXMLImport& rImport,
sal_Int16 nPrefix, sal_Int16 nPrefix,
const OUString& rLocalName, const OUString& rLocalName,
bool bIsStart, /// mark start of a change Element eElement,
bool bIsEnd, /// mark end of a change
/// true if change mark is encountered outside of a paragraph /// true if change mark is encountered outside of a paragraph
/// (usually before a section or table) /// (usually before a section or table)
bool bIsOutsideOfParagraph); bool bIsOutsideOfParagraph);
...@@ -66,6 +60,10 @@ public: ...@@ -66,6 +60,10 @@ public:
virtual void StartElement( virtual void StartElement(
const css::uno::Reference<css::xml::sax::XAttributeList> & xAttrList) override; const css::uno::Reference<css::xml::sax::XAttributeList> & xAttrList) override;
private:
Element m_Element;
bool m_bIsOutsideOfParagraph;
}; };
#endif #endif
......
...@@ -2294,8 +2294,11 @@ SvXMLImportContext *XMLTextImportHelper::CreateTextChildContext( ...@@ -2294,8 +2294,11 @@ SvXMLImportContext *XMLTextImportHelper::CreateTextChildContext(
case XML_TOK_TEXT_CHANGE_END: case XML_TOK_TEXT_CHANGE_END:
pContext = new XMLChangeImportContext( pContext = new XMLChangeImportContext(
rImport, nPrefix, rLocalName, rImport, nPrefix, rLocalName,
(XML_TOK_TEXT_CHANGE_END != nToken), ((nToken == XML_TOK_TEXTP_CHANGE_END)
(XML_TOK_TEXT_CHANGE_START != nToken), ? XMLChangeImportContext::Element::END
: (nToken == XML_TOK_TEXTP_CHANGE_START)
? XMLChangeImportContext::Element::START
: XMLChangeImportContext::Element::POINT),
true); true);
break; break;
......
...@@ -1683,8 +1683,11 @@ SvXMLImportContext *XMLImpSpanContext_Impl::CreateChildContext( ...@@ -1683,8 +1683,11 @@ SvXMLImportContext *XMLImpSpanContext_Impl::CreateChildContext(
case XML_TOK_TEXTP_CHANGE: case XML_TOK_TEXTP_CHANGE:
pContext = new XMLChangeImportContext( pContext = new XMLChangeImportContext(
rImport, nPrefix, rLocalName, rImport, nPrefix, rLocalName,
(nToken != XML_TOK_TEXTP_CHANGE_END), ((nToken == XML_TOK_TEXTP_CHANGE_END)
(nToken != XML_TOK_TEXTP_CHANGE_START), ? XMLChangeImportContext::Element::END
: (nToken == XML_TOK_TEXTP_CHANGE_START)
? XMLChangeImportContext::Element::START
: XMLChangeImportContext::Element::POINT),
false); false);
break; break;
......
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