mirror of https://github.com/mgba-emu/mgba.git
Qt: Start work on ROM information view
This commit is contained in:
parent
080c975328
commit
cd6b6862ff
1
CHANGES
1
CHANGES
|
@ -6,6 +6,7 @@ Features:
|
||||||
- Customization of GIF recording
|
- Customization of GIF recording
|
||||||
- Libretro: Cheat code support
|
- Libretro: Cheat code support
|
||||||
- Support for GLSL shaders
|
- Support for GLSL shaders
|
||||||
|
- ROM information view
|
||||||
Bugfixes:
|
Bugfixes:
|
||||||
- Util: Fix PowerPC PNG read/write pixel order
|
- Util: Fix PowerPC PNG read/write pixel order
|
||||||
- VFS: Fix VFileReadline and remove _vfdReadline
|
- VFS: Fix VFileReadline and remove _vfdReadline
|
||||||
|
|
|
@ -91,6 +91,7 @@ set(SOURCE_FILES
|
||||||
MultiplayerController.cpp
|
MultiplayerController.cpp
|
||||||
OverrideView.cpp
|
OverrideView.cpp
|
||||||
PaletteView.cpp
|
PaletteView.cpp
|
||||||
|
ROMInfo.cpp
|
||||||
SavestateButton.cpp
|
SavestateButton.cpp
|
||||||
SensorView.cpp
|
SensorView.cpp
|
||||||
SettingsView.cpp
|
SettingsView.cpp
|
||||||
|
@ -112,6 +113,7 @@ qt5_wrap_ui(UI_FILES
|
||||||
MemoryView.ui
|
MemoryView.ui
|
||||||
OverrideView.ui
|
OverrideView.ui
|
||||||
PaletteView.ui
|
PaletteView.ui
|
||||||
|
ROMInfo.ui
|
||||||
SensorView.ui
|
SensorView.ui
|
||||||
SettingsView.ui
|
SettingsView.ui
|
||||||
ShaderSelector.ui
|
ShaderSelector.ui
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
/* Copyright (c) 2013-2015 Jeffrey Pfau
|
||||||
|
*
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
#include "ROMInfo.h"
|
||||||
|
|
||||||
|
#include "GameController.h"
|
||||||
|
|
||||||
|
using namespace QGBA;
|
||||||
|
|
||||||
|
ROMInfo::ROMInfo(GameController* controller, QWidget* parent) {
|
||||||
|
m_ui.setupUi(this);
|
||||||
|
|
||||||
|
if (!controller->isLoaded()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
controller->threadInterrupt();
|
||||||
|
GBA* gba = controller->thread()->gba;
|
||||||
|
char title[13] = {};
|
||||||
|
GBAGetGameCode(gba, title);
|
||||||
|
m_ui.id->setText(QLatin1String(title));
|
||||||
|
GBAGetGameTitle(gba, title);
|
||||||
|
m_ui.title->setText(QLatin1String(title));
|
||||||
|
m_ui.size->setText(QString::number(gba->pristineRomSize));
|
||||||
|
m_ui.crc->setText(QString::number(gba->romCrc32, 16));
|
||||||
|
controller->threadContinue();
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
/* Copyright (c) 2013-2015 Jeffrey Pfau
|
||||||
|
*
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
#ifndef QGBA_ROM_INFO
|
||||||
|
#define QGBA_ROM_INFO
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
#include "ui_ROMInfo.h"
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
#include "gba/supervisor/thread.h"
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace QGBA {
|
||||||
|
|
||||||
|
class GameController;
|
||||||
|
|
||||||
|
class ROMInfo : public QDialog {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
ROMInfo(GameController* controller, QWidget* parent = nullptr);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::ROMInfo m_ui;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,95 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>ROMInfo</class>
|
||||||
|
<widget class="QDialog" name="ROMInfo">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>236</width>
|
||||||
|
<height>142</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>ROM Info</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QFormLayout" name="formLayout">
|
||||||
|
<property name="sizeConstraint">
|
||||||
|
<enum>QLayout::SetFixedSize</enum>
|
||||||
|
</property>
|
||||||
|
<property name="fieldGrowthPolicy">
|
||||||
|
<enum>QFormLayout::FieldsStayAtSizeHint</enum>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Game ID:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLabel" name="id">
|
||||||
|
<property name="text">
|
||||||
|
<string>{ID}</string>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Internal name:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLabel" name="title">
|
||||||
|
<property name="text">
|
||||||
|
<string>{TITLE}</string>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="text">
|
||||||
|
<string>File size:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLabel" name="size">
|
||||||
|
<property name="text">
|
||||||
|
<string>{SIZE}</string>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="text">
|
||||||
|
<string>CRC32:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QLabel" name="crc">
|
||||||
|
<property name="text">
|
||||||
|
<string>{CRC}</string>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
|
@ -31,6 +31,7 @@
|
||||||
#include "MemoryView.h"
|
#include "MemoryView.h"
|
||||||
#include "OverrideView.h"
|
#include "OverrideView.h"
|
||||||
#include "PaletteView.h"
|
#include "PaletteView.h"
|
||||||
|
#include "ROMInfo.h"
|
||||||
#include "SensorView.h"
|
#include "SensorView.h"
|
||||||
#include "SettingsView.h"
|
#include "SettingsView.h"
|
||||||
#include "ShaderSelector.h"
|
#include "ShaderSelector.h"
|
||||||
|
@ -400,6 +401,11 @@ void Window::openAboutScreen() {
|
||||||
openView(about);
|
openView(about);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Window::openROMInfo() {
|
||||||
|
ROMInfo* romInfo = new ROMInfo(m_controller);
|
||||||
|
openView(romInfo);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef BUILD_SDL
|
#ifdef BUILD_SDL
|
||||||
void Window::openGamepadWindow() {
|
void Window::openGamepadWindow() {
|
||||||
const char* profile = m_inputController.profileForType(SDL_BINDING_BUTTON);
|
const char* profile = m_inputController.profileForType(SDL_BINDING_BUTTON);
|
||||||
|
@ -767,6 +773,11 @@ void Window::setupMenu(QMenuBar* menubar) {
|
||||||
|
|
||||||
addControlledAction(fileMenu, fileMenu->addAction(tr("Replace ROM..."), this, SLOT(replaceROM())), "replaceROM");
|
addControlledAction(fileMenu, fileMenu->addAction(tr("Replace ROM..."), this, SLOT(replaceROM())), "replaceROM");
|
||||||
|
|
||||||
|
QAction* romInfo = new QAction(tr("ROM &info..."), fileMenu);
|
||||||
|
connect(romInfo, SIGNAL(triggered()), this, SLOT(openROMInfo()));
|
||||||
|
m_gameActions.append(romInfo);
|
||||||
|
addControlledAction(fileMenu, romInfo, "romInfo");
|
||||||
|
|
||||||
m_mruMenu = fileMenu->addMenu(tr("Recent"));
|
m_mruMenu = fileMenu->addMenu(tr("Recent"));
|
||||||
|
|
||||||
fileMenu->addSeparator();
|
fileMenu->addSeparator();
|
||||||
|
|
|
@ -88,6 +88,7 @@ public slots:
|
||||||
void openIOViewer();
|
void openIOViewer();
|
||||||
|
|
||||||
void openAboutScreen();
|
void openAboutScreen();
|
||||||
|
void openROMInfo();
|
||||||
|
|
||||||
#ifdef BUILD_SDL
|
#ifdef BUILD_SDL
|
||||||
void openGamepadWindow();
|
void openGamepadWindow();
|
||||||
|
|
Loading…
Reference in New Issue