include/oox/helper/grabbagstack.hxx | 56 ++++++++++++ oox/Library_oox.mk | 1 oox/source/helper/grabbagstack.cxx | 93 +++++++++++++++++++++ sw/source/filter/ww8/docxattributeoutput.cxx | 5 - writerfilter/source/dmapper/TextEffectsHandler.cxx | 90 -------------------- writerfilter/source/dmapper/TextEffectsHandler.hxx | 10 +- 6 files changed, 161 insertions(+), 94 deletions(-)
New commits: commit 04cc0939abcf55debd2b15efea9b310196259093 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.com> Date: Fri Mar 7 16:46:22 2014 +0100 ooxml export: add w14 namespace to styles.xml Change-Id: I60df6ce655cb5bbb05218ec89a1597a277e7aa72 diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index dad9d27..f51d892 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -2889,7 +2889,10 @@ void DocxAttributeOutput::TableRowEnd( sal_uInt32 /*nDepth*/ ) void DocxAttributeOutput::StartStyles() { m_pSerializer->startElementNS( XML_w, XML_styles, - FSNS( XML_xmlns, XML_w ), "http://schemas.openxmlformats.org/wordprocessingml/2006/main", + FSNS( XML_xmlns, XML_w ), "http://schemas.openxmlformats.org/wordprocessingml/2006/main", + FSNS( XML_xmlns, XML_w14 ), "http://schemas.microsoft.com/office/word/2010/wordml", + FSNS( XML_xmlns, XML_mc ), "http://schemas.openxmlformats.org/markup-compatibility/2006", + FSNS( XML_mc, XML_Ignorable ), "w14", FSEND ); DocDefaults(); commit 5797d7633419bb1775056d513e89d1fc0ce461e0 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.com> Date: Fri Mar 7 16:40:33 2014 +0100 ooxml: make GrabBagStack ready for reuse and move it to oox Change-Id: Ia7d52a003138a275860d3462382e636747343488 diff --git a/include/oox/helper/grabbagstack.hxx b/include/oox/helper/grabbagstack.hxx new file mode 100644 index 0000000..b438ac8 --- /dev/null +++ b/include/oox/helper/grabbagstack.hxx @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#ifndef INCLUDED_OOX_HELPER_GRABBAGSTACK_HXX +#define INCLUDED_OOX_HELPER_GRABBAGSTACK_HXX + +#include <oox/dllapi.h> +#include <rtl/ustring.hxx> +#include <com/sun/star/beans/PropertyValue.hpp> + +#include <vector> +#include <stack> + +namespace oox { + +struct GrabBagStackElement +{ + OUString maName; + std::vector<css::beans::PropertyValue> maPropertyList; +}; + +/// Tool that is useful for construction of a nested Sequence/PropertyValue hierarchy +class OOX_DLLPUBLIC GrabBagStack +{ +private: + std::stack<GrabBagStackElement> mStack; + GrabBagStackElement mCurrentElement; + +public: + GrabBagStack(OUString aName); + + virtual ~GrabBagStack(); + + OUString getCurrentName(); + + css::beans::PropertyValue getRootProperty(); + + void appendElement(OUString aName, css::uno::Any aAny); + void push(OUString aKey); + void pop(); + void addInt32(OUString aElementName, sal_Int32 aIntValue); + void addString(OUString aElementName, OUString aStringValue); +}; + +} // namespace oox + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/oox/Library_oox.mk b/oox/Library_oox.mk index d176267..cdda38a 100644 --- a/oox/Library_oox.mk +++ b/oox/Library_oox.mk @@ -217,6 +217,7 @@ $(eval $(call gb_Library_add_exception_objects,oox,\ oox/source/helper/binarystreambase \ oox/source/helper/containerhelper \ oox/source/helper/graphichelper \ + oox/source/helper/grabbagstack \ oox/source/helper/modelobjecthelper \ oox/source/helper/progressbar \ oox/source/helper/propertymap \ diff --git a/oox/source/helper/grabbagstack.cxx b/oox/source/helper/grabbagstack.cxx new file mode 100644 index 0000000..ee7ec70 --- /dev/null +++ b/oox/source/helper/grabbagstack.cxx @@ -0,0 +1,93 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#include "oox/helper/grabbagstack.hxx" +#include <com/sun/star/uno/Sequence.hxx> + +namespace oox +{ + +using namespace css::beans; +using namespace css::uno; + +GrabBagStack::GrabBagStack(OUString aName) +{ + mCurrentElement.maName = aName; +} + +GrabBagStack::~GrabBagStack() +{} + +OUString GrabBagStack::getCurrentName() +{ + return mCurrentElement.maName; +} + +PropertyValue GrabBagStack::getRootProperty() +{ + while(!mStack.empty()) + pop(); + + PropertyValue aProperty; + aProperty.Name = mCurrentElement.maName; + + Sequence<PropertyValue> aSequence(mCurrentElement.maPropertyList.size()); + PropertyValue* pSequence = aSequence.getArray(); + std::vector<PropertyValue>::iterator i; + for (i = mCurrentElement.maPropertyList.begin(); i != mCurrentElement.maPropertyList.end(); ++i) + *pSequence++ = *i; + + aProperty.Value = makeAny(aSequence); + + return aProperty; +} + +void GrabBagStack::appendElement(OUString aName, Any aAny) +{ + PropertyValue aValue; + aValue.Name = aName; + aValue.Value = aAny; + mCurrentElement.maPropertyList.push_back(aValue); +} + +void GrabBagStack::push(OUString aKey) +{ + mStack.push(mCurrentElement); + mCurrentElement.maName = aKey; + mCurrentElement.maPropertyList.clear(); +} + +void GrabBagStack::pop() +{ + OUString aName = mCurrentElement.maName; + Sequence<PropertyValue> aSequence(mCurrentElement.maPropertyList.size()); + PropertyValue* pSequence = aSequence.getArray(); + std::vector<PropertyValue>::iterator i; + for (i = mCurrentElement.maPropertyList.begin(); i != mCurrentElement.maPropertyList.end(); ++i) + *pSequence++ = *i; + + mCurrentElement = mStack.top(); + mStack.pop(); + appendElement(aName, makeAny(aSequence)); +} + +void GrabBagStack::addInt32(OUString aElementName, sal_Int32 aIntValue) +{ + appendElement(aElementName, makeAny(aIntValue)); +} + +void GrabBagStack::addString(OUString aElementName, OUString aStringValue) +{ + appendElement(aElementName, makeAny(aStringValue)); +} + +} // namespace oox + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/writerfilter/source/dmapper/TextEffectsHandler.cxx b/writerfilter/source/dmapper/TextEffectsHandler.cxx index 2d4c32b..ef8efc8 100644 --- a/writerfilter/source/dmapper/TextEffectsHandler.cxx +++ b/writerfilter/source/dmapper/TextEffectsHandler.cxx @@ -9,107 +9,21 @@ */ #include <TextEffectsHandler.hxx> + #include <rtl/ustrbuf.hxx> #include <comphelper/string.hxx> #include <ooxml/resourceids.hxx> #include "dmapperLoggers.hxx" -#include <map> -#include <stack> -#include <vector> namespace writerfilter { namespace dmapper { using namespace std; +using namespace oox; using namespace css::uno; using namespace css::beans; -struct GrabBagStackElement -{ - OUString maName; - std::vector<beans::PropertyValue> maPropertyList; -}; - -/// Tool that is useful for construction of a nested Sequence/PropertyValue hierarchy -class GrabBagStack -{ -public: - GrabBagStack(OUString aName) - { - mCurrentElement.maName = aName; - } - - virtual ~GrabBagStack() - {} - - std::stack<GrabBagStackElement> mStack; - GrabBagStackElement mCurrentElement; - - OUString getCurrentName() - { - return mCurrentElement.maName; - } - - PropertyValue getRootProperty() - { - while(!mStack.empty()) - pop(); - - PropertyValue aProperty; - aProperty.Name = mCurrentElement.maName; - - Sequence<PropertyValue> aSequence(mCurrentElement.maPropertyList.size()); - PropertyValue* pSequence = aSequence.getArray(); - std::vector<PropertyValue>::iterator i; - for (i = mCurrentElement.maPropertyList.begin(); i != mCurrentElement.maPropertyList.end(); ++i) - *pSequence++ = *i; - - aProperty.Value = makeAny(aSequence); - - return aProperty; - } - - void appendElement(OUString aName, Any aAny) - { - PropertyValue aValue; - aValue.Name = aName; - aValue.Value = aAny; - mCurrentElement.maPropertyList.push_back(aValue); - } - - void push(OUString aKey) - { - mStack.push(mCurrentElement); - mCurrentElement.maName = aKey; - mCurrentElement.maPropertyList.clear(); - } - - void pop() - { - OUString aName = mCurrentElement.maName; - Sequence<PropertyValue> aSequence(mCurrentElement.maPropertyList.size()); - PropertyValue* pSequence = aSequence.getArray(); - std::vector<PropertyValue>::iterator i; - for (i = mCurrentElement.maPropertyList.begin(); i != mCurrentElement.maPropertyList.end(); ++i) - *pSequence++ = *i; - - mCurrentElement = mStack.top(); - mStack.pop(); - appendElement(aName, makeAny(aSequence)); - } - - void addInt32(OUString aElementName, sal_Int32 aIntValue) - { - appendElement(aElementName, makeAny(aIntValue)); - } - - void addString(OUString aElementName, OUString aStringValue) - { - appendElement(aElementName, makeAny(aStringValue)); - } -}; - namespace { diff --git a/writerfilter/source/dmapper/TextEffectsHandler.hxx b/writerfilter/source/dmapper/TextEffectsHandler.hxx index 1406359..4d402b4 100644 --- a/writerfilter/source/dmapper/TextEffectsHandler.hxx +++ b/writerfilter/source/dmapper/TextEffectsHandler.hxx @@ -20,6 +20,8 @@ #include <PropertyIds.hxx> +#include <oox/helper/grabbagstack.hxx> + #include <boost/scoped_ptr.hpp> #include <boost/optional.hpp> @@ -27,15 +29,13 @@ namespace writerfilter { namespace dmapper { -class GrabBagStack; - /// Class to process all text effects like glow, textOutline, ... class TextEffectsHandler : public LoggedProperties { private: - boost::optional<PropertyIds> maPropertyId; - OUString maElementName; - boost::scoped_ptr<GrabBagStack> mpGrabBagStack; + boost::optional<PropertyIds> maPropertyId; + OUString maElementName; + boost::scoped_ptr<oox::GrabBagStack> mpGrabBagStack; void convertElementIdToPropertyId(sal_Int32 aElementId);
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits