00001 /****************************************************************************** 00002 * This file is part of the Gluon Development Platform 00003 * Copyright (c) 2010 Arjen Hiemstra <ahiemstra@heimr.nl> 00004 * 00005 * This library is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU Lesser General Public 00007 * License as published by the Free Software Foundation; either 00008 * version 2.1 of the License, or (at your option) any later version. 00009 * 00010 * This library is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Lesser General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Lesser General Public 00016 * License along with this library; if not, write to the Free Software 00017 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00018 */ 00019 00020 #include "propertychangedcommand.h" 00021 00022 #include <QtCore/QVariant> 00023 00024 #include <core/gluonobject.h> 00025 00026 using namespace GluonCreator; 00027 00028 class PropertyChangedCommand::PropertyChangedCommandPrivate 00029 { 00030 public: 00031 QString property; 00032 QVariant oldValue; 00033 QVariant newValue; 00034 }; 00035 00036 PropertyChangedCommand::PropertyChangedCommand( GluonCore::GluonObject* object, QString property, QVariant oldValue, QVariant newValue ) 00037 { 00038 d = new PropertyChangedCommandPrivate; 00039 setObject( object ); 00040 d->property = property; 00041 d->oldValue = oldValue; 00042 d->newValue = newValue; 00043 00044 setCommandName( "PropertyChangedCommand" ); 00045 } 00046 00047 void PropertyChangedCommand::undo() 00048 { 00049 setCommandDirection( "undo" ); 00050 object()->setProperty( d->property.toUtf8(), d->oldValue ); 00051 } 00052 00053 void PropertyChangedCommand::redo() 00054 { 00055 setCommandDirection( "redo" ); 00056 object()->setProperty( d->property.toUtf8(), d->newValue ); 00057 } 00058