1 /* 2 * LibrePCB - Professional EDA for everyone! 3 * Copyright (C) 2013 LibrePCB Developers, see AUTHORS.md for contributors. 4 * https://librepcb.org/ 5 * 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 /******************************************************************************* 21 * Includes 22 ******************************************************************************/ 23 #include "cmdschematicedit.h" 24 25 #include "../schematic.h" 26 27 #include <QtCore> 28 29 /******************************************************************************* 30 * Namespace 31 ******************************************************************************/ 32 namespace librepcb { 33 namespace project { 34 35 /******************************************************************************* 36 * Constructors / Destructor 37 ******************************************************************************/ 38 CmdSchematicEdit(Schematic & schematic)39CmdSchematicEdit::CmdSchematicEdit(Schematic& schematic) noexcept 40 : UndoCommand(tr("Edit sheet properties")), 41 mSchematic(schematic), 42 mOldName(schematic.getName()), 43 mNewName(mOldName) { 44 } 45 ~CmdSchematicEdit()46CmdSchematicEdit::~CmdSchematicEdit() noexcept { 47 } 48 49 /******************************************************************************* 50 * Setters 51 ******************************************************************************/ 52 setName(const ElementName & name)53void CmdSchematicEdit::setName(const ElementName& name) noexcept { 54 Q_ASSERT(!wasEverExecuted()); 55 mNewName = name; 56 } 57 58 /******************************************************************************* 59 * Inherited from UndoCommand 60 ******************************************************************************/ 61 performExecute()62bool CmdSchematicEdit::performExecute() { 63 performRedo(); // can throw 64 65 if (mNewName != mOldName) return true; 66 return false; 67 } 68 performUndo()69void CmdSchematicEdit::performUndo() { 70 mSchematic.setName(mOldName); 71 } 72 performRedo()73void CmdSchematicEdit::performRedo() { 74 mSchematic.setName(mNewName); 75 } 76 77 /******************************************************************************* 78 * End of File 79 ******************************************************************************/ 80 81 } // namespace project 82 } // namespace librepcb 83