History

Add UndoStackScriptingInterface and support when editing entities

Ryan Huffman committed 12 years ago

Commit 14555c41 parent 0bda7696 files · +156 −6Browse files

Showing the changes to libraries/script-engine/src/UndoStackScriptingInterface.cpp (1 of 6 files). Show all

Unified · Split

libraries/script-engine/src/UndoStackScriptingInterface.cpp+46−0
@@ -0,0 +1,46 @@
1//
2// UndoStackScriptingInterface.cpp
3// libraries/script-engine/src
4//
5// Created by Ryan Huffman on 10/22/14.
6// Copyright 2014 High Fidelity, Inc.
7//
8// Distributed under the Apache License, Version 2.0.
9// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10//
11
12#include <QDebug>
13#include <QScriptValueList>
14#include <QScriptEngine>
15
16#include "UndoStackScriptingInterface.h"
17
18UndoStackScriptingInterface::UndoStackScriptingInterface(QUndoStack* undoStack) : _undoStack(undoStack) {
19}
20
21void UndoStackScriptingInterface::pushCommand(QScriptValue undoFunction, QScriptValue undoData,
22 QScriptValue redoFunction, QScriptValue redoData) {
23 ScriptUndoCommand* undoCommand = new ScriptUndoCommand(undoFunction, undoData, redoFunction, redoData);
24 qDebug() << "Pushing command";
25 _undoStack->push(undoCommand);
26}
27
28ScriptUndoCommand::ScriptUndoCommand(QScriptValue undoFunction, QScriptValue undoData,
29 QScriptValue redoFunction, QScriptValue redoData) :
30 _undoFunction(undoFunction),
31 _undoData(undoData),
32 _redoFunction(redoFunction),
33 _redoData(redoData) {
34}
35
36void ScriptUndoCommand::undo() {
37 QScriptValueList args;
38 args << _undoData;
39 _undoFunction.call(QScriptValue(), args);
40}
41
42void ScriptUndoCommand::redo() {
43 QScriptValueList args;
44 args << _redoData;
45 _redoFunction.call(QScriptValue(), args);
46}