Remove unnecessary QGraphicsScene/item tracking from Tileset Editor
Some checks failed
Build Porymap / build-linux (5.14.2) (push) Has been cancelled
Build Porymap / build-linux (6.8.2) (push) Has been cancelled
Build Porymap / build-macos (macos-15-intel) (push) Has been cancelled
Build Porymap / build-macos (macos-latest) (push) Has been cancelled
Build Porymap / build-static-windows (push) Has been cancelled

This commit is contained in:
GriffinR 2025-11-27 00:42:42 -05:00
parent 0c6f901393
commit e186fd39f2
2 changed files with 16 additions and 29 deletions

View File

@ -176,11 +176,6 @@ private:
bool hasUnsavedChanges;
Tileset *primaryTileset = nullptr;
Tileset *secondaryTileset = nullptr;
QGraphicsScene *metatilesScene = nullptr;
QGraphicsScene *tilesScene = nullptr;
QGraphicsScene *selectedTileScene = nullptr;
QGraphicsPixmapItem *selectedTilePixmapItem = nullptr;
QGraphicsScene *metatileLayersScene = nullptr;
bool lockSelection = false;
QSet<uint16_t> metatileReloadQueue;
MetatileImageExporter::Settings *metatileImageExportSettings = nullptr;

View File

@ -81,17 +81,9 @@ TilesetEditor::TilesetEditor(Project *project, Layout *layout, QWidget *parent)
TilesetEditor::~TilesetEditor()
{
delete ui;
delete metatileSelector;
delete tileSelector;
delete metatileLayersItem;
delete paletteEditor;
delete primaryTileset;
delete secondaryTileset;
delete metatilesScene;
delete tilesScene;
delete selectedTilePixmapItem;
delete selectedTileScene;
delete metatileLayersScene;
delete copiedMetatile;
delete metatileImageExportSettings;
this->metatileHistory.clear();
@ -224,11 +216,11 @@ void TilesetEditor::initMetatileSelector()
this->metatileSelector->showGrid = showGrid;
this->metatileSelector->showDivider = this->ui->actionShow_Tileset_Divider->isChecked();
this->metatilesScene = new QGraphicsScene;
this->metatilesScene->addItem(this->metatileSelector);
auto scene = new QGraphicsScene(this);
scene->addItem(this->metatileSelector);
this->metatileSelector->draw();
this->ui->graphicsView_Metatiles->setScene(this->metatilesScene);
this->ui->graphicsView_Metatiles->setScene(scene);
this->ui->graphicsView_Metatiles->setResizeAnchor(QGraphicsView::AnchorViewCenter);
this->ui->horizontalSlider_MetatilesZoom->setValue(porymapConfig.tilesetEditorMetatilesZoom);
}
@ -320,9 +312,9 @@ void TilesetEditor::initMetatileLayersItem() {
this->ui->actionLayer_Grid->setChecked(showGrid);
this->metatileLayersItem->showGrid = showGrid;
this->metatileLayersScene = new QGraphicsScene;
this->metatileLayersScene->addItem(this->metatileLayersItem);
this->ui->graphicsView_MetatileLayers->setScene(this->metatileLayersScene);
auto scene = new QGraphicsScene(this);
scene->addItem(this->metatileLayersItem);
this->ui->graphicsView_MetatileLayers->setScene(scene);
}
void TilesetEditor::initTileSelector() {
@ -335,20 +327,19 @@ void TilesetEditor::initTileSelector() {
this->tileSelector->showDivider = this->ui->actionShow_Tileset_Divider->isChecked();
this->tilesScene = new QGraphicsScene;
this->tilesScene->addItem(this->tileSelector);
auto scene = new QGraphicsScene(this);
scene->addItem(this->tileSelector);
this->tileSelector->select(0);
this->tileSelector->draw();
this->ui->graphicsView_Tiles->setScene(this->tilesScene);
this->ui->graphicsView_Tiles->setScene(scene);
this->ui->graphicsView_Tiles->setResizeAnchor(QGraphicsView::AnchorViewCenter);
this->ui->horizontalSlider_TilesZoom->setValue(porymapConfig.tilesetEditorTilesZoom);
}
void TilesetEditor::initSelectedTileItem() {
this->selectedTileScene = new QGraphicsScene;
ui->graphicsView_selectedTile->setScene(new QGraphicsScene(this));
this->drawSelectedTiles();
this->ui->graphicsView_selectedTile->setScene(this->selectedTileScene);
}
void TilesetEditor::initShortcuts() {
@ -444,13 +435,14 @@ void TilesetEditor::refresh() {
}
void TilesetEditor::drawSelectedTiles() {
if (!this->selectedTileScene) {
QGraphicsScene *scene = ui->graphicsView_selectedTile->scene();
if (!scene) {
return;
}
const int imgTileWidth = 16;
const int imgTileHeight = 16;
this->selectedTileScene->clear();
scene->clear();
QList<Tile> tiles = this->tileSelector->getSelectedTiles();
QSize dimensions = this->tileSelector->getSelectionDimensions();
QImage selectionImage(imgTileWidth * dimensions.width(), imgTileHeight * dimensions.height(), QImage::Format_RGBA8888);
@ -465,10 +457,10 @@ void TilesetEditor::drawSelectedTiles() {
}
}
this->selectedTilePixmapItem = new QGraphicsPixmapItem(QPixmap::fromImage(selectionImage));
this->selectedTileScene->addItem(this->selectedTilePixmapItem);
auto selectedTilePixmapItem = new QGraphicsPixmapItem(QPixmap::fromImage(selectionImage));
scene->addItem(selectedTilePixmapItem);
QSize size(this->selectedTilePixmapItem->pixmap().width(), this->selectedTilePixmapItem->pixmap().height());
QSize size(selectedTilePixmapItem->pixmap().width(), selectedTilePixmapItem->pixmap().height());
this->ui->graphicsView_selectedTile->setSceneRect(0, 0, size.width(), size.height());
}