Fix script API undo/redo for layouts, final TODO items
This commit is contained in:
parent
06ece16b93
commit
e278d48380
4 changed files with 13 additions and 12 deletions
|
@ -27,6 +27,7 @@ public:
|
|||
this->setDropIndicatorShown(true);
|
||||
this->setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
|
||||
this->setFocusPolicy(Qt::StrongFocus);
|
||||
this->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
}
|
||||
|
||||
protected:
|
||||
|
|
|
@ -486,7 +486,6 @@ int EventPaste::id() const {
|
|||
************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
// TODO: Undo/redo for script edits to layout dimensions doesn't render correctly.
|
||||
ScriptEditLayout::ScriptEditLayout(Layout *layout,
|
||||
QSize oldLayoutDimensions, QSize newLayoutDimensions,
|
||||
const Blockdata &oldMetatiles, const Blockdata &newMetatiles,
|
||||
|
@ -538,7 +537,7 @@ void ScriptEditLayout::redo() {
|
|||
layout->lastCommitBlocks.border = newBorder;
|
||||
layout->lastCommitBlocks.borderDimensions = QSize(newBorderWidth, newBorderHeight);
|
||||
|
||||
renderBlocks(layout);
|
||||
renderBlocks(layout, true);
|
||||
layout->borderItem->draw();
|
||||
}
|
||||
|
||||
|
@ -564,7 +563,7 @@ void ScriptEditLayout::undo() {
|
|||
layout->lastCommitBlocks.border = oldBorder;
|
||||
layout->lastCommitBlocks.borderDimensions = QSize(oldBorderWidth, oldBorderHeight);
|
||||
|
||||
renderBlocks(layout);
|
||||
renderBlocks(layout, true);
|
||||
layout->borderItem->draw();
|
||||
|
||||
QUndoCommand::undo();
|
||||
|
|
|
@ -406,9 +406,6 @@ void MainWindow::initMapList() {
|
|||
connect(ui->layoutList, &QAbstractItemView::activated, this, &MainWindow::openMapListItem);
|
||||
|
||||
// Right-clicking on items in the map list brings up a context menu.
|
||||
ui->mapList->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
ui->areaList->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
ui->layoutList->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
connect(ui->mapList, &QTreeView::customContextMenuRequested, this, &MainWindow::onOpenMapListContextMenu);
|
||||
connect(ui->areaList, &QTreeView::customContextMenuRequested, this, &MainWindow::onOpenMapListContextMenu);
|
||||
connect(ui->layoutList, &QTreeView::customContextMenuRequested, this, &MainWindow::onOpenMapListContextMenu);
|
||||
|
@ -1316,7 +1313,6 @@ void MainWindow::scrollMapListToCurrentMap(MapTree *list) {
|
|||
}
|
||||
}
|
||||
|
||||
// TODO: Initial scrolling doesn't center the layout on launch if it's not the current tab.
|
||||
void MainWindow::scrollMapListToCurrentLayout(MapTree *list) {
|
||||
if (this->editor->layout) {
|
||||
scrollMapList(list, this->editor->layout->id);
|
||||
|
|
|
@ -2266,11 +2266,16 @@ bool Project::readRegionMapSections() {
|
|||
fileWatcher.addPath(filepath);
|
||||
|
||||
QJsonArray mapSections = doc.object()["map_sections"].toArray();
|
||||
for (const auto &mapSection : mapSections) {
|
||||
// For each map section, "id" is the only required field. This is the field we use
|
||||
// to display the location names in various drop-downs.
|
||||
QJsonObject mapSectionObj = mapSection.toObject();
|
||||
const QString idName = ParseUtil::jsonToQString(mapSectionObj["id"]);
|
||||
for (int i = 0; i < mapSections.size(); i++) {
|
||||
QJsonObject mapSectionObj = mapSections.at(i).toObject();
|
||||
|
||||
// For each map section, "id" is the only required field. This is the field we use to display the location names in various drop-downs.
|
||||
const QString idField = "id";
|
||||
if (!mapSectionObj.contains(idField)) {
|
||||
logWarn(QString("Ignoring data for map section %1. Missing required field \"%2\"").arg(i).arg(idField));
|
||||
continue;
|
||||
}
|
||||
const QString idName = ParseUtil::jsonToQString(mapSectionObj[idField]);
|
||||
if (!idName.startsWith(requiredPrefix)) {
|
||||
logWarn(QString("Ignoring data for map section '%1'. IDs must start with the prefix '%2'").arg(idName).arg(requiredPrefix));
|
||||
continue;
|
||||
|
|
Loading…
Reference in a new issue