📄 commands.cpp
字号:
/******************************************************************************** Copyright (C) 2005-2007 Trolltech ASA. All rights reserved.**** This file is part of the demonstration applications of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file. Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://trolltech.com/products/qt/licenses/licensing/opensource/**** If you are unsure which license is appropriate for your use, please** review the following information:** http://trolltech.com/products/qt/licenses/licensing/licensingoverview** or contact the sales department at sales@trolltech.com.**** In addition, as a special exception, Trolltech gives you certain** additional rights. These rights are described in the Trolltech GPL** Exception version 1.0, which can be found at** http://www.trolltech.com/products/qt/gplexception/ and in the file** GPL_EXCEPTION.txt in this package.**** In addition, as a special exception, Trolltech, as the sole copyright** holder for Qt Designer, grants users of the Qt/Eclipse Integration** plug-in the right for the Qt/Eclipse Integration to link to** functionality provided by Qt Designer and its related libraries.**** Trolltech reserves all rights not expressly granted herein.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include "commands.h"static const int setShapeRectCommandId = 1;static const int setShapeColorCommandId = 2;/******************************************************************************** AddShapeCommand*/AddShapeCommand::AddShapeCommand(Document *doc, const Shape &shape, QUndoCommand *parent) : QUndoCommand(parent){ m_doc = doc; m_shape = shape;}void AddShapeCommand::undo(){ m_doc->deleteShape(m_shapeName);}void AddShapeCommand::redo(){ // A shape only gets a name when it is inserted into a document m_shapeName = m_doc->addShape(m_shape); setText(QObject::tr("Add %1").arg(m_shapeName));}/******************************************************************************** RemoveShapeCommand*/RemoveShapeCommand::RemoveShapeCommand(Document *doc, const QString &shapeName, QUndoCommand *parent) : QUndoCommand(parent){ setText(QObject::tr("Remove %1").arg(shapeName)); m_doc = doc; m_shape = doc->shape(shapeName); m_shapeName = shapeName;}void RemoveShapeCommand::undo(){ m_shapeName = m_doc->addShape(m_shape);}void RemoveShapeCommand::redo(){ m_doc->deleteShape(m_shapeName);}/******************************************************************************** SetShapeColorCommand*/SetShapeColorCommand::SetShapeColorCommand(Document *doc, const QString &shapeName, const QColor &color, QUndoCommand *parent) : QUndoCommand(parent){ setText(QObject::tr("Set %1's color").arg(shapeName)); m_doc = doc; m_shapeName = shapeName; m_oldColor = doc->shape(shapeName).color(); m_newColor = color;}void SetShapeColorCommand::undo(){ m_doc->setShapeColor(m_shapeName, m_oldColor);}void SetShapeColorCommand::redo(){ m_doc->setShapeColor(m_shapeName, m_newColor);}bool SetShapeColorCommand::mergeWith(const QUndoCommand *command){ if (command->id() != setShapeColorCommandId) return false; const SetShapeColorCommand *other = static_cast<const SetShapeColorCommand*>(command); if (m_shapeName != other->m_shapeName) return false; m_newColor = other->m_newColor; return true;}int SetShapeColorCommand::id() const{ return setShapeColorCommandId;}/******************************************************************************** SetShapeRectCommand*/SetShapeRectCommand::SetShapeRectCommand(Document *doc, const QString &shapeName, const QRect &rect, QUndoCommand *parent) : QUndoCommand(parent){ setText(QObject::tr("Change %1's geometry").arg(shapeName)); m_doc = doc; m_shapeName = shapeName; m_oldRect = doc->shape(shapeName).rect(); m_newRect = rect;}void SetShapeRectCommand::undo(){ m_doc->setShapeRect(m_shapeName, m_oldRect);}void SetShapeRectCommand::redo(){ m_doc->setShapeRect(m_shapeName, m_newRect);}bool SetShapeRectCommand::mergeWith(const QUndoCommand *command){ if (command->id() != setShapeRectCommandId) return false; const SetShapeRectCommand *other = static_cast<const SetShapeRectCommand*>(command); if (m_shapeName != other->m_shapeName) return false; m_newRect = other->m_newRect; return true;}int SetShapeRectCommand::id() const{ return setShapeRectCommandId;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -