Krita Source Code Documentation
Loading...
Searching...
No Matches
KoSvgTextShape.cpp File Reference
#include "KoSvgTextShape.h"
#include "KoSvgTextShape_p.h"
#include <QTextLayout>
#include <klocalizedstring.h>
#include "KoSvgTextProperties.h"
#include <KoDocumentResourceManager.h>
#include <KoShapeContainer_p.h>
#include <KoShapeController.h>
#include <text/KoCssTextUtils.h>
#include <text/KoFontRegistry.h>
#include <text/KoSvgTextShapeMarkupConverter.h>
#include <text/KoPolygonUtils.h>
#include <kis_global.h>
#include <KoClipMaskPainter.h>
#include <KoColorBackground.h>
#include <KoIcon.h>
#include <KoPathShape.h>
#include <KoProperties.h>
#include <KoShapeLoadingContext.h>
#include <KoXmlNS.h>
#include <KoInsets.h>
#include <SvgLoadingContext.h>
#include <SvgGraphicContext.h>
#include <SvgUtil.h>
#include <SvgStyleWriter.h>
#include <QPainter>
#include <QPainterPath>
#include <QtMath>
#include <FlakeDebug.h>
#include "KoXmlWriter.h"

Go to the source code of this file.

Classes

class  KoSvgTextShapeMementoImpl
 
struct  KoSvgTextNodeIndex::Private
 

Functions

KisForest< KoSvgTextContentElement >::child_iterator findNodeIndexForPropertyIdImpl (KisForest< KoSvgTextContentElement >::child_iterator parent, KoSvgTextProperties::PropertyId propertyId)
 
KoSvgTextProperties inheritProperties (KisForest< KoSvgTextContentElement >::depth_first_tail_iterator it)
 

Function Documentation

◆ findNodeIndexForPropertyIdImpl()

KisForest< KoSvgTextContentElement >::child_iterator findNodeIndexForPropertyIdImpl ( KisForest< KoSvgTextContentElement >::child_iterator parent,
KoSvgTextProperties::PropertyId propertyId )

Definition at line 1102 of file KoSvgTextShape.cpp.

1102 {
1103 for (auto child = KisForestDetail::childBegin(parent); child != KisForestDetail::childEnd(parent); child++) {
1104 if (child->properties.hasProperty(propertyId)) {
1105 return child;
1106 } else if (KisForestDetail::childBegin(child) != KisForestDetail::childEnd(child)) {
1107 auto found = findNodeIndexForPropertyIdImpl(child, propertyId);
1108 if (found != child) {
1109 return found;
1110 }
1111 }
1112 }
1113 return parent;
1114}
KisForest< KoSvgTextContentElement >::child_iterator findNodeIndexForPropertyIdImpl(KisForest< KoSvgTextContentElement >::child_iterator parent, KoSvgTextProperties::PropertyId propertyId)
ChildIterator< value_type, is_const > childBegin(const ChildIterator< value_type, is_const > &it)
Definition KisForest.h:290
ChildIterator< value_type, is_const > parent(const ChildIterator< value_type, is_const > &it)
Definition KisForest.h:327
ChildIterator< value_type, is_const > childEnd(const ChildIterator< value_type, is_const > &it)
Definition KisForest.h:300

References KisForestDetail::childBegin(), KisForestDetail::childEnd(), and findNodeIndexForPropertyIdImpl().

◆ inheritProperties()

KoSvgTextProperties inheritProperties ( KisForest< KoSvgTextContentElement >::depth_first_tail_iterator it)

Definition at line 884 of file KoSvgTextShape.cpp.

884 {
885 KoSvgTextProperties props = it->properties;
886 for (auto parentIt = KisForestDetail::hierarchyBegin(siblingCurrent(it));
887 parentIt != KisForestDetail::hierarchyEnd(siblingCurrent(it)); parentIt++) {
888 KoSvgTextProperties parentProps = parentIt->properties;
889 parentProps.setAllButNonInheritableProperties(props);
890 props = parentProps;
891 }
892 return props;
893}
QList< PropertyId > properties() const
void setAllButNonInheritableProperties(const KoSvgTextProperties &properties)
Used to merge child properties into parent properties.
ResultIterator hierarchyBegin(Iterator it)
Definition KisForest.h:419
ResultIterator hierarchyEnd(Iterator it)
Definition KisForest.h:427
ChildIterator< value_type, is_const > siblingCurrent(ChildIterator< value_type, is_const > it)
Definition KisForest.h:240

References KisForestDetail::hierarchyBegin(), KisForestDetail::hierarchyEnd(), KoSvgTextProperties::properties(), and KoSvgTextProperties::setAllButNonInheritableProperties().