summaryrefslogtreecommitdiff
path: root/oox/source/drawingml/diagram/diagramlayoutatoms.hxx
diff options
context:
space:
mode:
authorGrzegorz Araminowicz <g.araminowicz@gmail.com>2017-08-24 17:26:38 +0200
committerJan Holesovsky <kendy@collabora.com>2017-09-27 15:05:40 +0200
commit7e0cb70d7fb9024f5ebf1ea988df90f0ee30baf2 (patch)
tree08f485d879507a37524cd98e60cd0b94fafbbed8 /oox/source/drawingml/diagram/diagramlayoutatoms.hxx
parent155795b9c129584febd9771014078adb6fe25932 (diff)
SmartArt: correct behaviour of if/else nodes
else block is taken only if none of conditions in 'choose' was satisfied Change-Id: Ie668f15c665327098e8e63b2c92cd291711e4567 Reviewed-on: https://gerrit.libreoffice.org/41533 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Diffstat (limited to 'oox/source/drawingml/diagram/diagramlayoutatoms.hxx')
-rw-r--r--oox/source/drawingml/diagram/diagramlayoutatoms.hxx13
1 files changed, 6 insertions, 7 deletions
diff --git a/oox/source/drawingml/diagram/diagramlayoutatoms.hxx b/oox/source/drawingml/diagram/diagramlayoutatoms.hxx
index f4928565c048..117326b625ab 100644
--- a/oox/source/drawingml/diagram/diagramlayoutatoms.hxx
+++ b/oox/source/drawingml/diagram/diagramlayoutatoms.hxx
@@ -176,21 +176,17 @@ class ConditionAtom
: public LayoutAtom
{
public:
- explicit ConditionAtom(const LayoutNode& rLayoutNode, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttributes);
+ explicit ConditionAtom(const LayoutNode& rLayoutNode, bool isElse, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttributes);
virtual void accept( LayoutAtomVisitor& ) override;
- void readElseBranch()
- { mbElse=true; }
- virtual void addChild( const LayoutAtomPtr & pNode ) override;
- virtual const std::vector<LayoutAtomPtr>& getChildren() const override;
+ bool getDecision() const;
private:
static bool compareResult(sal_Int32 nOperator, sal_Int32 nFirst, sal_Int32 nSecond);
const dgm::Point* getPresNode() const;
sal_Int32 getNodeCount() const;
- bool mbElse;
+ bool mIsElse;
IteratorAttr maIter;
ConditionAttr maCond;
- std::vector< LayoutAtomPtr > mpElseChildNodes;
};
typedef std::shared_ptr< ConditionAtom > ConditionAtomPtr;
@@ -202,6 +198,9 @@ class ChooseAtom
public:
ChooseAtom(const LayoutNode& rLayoutNode) : LayoutAtom(rLayoutNode) {}
virtual void accept( LayoutAtomVisitor& ) override;
+ virtual const std::vector<LayoutAtomPtr>& getChildren() const override;
+private:
+ const std::vector<LayoutAtomPtr> maEmptyChildren;
};
class LayoutNode