mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-10 21:40:15 +00:00
delay command execution until call to Object::apply has finished (avoids cutting off the branch we are sitting on)
This commit is contained in:
parent
6a2fe564ef
commit
fa9689c5e7
@ -268,7 +268,7 @@ void CSVRender::InstanceMode::dragCompleted()
|
||||
{
|
||||
if (CSVRender::ObjectTag *objectTag = dynamic_cast<CSVRender::ObjectTag *> (iter->get()))
|
||||
{
|
||||
objectTag->mObject->apply (undoStack);
|
||||
objectTag->mObject->apply (macro);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "../../model/world/refidcollection.hpp"
|
||||
#include "../../model/world/commands.hpp"
|
||||
#include "../../model/world/universalid.hpp"
|
||||
#include "../../model/world/commandmacro.hpp"
|
||||
|
||||
#include <components/resource/scenemanager.hpp>
|
||||
#include <components/sceneutil/lightutil.hpp>
|
||||
@ -524,7 +525,7 @@ void CSVRender::Object::setScale (float scale)
|
||||
adjustTransform();
|
||||
}
|
||||
|
||||
void CSVRender::Object::apply (QUndoStack& undoStack)
|
||||
void CSVRender::Object::apply (CSMWorld::CommandMacro& commands)
|
||||
{
|
||||
const CSMWorld::RefCollection& collection = mData.getReferences();
|
||||
QAbstractItemModel *model = mData.getTableModel (CSMWorld::UniversalId::Type_References);
|
||||
@ -538,7 +539,7 @@ void CSVRender::Object::apply (QUndoStack& undoStack)
|
||||
int column = collection.findColumnIndex (static_cast<CSMWorld::Columns::ColumnId> (
|
||||
CSMWorld::Columns::ColumnId_PositionXPos+i));
|
||||
|
||||
undoStack.push (new CSMWorld::ModifyCommand (*model,
|
||||
commands.push (new CSMWorld::ModifyCommand (*model,
|
||||
model->index (recordIndex, column), mPositionOverride.pos[i]));
|
||||
}
|
||||
}
|
||||
@ -550,7 +551,7 @@ void CSVRender::Object::apply (QUndoStack& undoStack)
|
||||
int column = collection.findColumnIndex (static_cast<CSMWorld::Columns::ColumnId> (
|
||||
CSMWorld::Columns::ColumnId_PositionXRot+i));
|
||||
|
||||
undoStack.push (new CSMWorld::ModifyCommand (*model,
|
||||
commands.push (new CSMWorld::ModifyCommand (*model,
|
||||
model->index (recordIndex, column), mPositionOverride.rot[i]));
|
||||
}
|
||||
}
|
||||
@ -559,7 +560,7 @@ void CSVRender::Object::apply (QUndoStack& undoStack)
|
||||
{
|
||||
int column = collection.findColumnIndex (CSMWorld::Columns::ColumnId_Scale);
|
||||
|
||||
undoStack.push (new CSMWorld::ModifyCommand (*model,
|
||||
commands.push (new CSMWorld::ModifyCommand (*model,
|
||||
model->index (recordIndex, column), mScaleOverride));
|
||||
}
|
||||
|
||||
|
@ -37,6 +37,7 @@ namespace CSMWorld
|
||||
{
|
||||
class Data;
|
||||
struct CellRef;
|
||||
class CommandMacro;
|
||||
}
|
||||
|
||||
namespace CSVRender
|
||||
@ -172,7 +173,7 @@ namespace CSVRender
|
||||
void setScale (float scale);
|
||||
|
||||
/// Apply override changes via command and end edit mode
|
||||
void apply (QUndoStack& undoStack);
|
||||
void apply (CSMWorld::CommandMacro& commands);
|
||||
|
||||
void setSubMode (int subMode);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user