From 8a572ab136554d69d96c0cc968ebb2c8557c1f6f Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Thu, 20 Oct 2016 22:51:30 -0700 Subject: [PATCH] Qt: Fix cut off tiles and alignment issues in tile viewer --- CHANGES | 1 + src/platform/qt/TilePainter.cpp | 8 ++++++-- src/platform/qt/TileView.ui | 9 +++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index d5ba07ba6..88a8f099e 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,7 @@ Bugfixes: - Windows: Fix Unicode directory handling - Qt: Fix changing resolution of software renderer - Qt: Fix setting overrides + - Qt: Fix cut off tiles and alignment issues in tile viewer 0.5.1: (2016-10-05) Bugfixes: diff --git a/src/platform/qt/TilePainter.cpp b/src/platform/qt/TilePainter.cpp index 29b99df2f..e55bdf592 100644 --- a/src/platform/qt/TilePainter.cpp +++ b/src/platform/qt/TilePainter.cpp @@ -27,7 +27,9 @@ void TilePainter::paintEvent(QPaintEvent* event) { } void TilePainter::resizeEvent(QResizeEvent* event) { - int calculatedHeight = (m_tileCount * m_size) / (width() / m_size) + m_size / 2; + int w = width() / m_size; + int calculatedHeight = (m_tileCount + w - 1) * m_size / w; + calculatedHeight -= calculatedHeight % m_size; if (width() / m_size != m_backing.width() / m_size || m_backing.height() != calculatedHeight) { m_backing = QPixmap(width(), calculatedHeight); m_backing.fill(Qt::transparent); @@ -53,7 +55,9 @@ void TilePainter::setTile(int index, const uint16_t* data) { void TilePainter::setTileCount(int tiles) { m_tileCount = tiles; - setMinimumSize(16, (tiles * m_size) / (width() / m_size)); + int w = width() / m_size; + int h = (tiles + w - 1) * m_size / w; + setMinimumSize(16, h - (h % m_size)); resizeEvent(nullptr); } diff --git a/src/platform/qt/TileView.ui b/src/platform/qt/TileView.ui index fd4b88108..1c3a4f491 100644 --- a/src/platform/qt/TileView.ui +++ b/src/platform/qt/TileView.ui @@ -140,6 +140,9 @@ true + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + @@ -149,6 +152,12 @@ 768 + + + 0 + 0 + + 0