From a81cf8ece0b2ae9397b6c737a8b482ceb9010e83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Le=20Bihan?= Date: Thu, 27 May 2021 23:00:36 +0200 Subject: [PATCH] adding ui details (and great visuals fixes) --- sources/Debugger/TileViewer/TileViewer.cpp | 39 ++++++++++- sources/Debugger/TileViewer/TileViewer.hpp | 2 + ui/tileView.ui | 80 +++++++++++++++++++--- 3 files changed, 110 insertions(+), 11 deletions(-) diff --git a/sources/Debugger/TileViewer/TileViewer.cpp b/sources/Debugger/TileViewer/TileViewer.cpp index 76e4990..48484f6 100644 --- a/sources/Debugger/TileViewer/TileViewer.cpp +++ b/sources/Debugger/TileViewer/TileViewer.cpp @@ -38,8 +38,13 @@ namespace ComSquare::Debugger QMainWindow::connect(this->_ui.NbColumns, QOverload::of(&QSpinBox::valueChanged), this, [this](int nb) -> void { this->setNbColumns(nb); }); QMainWindow::connect(this->_ui.ByteSize, QOverload::of(&QSpinBox::valueChanged), this, [this](int nb) -> void { this->setRenderSize(nb); }); QMainWindow::connect(this->_ui.Address, QOverload::of(&QSpinBox::valueChanged), this, [this](int nb) -> void { this->setRamOffset(nb); }); + QMainWindow::connect(this->_ui.PaletteIndex, QOverload::of(&QSpinBox::valueChanged), this, [this](int nb) -> void { this->setPaletteIndex(nb); }); + QMainWindow::connect(this->_ui.BppFormat, QOverload::of(&QComboBox::currentIndexChanged), this, [this](int index) -> void { this->_bppChangeUIHandler(index); }); + + // used to setup ui restrictions + this->setBpp(this->getBpp()); this->_window->show(); - QEvent::registerEventType(); + this->internalUpdate(); } void TileViewer::disableViewer() @@ -65,11 +70,30 @@ namespace ComSquare::Debugger void TileViewer::setPaletteIndex(int paletteIndex) { this->_tileRenderer.setPaletteIndex(paletteIndex); + this->internalUpdate(); } void TileViewer::setBpp(int bpp) { + this->_ui.PaletteIndex->setDisabled(bpp > 4); + switch (bpp) { + case 8: + this->_ui.PaletteIndex->setValue(0); + break; + case 4: + this->_ui.PaletteIndex->setMaximum(15); + if (this->_ui.PaletteIndex->value() > 15) { + this->_ui.PaletteIndex->setValue(15); + } + break; + case 2: + default: + bpp = 2; + this->_ui.PaletteIndex->setMaximum(63); + break; + } this->_tileRenderer.setBpp(bpp); + this->internalUpdate(); } void TileViewer::setNbColumns(int nbColumns) @@ -108,5 +132,18 @@ namespace ComSquare::Debugger void TileViewer::setRamOffset(int offset) { this->_tileRenderer.setRamOffset(offset); + this->internalUpdate(); + } + + void TileViewer::_bppChangeUIHandler(int index) + { + switch (index) { + case 0: return this->setBpp(2); + case 1: return this->setBpp(4); + case 2: return this->setBpp(8); + default: + break; + } + // TODO error handling } } \ No newline at end of file diff --git a/sources/Debugger/TileViewer/TileViewer.hpp b/sources/Debugger/TileViewer/TileViewer.hpp index e1e90a6..9f21ff8 100644 --- a/sources/Debugger/TileViewer/TileViewer.hpp +++ b/sources/Debugger/TileViewer/TileViewer.hpp @@ -38,6 +38,8 @@ namespace ComSquare::Debugger //std::unique_ptr _sfWidget; //! @brief The tile renderer TileRenderer _tileRenderer; + //! @brief Change the bpp from the index given by the ui (QT combo box) + void _bppChangeUIHandler(int index); public: //! @brief Called when the window is closed. Turn off the debugger. void disableViewer(); diff --git a/ui/tileView.ui b/ui/tileView.ui index 65da1ef..0ad6a39 100644 --- a/ui/tileView.ui +++ b/ui/tileView.ui @@ -38,7 +38,26 @@ - + + + 0x + + + 0 + + + 999999 + + + 4096 + + + QAbstractSpinBox::DefaultStepType + + + 16 + + @@ -52,26 +71,50 @@ true + + + + + 0x + - 100 + 0 - 10000 + 999999999 + + + 4096 + + + QAbstractSpinBox::DefaultStepType - 5000 + 20480 + + + 16 + + ArrowCursor + Columns + + + + + false + @@ -81,16 +124,19 @@ 16 - - - - - - Format + + 10 + + + 255 + + + + 2 bpp @@ -121,6 +167,20 @@ + + + + Format + + + + + + + Palette Index + + +