diff --git a/CHANGES b/CHANGES index e4bfe1547..1b5863a81 100644 --- a/CHANGES +++ b/CHANGES @@ -106,6 +106,7 @@ Features: - Switch: Rotation support - Qt: State file load/save menu options - Windows installer + - Tile viewer now has adjustable width Bugfixes: - PSP2: Fix audio crackling after fast forward - PSP2: Fix audio crackling when buffer is full diff --git a/src/platform/qt/TilePainter.cpp b/src/platform/qt/TilePainter.cpp index 454530a7c..bbf975ca6 100644 --- a/src/platform/qt/TilePainter.cpp +++ b/src/platform/qt/TilePainter.cpp @@ -59,8 +59,12 @@ void TilePainter::setTileCount(int tiles) { int w = width() / m_size; int h = (tiles + w - 1) * m_size / w; setMinimumSize(m_size, h - (h % m_size)); - resizeEvent(nullptr); + } else { + int w = minimumSize().width() / m_size; + int h = (tiles + w - 1) * m_size / w; + setMinimumSize(minimumSize().width(), h - (h % m_size)); } + resizeEvent(nullptr); } void TilePainter::setTileMagnification(int mag) { diff --git a/src/platform/qt/TileView.cpp b/src/platform/qt/TileView.cpp index 38c2610f7..063caf8d3 100644 --- a/src/platform/qt/TileView.cpp +++ b/src/platform/qt/TileView.cpp @@ -65,6 +65,21 @@ TileView::TileView(std::shared_ptr controller, QWidget* parent) connect(m_ui.magnification, static_cast(&QSpinBox::valueChanged), [this]() { updateTiles(true); }); + + connect(m_ui.tilesPerRow, static_cast(&QSpinBox::valueChanged), [this](int count) { + m_ui.tiles->setMinimumSize(m_ui.magnification->value() * 8 * count, m_ui.tiles->minimumSize().height()); + updateTiles(true); + }); + + connect(m_ui.tileFit, &QAbstractButton::toggled, [this](bool selected) { + if (!selected) { + m_ui.tiles->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + m_ui.tiles->setMinimumSize(m_ui.magnification->value() * 8 * m_ui.tilesPerRow->value(), m_ui.tiles->minimumSize().height()); + } else { + m_ui.tiles->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); + } + updateTiles(true); + }); } #ifdef M_CORE_GBA diff --git a/src/platform/qt/TileView.ui b/src/platform/qt/TileView.ui index 608e1d2d0..02c4c533f 100644 --- a/src/platform/qt/TileView.ui +++ b/src/platform/qt/TileView.ui @@ -6,48 +6,15 @@ 0 0 - 501 - 335 + 693 + 467 Tiles - - - - - - - - - - - 0 - 0 - - - - × - - - 1 - - - 4 - - - - - - - Magnification - - - - - - + + @@ -66,7 +33,7 @@ 0 0 - 256 + 405 768 @@ -112,7 +79,7 @@ - + Qt::Vertical @@ -125,22 +92,84 @@ + + + - - + + 15 - + 256 colors + + + + + 0 + 0 + + + + × + + + 1 + + + 4 + + + + + + + Magnification + + + + + + + false + + + 1 + + + 64 + + + 32 + + + + + + + Tiles per row + + + + + + + Fit to window + + + true + + + @@ -164,6 +193,22 @@ + + tileFit + toggled(bool) + tilesPerRow + setDisabled(bool) + + + 162 + 180 + + + 39 + 133 + + + magnification valueChanged(int) @@ -171,12 +216,12 @@ setTileMagnification(int) - 36 - 83 + 39 + 81 - 339 - 396 + 462 + 391 @@ -187,11 +232,11 @@ setDisabled(bool) - 158 - 29 + 148 + 24 - 44 + 39 29