File indexing completed on 2024-06-23 04:27:05
0001 /* This file is part of the KDE project 0002 * SPDX-FileCopyrightText: 2007 Jan Hambrecht <jaham@gmx.net> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "StarShapeConfigCommand.h" 0008 #include "StarShape.h" 0009 #include <klocalizedstring.h> 0010 0011 StarShapeConfigCommand::StarShapeConfigCommand(StarShape *star, uint cornerCount, qreal innerRadius, qreal outerRadius, bool convex, KUndo2Command *parent) 0012 : KUndo2Command(parent) 0013 , m_star(star) 0014 , m_newCornerCount(cornerCount) 0015 , m_newInnerRadius(innerRadius) 0016 , m_newOuterRadius(outerRadius) 0017 , m_newConvex(convex) 0018 { 0019 Q_ASSERT(m_star); 0020 0021 setText(kundo2_i18n("Change star")); 0022 0023 m_oldCornerCount = m_star->cornerCount(); 0024 m_oldInnerRadius = m_star->baseRadius(); 0025 m_oldOuterRadius = m_star->tipRadius(); 0026 m_oldConvex = m_star->convex(); 0027 } 0028 0029 void StarShapeConfigCommand::redo() 0030 { 0031 KUndo2Command::redo(); 0032 0033 m_star->update(); 0034 0035 QPointF position = m_star->absolutePosition(); 0036 0037 if (m_oldCornerCount != m_newCornerCount) { 0038 m_star->setCornerCount(m_newCornerCount); 0039 } 0040 if (m_oldInnerRadius != m_newInnerRadius) { 0041 m_star->setBaseRadius(m_newInnerRadius); 0042 } 0043 if (m_oldOuterRadius != m_newOuterRadius) { 0044 m_star->setTipRadius(m_newOuterRadius); 0045 } 0046 if (m_oldConvex != m_newConvex) { 0047 m_star->setConvex(m_newConvex); 0048 } 0049 0050 m_star->setAbsolutePosition(position); 0051 0052 m_star->update(); 0053 } 0054 0055 void StarShapeConfigCommand::undo() 0056 { 0057 KUndo2Command::undo(); 0058 0059 m_star->update(); 0060 0061 QPointF position = m_star->absolutePosition(); 0062 0063 if (m_oldCornerCount != m_newCornerCount) { 0064 m_star->setCornerCount(m_oldCornerCount); 0065 } 0066 if (m_oldInnerRadius != m_newInnerRadius) { 0067 m_star->setBaseRadius(m_oldInnerRadius); 0068 } 0069 if (m_oldOuterRadius != m_newOuterRadius) { 0070 m_star->setTipRadius(m_oldOuterRadius); 0071 } 0072 if (m_oldConvex != m_newConvex) { 0073 m_star->setConvex(m_oldConvex); 0074 } 0075 0076 m_star->setAbsolutePosition(position); 0077 0078 m_star->update(); 0079 }