1 /*************************************************************************** 2 Copyright (C) 2005-2009 Robby Stephenson <robby@periapsis.org> 3 ***************************************************************************/ 4 5 /*************************************************************************** 6 * * 7 * This program is free software; you can redistribute it and/or * 8 * modify it under the terms of the GNU General Public License as * 9 * published by the Free Software Foundation; either version 2 of * 10 * the License or (at your option) version 3 or any later version * 11 * accepted by the membership of KDE e.V. (or its successor approved * 12 * by the membership of KDE e.V.), which shall act as a proxy * 13 * defined in Section 14 of version 3 of the license. * 14 * * 15 * This program is distributed in the hope that it will be useful, * 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 18 * GNU General Public License for more details. * 19 * * 20 * You should have received a copy of the GNU General Public License * 21 * along with this program. If not, see <http://www.gnu.org/licenses/>. * 22 * * 23 ***************************************************************************/ 24 25 #ifndef TELLICO_FIELDCOMMAND_H 26 #define TELLICO_FIELDCOMMAND_H 27 28 #include "../datavectors.h" 29 30 #include <QUndoCommand> 31 32 namespace Tellico { 33 namespace Command { 34 35 /** 36 * @author Robby Stephenson 37 */ 38 class FieldCommand : public QUndoCommand { 39 40 public: 41 enum Mode { 42 FieldAdd, 43 FieldModify, 44 FieldRemove 45 }; 46 47 FieldCommand(Mode mode, Data::CollPtr coll, Data::FieldPtr activeField, Data::FieldPtr oldField=Data::FieldPtr()); 48 FieldCommand(QUndoCommand* parent, Mode mode, Data::CollPtr coll, Data::FieldPtr activeField, Data::FieldPtr oldField=Data::FieldPtr()); 49 50 virtual void redo() Q_DECL_OVERRIDE; 51 virtual void undo() Q_DECL_OVERRIDE; 52 53 private: 54 void init(); 55 56 Mode m_mode; 57 Data::CollPtr m_coll; 58 Data::FieldPtr m_activeField; 59 Data::FieldPtr m_oldField; 60 }; 61 62 } // end namespace 63 } 64 65 #endif 66