File indexing completed on 2024-06-16 04:17:51
0001 /* 0002 * SPDX-FileCopyrightText: 2023 Alvin Wong <alvin@alvinhc.com> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #ifndef SVG_INLINE_SIZE_CHANGE_COMMAND_H 0008 #define SVG_INLINE_SIZE_CHANGE_COMMAND_H 0009 0010 #include <kundo2command.h> 0011 0012 class KoSvgTextShape; 0013 0014 class SvgInlineSizeChangeCommand : public KUndo2Command 0015 { 0016 public: 0017 SvgInlineSizeChangeCommand(KoSvgTextShape *shape, double inlineSize, KUndo2Command *parent = nullptr); 0018 SvgInlineSizeChangeCommand(KoSvgTextShape *shape, 0019 double inlineSize, 0020 double oldInlineSize, 0021 int anchor, 0022 int oldAnchor, 0023 QPointF newPos, 0024 QPointF oldPos, 0025 KUndo2Command *parent = nullptr); 0026 ~SvgInlineSizeChangeCommand() override = default; 0027 0028 void redo() override; 0029 void undo() override; 0030 0031 int id() const override; 0032 bool mergeWith(const KUndo2Command *other) override; 0033 0034 private: 0035 void applyInlineSize(double inlineSize, int anchor, QPointF pos, bool undo = false); 0036 0037 private: 0038 KoSvgTextShape *m_shape; 0039 double m_inlineSize; 0040 double m_oldInlineSize; 0041 int m_anchor; 0042 int m_oldAnchor; 0043 QPointF m_originalPos; 0044 QPointF m_movePos; 0045 }; 0046 0047 #endif /* SVG_INLINE_SIZE_CHANGE_COMMAND_H */