Krita Source Code Documentation
Loading...
Searching...
No Matches
KoShapePaintOrderCommand.cpp
Go to the documentation of this file.
1/* This file is part of the KDE project
2 * SPDX-FileCopyrightText: 2023 Wolthera van Hövell <griffinvalley@gmail.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
8
9#include <klocalizedstring.h>
10#include "kis_command_ids.h"
11
27
31 KUndo2Command *parent)
32 : KUndo2Command(parent)
33 , d(new Private())
34{
35 d->shapes = shapes;
36 Q_FOREACH (KoShape *shape, d->shapes) {
37 d->oldFirst.append(shape->paintOrder().at(0));
38 d->oldSecond.append(shape->paintOrder().at(1));
39 d->paintOrderInherited.append(shape->inheritPaintOrder());
40 }
41 d->first = first;
42 d->second = second;
43
44 setText(kundo2_i18n("Set paint order"));
45}
46
51
52
54{
56 Q_FOREACH (KoShape *shape, d->shapes) {
57 shape->setPaintOrder(d->first, d->second);
58 shape->update();
59 }
60}
61
63{
65 QList<KoShape::PaintOrder>::iterator firstIt = d->oldFirst.begin();
66 QList<KoShape::PaintOrder>::iterator secondIt = d->oldSecond.begin();
67 QList<bool>::iterator inheritIt = d->paintOrderInherited.begin();
68 Q_FOREACH (KoShape *shape, d->shapes) {
69 shape->setPaintOrder(*firstIt, *secondIt);
70 shape->setInheritPaintOrder(*inheritIt);
71 shape->update();
72 ++firstIt;
73 ++secondIt;
74 ++inheritIt;
75 }
76}
77
82
84{
85 const KoShapePaintOrderCommand *other = dynamic_cast<const KoShapePaintOrderCommand*>(command);
86
87 if (!other || other->d->shapes != d->shapes) {
88 return false;
89 }
90
91 d->first = other->d->first;
92 d->second = other->d->second;
93 return true;
94}
virtual void undo()
void setText(const KUndo2MagicString &text)
virtual void redo()
void redo() override
redo the command
QList< KoShape::PaintOrder > oldSecond
QList< KoShape::PaintOrder > oldFirst
void undo() override
revert the actions done in redo
bool mergeWith(const KUndo2Command *command) override
KoShapePaintOrderCommand(const QList< KoShape * > &shapes, KoShape::PaintOrder first, KoShape::PaintOrder second, KUndo2Command *parent=nullptr)
virtual void setPaintOrder(PaintOrder first, PaintOrder second)
setPaintOrder set the paint order. As there's only three entries in any given paintorder,...
Definition KoShape.cpp:749
virtual QVector< PaintOrder > paintOrder() const
paintOrder
Definition KoShape.cpp:773
virtual void update() const
Definition KoShape.cpp:605
bool inheritPaintOrder() const
inheritPaintOrder
Definition KoShape.cpp:795
void setInheritPaintOrder(bool value)
setInheritPaintOrder set inherit paint order.
Definition KoShape.cpp:790
KUndo2MagicString kundo2_i18n(const char *text)