diff --git a/include/ui/tileseteditormetatileselector.h b/include/ui/tileseteditormetatileselector.h index 2bc8e250..79bb1db8 100644 --- a/include/ui/tileseteditormetatileselector.h +++ b/include/ui/tileseteditormetatileselector.h @@ -17,6 +17,7 @@ public: void select(uint16_t metatileId); void setTilesets(Tileset*, Tileset*); uint16_t getSelectedMetatile(); + void updateSelectedMetatile(); protected: void mousePressEvent(QGraphicsSceneMouseEvent*); @@ -30,7 +31,6 @@ private: Tileset *secondaryTileset = nullptr; uint16_t selectedMetatile; int numMetatilesWide; - void updateSelectedMetatile(); uint16_t getMetatileId(int x, int y); QPoint getMetatileIdCoords(uint16_t); bool shouldAcceptEvent(QGraphicsSceneMouseEvent*); diff --git a/src/ui/tileseteditor.cpp b/src/ui/tileseteditor.cpp index a26f9bd2..82321b7d 100644 --- a/src/ui/tileseteditor.cpp +++ b/src/ui/tileseteditor.cpp @@ -650,6 +650,7 @@ void TilesetEditor::on_actionChange_Metatiles_Count_triggered() this->secondaryTileset->metatiles->append(metatile); } + this->metatileSelector->updateSelectedMetatile(); this->refresh(); this->hasUnsavedChanges = true; } diff --git a/src/ui/tileseteditormetatileselector.cpp b/src/ui/tileseteditormetatileselector.cpp index ba4cf84a..3af8c3f3 100644 --- a/src/ui/tileseteditormetatileselector.cpp +++ b/src/ui/tileseteditormetatileselector.cpp @@ -54,6 +54,9 @@ void TilesetEditorMetatileSelector::updateSelectedMetatile() { uint16_t metatileId = this->getMetatileId(origin.x(), origin.y()); if (Tileset::metatileIsValid(metatileId, this->primaryTileset, this->secondaryTileset)) this->selectedMetatile = metatileId; + else + this->selectedMetatile = 0; + emit selectedMetatileChanged(this->selectedMetatile); } uint16_t TilesetEditorMetatileSelector::getSelectedMetatile() { @@ -78,7 +81,6 @@ void TilesetEditorMetatileSelector::mousePressEvent(QGraphicsSceneMouseEvent *ev if (!shouldAcceptEvent(event)) return; SelectablePixmapItem::mousePressEvent(event); this->updateSelectedMetatile(); - emit selectedMetatileChanged(this->selectedMetatile); } void TilesetEditorMetatileSelector::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { @@ -86,14 +88,12 @@ void TilesetEditorMetatileSelector::mouseMoveEvent(QGraphicsSceneMouseEvent *eve SelectablePixmapItem::mouseMoveEvent(event); this->updateSelectedMetatile(); emit hoveredMetatileChanged(this->selectedMetatile); - emit selectedMetatileChanged(this->selectedMetatile); } void TilesetEditorMetatileSelector::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { if (!shouldAcceptEvent(event)) return; SelectablePixmapItem::mouseReleaseEvent(event); this->updateSelectedMetatile(); - emit selectedMetatileChanged(this->selectedMetatile); } void TilesetEditorMetatileSelector::hoverMoveEvent(QGraphicsSceneHoverEvent *event) {