Update UndoStackScriptingInterface to not call redo automatically

This commit is contained in:
Ryan Huffman 2014-10-28 13:43:22 -07:00
parent af103b22ff
commit cce1e23eec
2 changed files with 7 additions and 2 deletions

View file

@ -30,6 +30,7 @@ void UndoStackScriptingInterface::pushCommand(QScriptValue undoFunction, QScript
ScriptUndoCommand::ScriptUndoCommand(QScriptValue undoFunction, QScriptValue undoData, ScriptUndoCommand::ScriptUndoCommand(QScriptValue undoFunction, QScriptValue undoData,
QScriptValue redoFunction, QScriptValue redoData) : QScriptValue redoFunction, QScriptValue redoData) :
_hasRedone(false),
_undoFunction(undoFunction), _undoFunction(undoFunction),
_undoData(undoData), _undoData(undoData),
_redoFunction(redoFunction), _redoFunction(redoFunction),
@ -41,7 +42,11 @@ void ScriptUndoCommand::undo() {
} }
void ScriptUndoCommand::redo() { void ScriptUndoCommand::redo() {
QMetaObject::invokeMethod(this, "doRedo"); if (_hasRedone) {
qDebug() << "Doing redo!";
QMetaObject::invokeMethod(this, "doRedo");
}
_hasRedone = true;
} }
void ScriptUndoCommand::doUndo() { void ScriptUndoCommand::doUndo() {
@ -50,7 +55,6 @@ void ScriptUndoCommand::doUndo() {
_undoFunction.call(QScriptValue(), args); _undoFunction.call(QScriptValue(), args);
} }
void ScriptUndoCommand::doRedo() { void ScriptUndoCommand::doRedo() {
QScriptValueList args; QScriptValueList args;
args << _redoData; args << _redoData;

View file

@ -43,6 +43,7 @@ public slots:
void doRedo(); void doRedo();
private: private:
bool _hasRedone;
QScriptValue _undoFunction; QScriptValue _undoFunction;
QScriptValue _undoData; QScriptValue _undoData;
QScriptValue _redoFunction; QScriptValue _redoFunction;