diff --git a/src/gb/cheats.h b/src/gb/cheats.h index 7f76ef157..3408ab20b 100644 --- a/src/gb/cheats.h +++ b/src/gb/cheats.h @@ -11,7 +11,7 @@ #include "core/cheats.h" #include "util/vector.h" -enum GBACheatType { +enum GBCheatType { GB_CHEAT_AUTODETECT, GB_CHEAT_GAMESHARK, GB_CHEAT_GAME_GENIE, diff --git a/src/platform/qt/CheatsView.cpp b/src/platform/qt/CheatsView.cpp index aa92c93f3..d7acbfff6 100644 --- a/src/platform/qt/CheatsView.cpp +++ b/src/platform/qt/CheatsView.cpp @@ -9,12 +9,16 @@ #include "GameController.h" #include +#include extern "C" { #include "core/cheats.h" #ifdef M_CORE_GBA #include "gba/cheats.h" #endif +#ifdef M_CORE_GB +#include "gb/cheats.h" +#endif } using namespace QGBA; @@ -33,24 +37,63 @@ CheatsView::CheatsView(GameController* controller, QWidget* parent) connect(m_ui.save, SIGNAL(clicked()), this, SLOT(save())); connect(m_ui.addSet, SIGNAL(clicked()), this, SLOT(addSet())); connect(m_ui.remove, SIGNAL(clicked()), this, SLOT(removeSet())); - connect(controller, SIGNAL(gameStopped(mCoreThread*)), &m_model, SLOT(invalidated())); + connect(controller, SIGNAL(gameStopped(mCoreThread*)), this, SLOT(close())); connect(controller, SIGNAL(stateLoaded(mCoreThread*)), &m_model, SLOT(invalidated())); - connect(m_ui.add, &QPushButton::clicked, [this]() { - enterCheat(GBA_CHEAT_AUTODETECT); - }); + QPushButton* add; + switch (controller->platform()) { +#ifdef M_CORE_GBA + case PLATFORM_GBA: + connect(m_ui.add, &QPushButton::clicked, [this]() { + enterCheat(GBA_CHEAT_AUTODETECT); + }); - connect(m_ui.addGSA, &QPushButton::clicked, [this]() { - enterCheat(GBA_CHEAT_GAMESHARK); - }); + add = new QPushButton("Add GameShark"); + m_ui.gridLayout->addWidget(add, m_ui.gridLayout->rowCount(), 2, 1, 2); + connect(add, &QPushButton::clicked, [this]() { + enterCheat(GBA_CHEAT_GAMESHARK); + }); - connect(m_ui.addPAR, &QPushButton::clicked, [this]() { - enterCheat(GBA_CHEAT_PRO_ACTION_REPLAY); - }); + add = new QPushButton("Add Pro Action Replay"); + m_ui.gridLayout->addWidget(add, m_ui.gridLayout->rowCount(), 2, 1, 2); + connect(add, &QPushButton::clicked, [this]() { + enterCheat(GBA_CHEAT_PRO_ACTION_REPLAY); + }); - connect(m_ui.addCB, &QPushButton::clicked, [this]() { - enterCheat(GBA_CHEAT_CODEBREAKER); - }); + add = new QPushButton("Add CodeBreaker"); + m_ui.gridLayout->addWidget(add, m_ui.gridLayout->rowCount(), 2, 1, 2); + connect(add, &QPushButton::clicked, [this]() { + enterCheat(GBA_CHEAT_CODEBREAKER); + }); + break; +#endif +#ifdef M_CORE_GB + case PLATFORM_GB: + connect(m_ui.add, &QPushButton::clicked, [this]() { + enterCheat(GB_CHEAT_AUTODETECT); + }); + + add = new QPushButton("Add GameShark"); + m_ui.gridLayout->addWidget(add, m_ui.gridLayout->rowCount(), 2, 1, 2); + connect(add, &QPushButton::clicked, [this]() { + enterCheat(GB_CHEAT_GAMESHARK); + }); + + add = new QPushButton("Add GameGenie"); + m_ui.gridLayout->addWidget(add, m_ui.gridLayout->rowCount(), 2, 1, 2); + connect(add, &QPushButton::clicked, [this]() { + enterCheat(GB_CHEAT_GAME_GENIE); + }); + break; +#endif + default: + break; + } + + // Stretch the cheat list back into place + int index = m_ui.gridLayout->indexOf(m_ui.cheatList); + m_ui.gridLayout->takeAt(index); + m_ui.gridLayout->addWidget(m_ui.cheatList, 0, 0, -1, 1); } bool CheatsView::eventFilter(QObject* object, QEvent* event) { diff --git a/src/platform/qt/CheatsView.ui b/src/platform/qt/CheatsView.ui index a272e8e8f..93c76c33c 100644 --- a/src/platform/qt/CheatsView.ui +++ b/src/platform/qt/CheatsView.ui @@ -14,89 +14,35 @@ Cheats - + Remove - - - - Add New Set - - - - - - - Add GameShark - - - - - - - Add Pro Action Replay - - - - - - - Add CodeBreaker - - - - - - - Load - - - - - - - Add - - - - - - - Save - - - - + Qt::Horizontal - - - - - 0 - 0 - - - - Qt::MoveAction - - - QAbstractItemView::ExtendedSelection - - - true + + + + Save - + + + + Load + + + + @@ -117,19 +63,48 @@ + + + + Add New Set + + + + + + + Add + + + + + + + + 0 + 0 + + + + Qt::MoveAction + + + QAbstractItemView::ExtendedSelection + + + true + + + - cheatList addSet load save remove codeEntry add - addGSA - addPAR - addCB