mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-31 13:45:33 +00:00
48 lines
1.4 KiB
C++
48 lines
1.4 KiB
C++
#include "pathgridcommands.hpp"
|
|
|
|
#include "../../view/render/cell.hpp"
|
|
#include "idtree.hpp"
|
|
#include "nestedtablewrapper.hpp"
|
|
|
|
// Current interface does not allow adding a non-blank row, so we're forced to modify
|
|
// the whole record.
|
|
CSMWorld::ModifyPathgridCommand::ModifyPathgridCommand(IdTree& model,
|
|
const std::string& id, int parentColumn, NestedTableWrapperBase* newRecord, QUndoCommand* parent)
|
|
: mModel(model), mId(id), mParentColumn(parentColumn), mRecord(newRecord)
|
|
, QUndoCommand(parent), NestedTableStoring(model, id, parentColumn)
|
|
{
|
|
setText (("Modify Pathgrid record " + mId).c_str()); // FIXME: better description
|
|
}
|
|
|
|
void CSMWorld::ModifyPathgridCommand::redo()
|
|
{
|
|
const QModelIndex& parentIndex = mModel.getModelIndex(mId, mParentColumn);
|
|
|
|
mModel.setNestedTable(parentIndex, *mRecord);
|
|
}
|
|
|
|
void CSMWorld::ModifyPathgridCommand::undo()
|
|
{
|
|
const QModelIndex& parentIndex = mModel.getModelIndex(mId, mParentColumn);
|
|
|
|
mModel.setNestedTable(parentIndex, getOld());
|
|
|
|
emit undoActioned();
|
|
}
|
|
|
|
void CSMWorld::SignalHandler::rebuildPathgrid()
|
|
{
|
|
mParent->clearPathgrid();
|
|
mParent->buildPathgrid();
|
|
|
|
emit flagAsModified();
|
|
}
|
|
|
|
CSMWorld::SignalHandler::SignalHandler (CSVRender::Cell *parent) : mParent(parent)
|
|
{}
|
|
|
|
void CSMWorld::SignalHandler::connectToCommand(const CSMWorld::ModifyPathgridCommand *command)
|
|
{
|
|
connect (command, SIGNAL(undoActioned()),
|
|
this, SLOT(rebuildPathgrid()));
|
|
}
|