Fix small UI bugs in tileset editor
This commit is contained in:
parent
0c7ecebe0b
commit
a77b76988b
4 changed files with 35 additions and 5 deletions
|
@ -70,7 +70,14 @@
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QGraphicsView" name="graphicsView_Metatiles"/>
|
<widget class="QGraphicsView" name="graphicsView_Metatiles">
|
||||||
|
<property name="verticalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||||
|
</property>
|
||||||
|
<property name="horizontalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<spacer name="verticalSpacer_2">
|
<spacer name="verticalSpacer_2">
|
||||||
|
@ -239,7 +246,14 @@
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QGraphicsView" name="graphicsView_Tiles"/>
|
<widget class="QGraphicsView" name="graphicsView_Tiles">
|
||||||
|
<property name="verticalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||||
|
</property>
|
||||||
|
<property name="horizontalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="2" column="1">
|
||||||
<spacer name="verticalSpacer_4">
|
<spacer name="verticalSpacer_4">
|
||||||
|
|
|
@ -83,8 +83,15 @@ QImage getTileImage(uint16_t tile, Tileset *primaryTileset, Tileset *secondaryTi
|
||||||
QImage getColoredTileImage(uint16_t tile, Tileset *primaryTileset, Tileset *secondaryTileset, int paletteId) {
|
QImage getColoredTileImage(uint16_t tile, Tileset *primaryTileset, Tileset *secondaryTileset, int paletteId) {
|
||||||
QList<QRgb> palette = Tileset::getPalette(paletteId, primaryTileset, secondaryTileset);
|
QList<QRgb> palette = Tileset::getPalette(paletteId, primaryTileset, secondaryTileset);
|
||||||
QImage tileImage = getTileImage(tile, primaryTileset, secondaryTileset);
|
QImage tileImage = getTileImage(tile, primaryTileset, secondaryTileset);
|
||||||
|
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++) {
|
for (int i = 0; i < 16; i++) {
|
||||||
tileImage.setColor(i, palette.at(i));
|
tileImage.setColor(i, palette.at(i));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return tileImage;
|
return tileImage;
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,6 +80,10 @@ void SelectablePixmapItem::updateSelection(int x, int y)
|
||||||
|
|
||||||
QPoint SelectablePixmapItem::getCellPos(QPointF pos)
|
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<int>(pos.x()) / this->cellWidth,
|
return QPoint(static_cast<int>(pos.x()) / this->cellWidth,
|
||||||
static_cast<int>(pos.y()) / this->cellHeight);
|
static_cast<int>(pos.y()) / this->cellHeight);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
#include "tileseteditor.h"
|
#include "tileseteditor.h"
|
||||||
#include "ui_tileseteditor.h"
|
#include "ui_tileseteditor.h"
|
||||||
#include "imageproviders.h"
|
#include "imageproviders.h"
|
||||||
#include <QDebug>
|
|
||||||
|
|
||||||
TilesetEditor::TilesetEditor(Project *project, QString primaryTilesetLabel, QString secondaryTilesetLabel, QWidget *parent) :
|
TilesetEditor::TilesetEditor(Project *project, QString primaryTilesetLabel, QString secondaryTilesetLabel, QWidget *parent) :
|
||||||
QMainWindow(parent),
|
QMainWindow(parent),
|
||||||
|
@ -54,6 +53,11 @@ void TilesetEditor::setTilesets(QString primaryTilesetLabel, QString secondaryTi
|
||||||
this->metatileLayersItem->setTilesets(this->primaryTileset, this->secondaryTileset);
|
this->metatileLayersItem->setTilesets(this->primaryTileset, this->secondaryTileset);
|
||||||
this->metatileSelector->select(this->metatileSelector->getSelectedMetatile());
|
this->metatileSelector->select(this->metatileSelector->getSelectedMetatile());
|
||||||
this->drawSelectedTile();
|
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()
|
void TilesetEditor::initMetatileSelector()
|
||||||
|
@ -203,4 +207,5 @@ void TilesetEditor::on_actionSave_Tileset_triggered()
|
||||||
{
|
{
|
||||||
this->project->saveTilesets(this->primaryTileset, this->secondaryTileset);
|
this->project->saveTilesets(this->primaryTileset, this->secondaryTileset);
|
||||||
emit this->tilesetsSaved(this->primaryTileset->name, this->secondaryTileset->name);
|
emit this->tilesetsSaved(this->primaryTileset->name, this->secondaryTileset->name);
|
||||||
|
this->ui->statusbar->showMessage(QString("Saved primary and secondary Tilesets!"), 5000);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue