Open tileset editor with selected metatile
This commit is contained in:
parent
cc16440336
commit
08bc85dde0
5 changed files with 16 additions and 0 deletions
|
@ -38,6 +38,7 @@ public:
|
||||||
~TilesetEditor();
|
~TilesetEditor();
|
||||||
void setTilesets(QString, QString);
|
void setTilesets(QString, QString);
|
||||||
void init(Project*, QString, QString);
|
void init(Project*, QString, QString);
|
||||||
|
void selectMetatile(uint16_t metatileId);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void onHoveredMetatileChanged(uint16_t);
|
void onHoveredMetatileChanged(uint16_t);
|
||||||
|
|
|
@ -18,6 +18,7 @@ public:
|
||||||
void setTilesets(Tileset*, Tileset*);
|
void setTilesets(Tileset*, Tileset*);
|
||||||
uint16_t getSelectedMetatile();
|
uint16_t getSelectedMetatile();
|
||||||
void updateSelectedMetatile();
|
void updateSelectedMetatile();
|
||||||
|
QPoint getMetatileIdCoordsOnWidget(uint16_t metatileId);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void mousePressEvent(QGraphicsSceneMouseEvent*);
|
void mousePressEvent(QGraphicsSceneMouseEvent*);
|
||||||
|
|
|
@ -2452,6 +2452,7 @@ void MainWindow::on_actionTileset_Editor_triggered()
|
||||||
} else {
|
} else {
|
||||||
this->tilesetEditor->activateWindow();
|
this->tilesetEditor->activateWindow();
|
||||||
}
|
}
|
||||||
|
this->tilesetEditor->selectMetatile(this->editor->metatile_selector_item->getSelectedMetatiles()->at(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_toolButton_ExpandAll_clicked()
|
void MainWindow::on_toolButton_ExpandAll_clicked()
|
||||||
|
|
|
@ -105,6 +105,12 @@ void TilesetEditor::init(Project *project, QString primaryTilesetLabel, QString
|
||||||
metatileHistory.push(commit);
|
metatileHistory.push(commit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TilesetEditor::selectMetatile(uint16_t metatileId) {
|
||||||
|
this->metatileSelector->select(metatileId);
|
||||||
|
QPoint pos = this->metatileSelector->getMetatileIdCoordsOnWidget(metatileId);
|
||||||
|
this->ui->scrollArea_Metatiles->ensureVisible(pos.x(), pos.y());
|
||||||
|
}
|
||||||
|
|
||||||
void TilesetEditor::setTilesets(QString primaryTilesetLabel, QString secondaryTilesetLabel) {
|
void TilesetEditor::setTilesets(QString primaryTilesetLabel, QString secondaryTilesetLabel) {
|
||||||
delete this->primaryTileset;
|
delete this->primaryTileset;
|
||||||
delete this->secondaryTileset;
|
delete this->secondaryTileset;
|
||||||
|
|
|
@ -117,3 +117,10 @@ QPoint TilesetEditorMetatileSelector::getMetatileIdCoords(uint16_t metatileId) {
|
||||||
: metatileId - Project::getNumMetatilesPrimary() + this->primaryTileset->metatiles->length();
|
: metatileId - Project::getNumMetatilesPrimary() + this->primaryTileset->metatiles->length();
|
||||||
return QPoint(index % this->numMetatilesWide, index / this->numMetatilesWide);
|
return QPoint(index % this->numMetatilesWide, index / this->numMetatilesWide);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QPoint TilesetEditorMetatileSelector::getMetatileIdCoordsOnWidget(uint16_t metatileId) {
|
||||||
|
QPoint pos = getMetatileIdCoords(metatileId);
|
||||||
|
pos.rx() = (pos.x() * this->cellWidth) + (this->cellWidth / 2);
|
||||||
|
pos.ry() = (pos.y() * this->cellHeight) + (this->cellHeight / 2);
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue