Krita Source Code Documentation
Loading...
Searching...
No Matches
EllipseShapeFactory.cpp
Go to the documentation of this file.
1/* This file is part of the KDE project
2 * SPDX-FileCopyrightText: 2006 Thorsten Zachmann <zachmann@kde.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
8#include "EllipseShape.h"
10#include <KoShapeStroke.h>
11#include <KoXmlNS.h>
14
15#include <KoIcon.h>
16#include <klocalizedstring.h>
17
18#include "kis_pointer_utils.h"
19
21 : KoShapeFactoryBase(EllipseShapeId, i18n("Ellipse"))
22{
23 setToolTip(i18n("An ellipse"));
24 setIconName(koIconNameCStr("ellipse-shape"));
25 setFamily("geometric");
27
28 QList<QPair<QString, QStringList> > elementNamesList;
29 elementNamesList.append(qMakePair(QString(KoXmlNS::draw), QStringList("circle")));
30 elementNamesList.append(qMakePair(QString(KoXmlNS::draw), QStringList("ellipse")));
31 elementNamesList.append(qMakePair(QString(KoXmlNS::svg), QStringList("circle")));
32 elementNamesList.append(qMakePair(QString(KoXmlNS::svg), QStringList("ellipse")));
33 elementNamesList.append(qMakePair(QString(KoXmlNS::svg), QStringList("sodipodi:arc")));
34 elementNamesList.append(qMakePair(QString(KoXmlNS::svg), QStringList("krita:arc")));
35 setXmlElements(elementNamesList);
36}
37
39{
40 EllipseShape *ellipse = new EllipseShape();
41
42 ellipse->setStroke(toQShared(new KoShapeStroke(1.0)));
43 ellipse->setShapeId(KoPathShapeId);
44
45 QRadialGradient *gradient = new QRadialGradient(QPointF(0.5, 0.5), 0.5, QPointF(0.25, 0.25));
46 gradient->setCoordinateMode(QGradient::ObjectBoundingMode);
47 gradient->setColorAt(0.0, Qt::white);
48 gradient->setColorAt(1.0, Qt::green);
50
51 return ellipse;
52}
53
54bool EllipseShapeFactory::supports(const QDomElement &e, KoShapeLoadingContext &context) const
55{
56 Q_UNUSED(context);
57 return (e.localName() == "ellipse" || e.localName() == "circle")
58 && e.namespaceURI() == KoXmlNS::draw;
59}
60
#define EllipseShapeId
QList< QString > QStringList
#define KoPathShapeId
Definition KoPathShape.h:20
bool supports(const QDomElement &e, KoShapeLoadingContext &context) const override
QList< KoShapeConfigWidgetBase * > createShapeOptionPanels() override
KoShape * createDefaultShape(KoDocumentResourceManager *documentResources=0) const override
A gradient shape background.
void setFamily(const QString &family)
void setToolTip(const QString &tooltip)
void setLoadingPriority(int priority)
void setIconName(const char *iconName)
void setXmlElements(const QList< QPair< QString, QStringList > > &elementNamesList)
virtual void setStroke(KoShapeStrokeModelSP stroke)
Definition KoShape.cpp:1081
virtual void setBackground(QSharedPointer< KoShapeBackground > background)
Definition KoShape.cpp:918
void setShapeId(const QString &id)
Definition KoShape.cpp:1062
static const QString svg
Definition KoXmlNS.h:39
static const QString draw
Definition KoXmlNS.h:27
#define koIconNameCStr(name)
Definition kis_icon.h:28
QSharedPointer< T > toQShared(T *ptr)