diff --git a/forms/tileseteditor.ui b/forms/tileseteditor.ui index 57b66a1d..db1dec68 100644 --- a/forms/tileseteditor.ui +++ b/forms/tileseteditor.ui @@ -70,7 +70,14 @@ - + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + @@ -239,7 +246,14 @@ - + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + diff --git a/src/ui/imageproviders.cpp b/src/ui/imageproviders.cpp index 2a1bc5ef..b9a6a6ad 100644 --- a/src/ui/imageproviders.cpp +++ b/src/ui/imageproviders.cpp @@ -83,8 +83,15 @@ QImage getTileImage(uint16_t tile, Tileset *primaryTileset, Tileset *secondaryTi QImage getColoredTileImage(uint16_t tile, Tileset *primaryTileset, Tileset *secondaryTileset, int paletteId) { QList palette = Tileset::getPalette(paletteId, primaryTileset, secondaryTileset); QImage tileImage = getTileImage(tile, primaryTileset, secondaryTileset); - for (int i = 0; i < 16; i++) { - tileImage.setColor(i, palette.at(i)); + if (tileImage.isNull()) { + tileImage = QImage(16, 16, QImage::Format_RGBA8888); + QPainter painter(&tileImage); + painter.fillRect(0, 0, 16, 16, palette.at(0)); + } else { + for (int i = 0; i < 16; i++) { + tileImage.setColor(i, palette.at(i)); + } } + return tileImage; } diff --git a/src/ui/selectablepixmapitem.cpp b/src/ui/selectablepixmapitem.cpp index 5dcd252f..dbfbaa34 100644 --- a/src/ui/selectablepixmapitem.cpp +++ b/src/ui/selectablepixmapitem.cpp @@ -80,6 +80,10 @@ void SelectablePixmapItem::updateSelection(int x, int y) QPoint SelectablePixmapItem::getCellPos(QPointF pos) { + if (pos.x() < 0) pos.setX(0); + if (pos.y() < 0) pos.setY(0); + if (pos.x() >= this->pixmap().width()) pos.setX(this->pixmap().width() - 1); + if (pos.y() >= this->pixmap().height()) pos.setY(this->pixmap().height() - 1); return QPoint(static_cast(pos.x()) / this->cellWidth, static_cast(pos.y()) / this->cellHeight); } diff --git a/src/ui/tileseteditor.cpp b/src/ui/tileseteditor.cpp index 871c869b..033d94c9 100644 --- a/src/ui/tileseteditor.cpp +++ b/src/ui/tileseteditor.cpp @@ -1,7 +1,6 @@ #include "tileseteditor.h" #include "ui_tileseteditor.h" #include "imageproviders.h" -#include TilesetEditor::TilesetEditor(Project *project, QString primaryTilesetLabel, QString secondaryTilesetLabel, QWidget *parent) : QMainWindow(parent), @@ -54,6 +53,11 @@ void TilesetEditor::setTilesets(QString primaryTilesetLabel, QString secondaryTi this->metatileLayersItem->setTilesets(this->primaryTileset, this->secondaryTileset); this->metatileSelector->select(this->metatileSelector->getSelectedMetatile()); this->drawSelectedTile(); + + this->ui->graphicsView_Tiles->setSceneRect(0, 0, this->tileSelector->pixmap().width() + 2, this->tileSelector->pixmap().height() + 2); + this->ui->graphicsView_Tiles->setFixedSize(this->tileSelector->pixmap().width() + 2, this->tileSelector->pixmap().height() + 2); + this->ui->graphicsView_Metatiles->setSceneRect(0, 0, this->metatileSelector->pixmap().width() + 2, this->metatileSelector->pixmap().height() + 2); + this->ui->graphicsView_Metatiles->setFixedSize(this->metatileSelector->pixmap().width() + 2, this->metatileSelector->pixmap().height() + 2); } void TilesetEditor::initMetatileSelector() @@ -203,4 +207,5 @@ void TilesetEditor::on_actionSave_Tileset_triggered() { this->project->saveTilesets(this->primaryTileset, this->secondaryTileset); emit this->tilesetsSaved(this->primaryTileset->name, this->secondaryTileset->name); + this->ui->statusbar->showMessage(QString("Saved primary and secondary Tilesets!"), 5000); }